bzr revid: hmo@tinyerp.com-20101026055347-yxz72wusdbhty34e
This commit is contained in:
Harry (OpenERP) 2010-10-26 11:23:47 +05:30
commit 1769bc9476
130 changed files with 6203 additions and 4327 deletions

View File

@ -458,7 +458,7 @@ class account_account(osv.osv):
ids = self.search(cr, user, [('name', operator, name)]+ args, limit=limit)
if not ids and len(name.split()) >= 2:
#Separating code and name of account for searching
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
else:
ids = self.search(cr, user, args, context=context, limit=limit)
@ -2542,7 +2542,22 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Bank Accounts', required=True),
'code_digits':fields.integer('# of Digits', required=True, help="No. of Digits to use for account code"),
'seq_journal':fields.boolean('Separated Journal Sequences', help="Check this box if you want to use a different sequence for each created journal. Otherwise, all will use the same sequence."),
"sale_tax": fields.many2one("account.tax.template", "Sale Tax"),
"purchase_tax": fields.many2one("account.tax.template", "Purchase Tax"),
}
def onchange_chart_template_id(self, cr, uid, ids, chart_template_id=False, context=None):
res = {}
res['value'] = {}
res['value']["sale_tax"] = False
res['value']["purchase_tax"] = False
if chart_template_id:
ids = self.pool.get('account.tax.template').search(cr, uid, [("chart_template_id"
, "=", chart_template_id)], order="sequence")
if len(ids) > 0:
id=ids[0]
res['value']["sale_tax"] = id
res['value']["purchase_tax"] = id
return res
def _get_chart(self, cr, uid, context={}):
ids = self.pool.get('account.chart.template').search(cr, uid, [], context=context)
@ -2604,6 +2619,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
tax_code_template_ref[tax_code_template.id] = new_tax_code
#create all the tax
tax_template_to_tax = {}
for tax in obj_multi.chart_template_id.tax_template_ids:
#create it
vals_tax = {
@ -2632,6 +2648,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'type_tax_use': tax.type_tax_use
}
new_tax = obj_acc_tax.create(cr, uid, vals_tax)
tax_template_to_tax[tax.id] = new_tax
#as the accounts have not been created yet, we have to wait before filling these fields
todo_dict[new_tax] = {
'account_collected_id': tax.account_collected_id and tax.account_collected_id.id or False,
@ -2856,6 +2873,12 @@ class wizard_multi_charts_accounts(osv.osv_memory):
}
obj_ac_fp.create(cr, uid, vals_acc)
ir_values = self.pool.get('ir.values')
ir_values.set(cr, uid, key='default', key2=False, name="taxes_id", company=obj_multi.company_id.id
, models =[('product.product',False)], value=[tax_template_to_tax[obj_multi.sale_tax.id]])
ir_values.set(cr, uid, key='default', key2=False, name="supplier_taxes_id", company=obj_multi.company_id.id
, models =[('product.product',False)], value=[tax_template_to_tax[obj_multi.purchase_tax.id]])
wizard_multi_charts_accounts()
class account_bank_accounts_wizard(osv.osv_memory):

View File

@ -38,12 +38,13 @@ class account_bank_statement(osv.osv):
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
if not line.sequence:
self.pool.get('account.bank.statement.line').write(cr, uid, [line.id], {'sequence': seq}, context=context)
account_bank_statement_line_obj.write(cr, uid, [line.id], {'sequence': seq}, context=context)
return res
def button_import_invoice(self, cr, uid, ids, context=None):
@ -381,13 +382,14 @@ class account_bank_statement(osv.osv):
def button_cancel(self, cr, uid, ids, context=None):
done = []
account_move_obj = self.pool.get('account.move')
for st in self.browse(cr, uid, ids, context):
if st.state=='draft':
continue
ids = []
for line in st.line_ids:
ids += [x.id for x in line.move_ids]
self.pool.get('account.move').unlink(cr, uid, ids, context)
account_move_obj.unlink(cr, uid, ids, context)
done.append(st.id)
return self.write(cr, uid, done, {'state':'draft'}, context=context)
@ -496,4 +498,4 @@ class account_bank_statement_line(osv.osv):
account_bank_statement_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -23,7 +23,6 @@
import time
from osv import osv, fields
from decimal import Decimal
from tools.translate import _
import decimal_precision as dp
@ -53,14 +52,14 @@ class account_cashbox_line(osv.osv):
@param number:
"""
sub = pieces * number
return {'value':{'subtotal': sub or 0.0}}
return {'value': {'subtotal': sub or 0.0}}
_columns = {
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
'number': fields.integer('Number'),
'subtotal': fields.function(_sub_total, method=True, 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'),
'starting_id': fields.many2one('account.bank.statement', ondelete='cascade'),
'ending_id': fields.many2one('account.bank.statement', ondelete='cascade'),
}
account_cashbox_line()
@ -86,7 +85,7 @@ class account_cash_statement(osv.osv):
for line in statement.starting_details_ids:
amount_total+= line.pieces * line.number
res[statement.id] = {
'balance_start':amount_total
'balance_start': amount_total
}
return res
@ -166,13 +165,13 @@ class account_cash_statement(osv.osv):
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces':rs,
'number':0
'pieces': rs,
'number': 0
}
res.append(dct)
journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','cash')], context=context)
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)
results = self.search(cr, uid, [('journal_id', 'in', journal_ids),('state', '=', 'confirm')], context=context)
if results:
cash_st = self.browse(cr, uid, results, context)[0]
for cash_line in cash_st.ending_details_ids:
@ -186,8 +185,8 @@ class account_cash_statement(osv.osv):
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces':rs,
'number':0
'pieces': rs,
'number': 0
}
res.append(dct)
return res
@ -197,10 +196,10 @@ class account_cash_statement(osv.osv):
curr = [1, 2, 5, 10, 20, 50, 100, 500]
for rs in curr:
dct = {
'pieces':rs,
'number':0
'pieces': rs,
'number': 0
}
res.append((0,0,dct))
res.append((0, 0, dct))
return res
def _get_cash_open_close_box_lines(self, cr, uid, context={}):
@ -210,41 +209,41 @@ class account_cash_statement(osv.osv):
starting_details = self._get_cash_open_box_lines(cr, uid, context)
ending_details = self._get_default_cash_close_box_lines(cr, uid, context)
for start in starting_details:
start_l.append((0,0,start))
start_l.append((0, 0, start))
for end in ending_details:
end_l.append((0,0,end))
end_l.append((0, 0, end))
res['start'] = start_l
res['end'] = end_l
return res
_columns = {
'balance_end_real': fields.float('Closing Balance', digits_compute=dp.get_precision('Account'), states={'confirm':[('readonly', True)]}, help="closing balance entered by the cashbox verifier"),
'balance_end_real': fields.float('Closing Balance', digits_compute=dp.get_precision('Account'), states={'confirm': [('readonly', True)]}, help="closing balance entered by the cashbox verifier"),
'state': fields.selection(
[('draft', 'Draft'),
('confirm', 'Closed'),
('open','Open')], 'State', required=True, states={'confirm': [('readonly', True)]}, readonly="1"),
'total_entry_encoding':fields.function(_get_sum_entry_encoding, method=True, store=True, string="Cash Transaction", help="Total cash transactions"),
'closing_date':fields.datetime("Closed On"),
'total_entry_encoding': fields.function(_get_sum_entry_encoding, method=True, store=True, string="Cash Transaction", help="Total cash transactions"),
'closing_date': fields.datetime("Closed On"),
'balance_end': fields.function(_end_balance, method=True, store=True, string='Balance', help="Closing balance based on Starting Balance and Cash Transactions"),
'balance_end_cash': fields.function(_balance_end_cash, method=True, store=True, string='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'),
'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'),
'user_id':fields.many2one('res.users', 'Responsible', required=False),
'user_id': fields.many2one('res.users', 'Responsible', required=False),
}
_defaults = {
'state': 'draft',
'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
'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 'journal_id' not in vals:
raise osv.except_osv('Error', _('You cannot create a bank or cash register without a journal!'))
sql = [
('journal_id', '=', vals['journal_id']),
('journal_id', '=', vals.get('journal_id', False)),
('state', '=', 'open')
]
open_jrnl = self.search(cr, uid, sql)
@ -253,20 +252,20 @@ class account_cash_statement(osv.osv):
if self.pool.get('account.journal').browse(cr, uid, vals['journal_id']).type == 'cash':
open_close = self._get_cash_open_close_box_lines(cr, uid, context)
if vals.get('starting_details_ids',False):
if vals.get('starting_details_ids', False):
for start in vals.get('starting_details_ids'):
dict_val = start[2]
for end in open_close['end']:
if end[2]['pieces'] == dict_val['pieces']:
end[2]['number'] += dict_val['number']
vals.update({
'ending_details_ids':open_close['start'],
'starting_details_ids':open_close['end']
# 'ending_details_ids': open_close['start'],
'starting_details_ids': open_close['end']
})
else:
vals.update({
'ending_details_ids':False,
'starting_details_ids':False
'ending_details_ids': False,
'starting_details_ids': False
})
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)
self.write(cr, uid, [res_id], {})
@ -298,8 +297,6 @@ class account_cash_statement(osv.osv):
@param journal_id: Changed journal_id
@return: Dictionary of changed values
"""
cash_pool = self.pool.get('account.cashbox.line')
statement_pool = self.pool.get('account.bank.statement')
res = {}
balance_start = 0.0
@ -319,34 +316,35 @@ class account_cash_statement(osv.osv):
else:
return True
def _user_allow(self, cr, uid, ids, statement, context={}):
def _user_allow(self, cr, uid, statement_id, context=None):
return True
def button_open(self, cr, uid, ids, context=None):
""" Changes statement state to Running.
@return: True
"""
cash_pool = self.pool.get('account.cashbox.line')
if context is None:
context = {}
statement_pool = self.pool.get('account.bank.statement')
statement = statement_pool.browse(cr, uid, ids[0])
vals = {}
for statement in statement_pool.browse(cr, uid, ids, context=context):
vals = {}
if not self._user_allow(cr, uid, ids, statement, context={}):
raise osv.except_osv(_('Error !'), _('User %s does not have rights to access %s journal !' % (statement.user_id.name, statement.journal_id.name)))
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)))
if statement.name and statement.name == '/':
number = self.pool.get('ir.sequence').get(cr, uid, 'account.cash.statement')
vals.update({
'name': number
})
if statement.name and statement.name == '/':
number = self.pool.get('ir.sequence').get(cr, uid, 'account.cash.statement')
vals.update({
'name': number
'date': time.strftime("%Y-%m-%d %H:%M:%S"),
'state': 'open',
})
vals.update({
'date':time.strftime("%Y-%m-%d %H:%M:%S"),
'state':'open',
})
return self.write(cr, uid, ids, vals)
self.write(cr, uid, [statement.id], vals)
return True
def balance_check(self, cr, uid, cash_id, journal_type='bank', context=None):
if journal_type == 'bank':
@ -371,14 +369,14 @@ 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)
return self.write(cr, uid, ids, {'closing_date': time.strftime("%Y-%m-%d %H:%M:%S")}, context=context)
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})
cash_box_line_pool.write(cr, uid, [end.id], {'number': 0})
return True
account_cash_statement()

View File

@ -177,7 +177,7 @@ class account_move_line(osv.osv):
for item in i[2]:
data[item] = i[2][item]
if context['journal']:
journal_data = obj_journal.browse(cr, uid, context['journal'])
journal_data = journal_obj.browse(cr, uid, context['journal'])
if journal_data.type == 'purchase':
if total_new > 0:
account = journal_data.default_credit_account_id
@ -293,6 +293,8 @@ class account_move_line(osv.osv):
return data
def on_create_write(self, cr, uid, id, context={}):
if not id:
return []
ml = self.browse(cr, uid, id, context)
return map(lambda x: x.id, ml.move_id.line_id)
@ -363,7 +365,7 @@ class account_move_line(osv.osv):
return [('id', '=', '0')]
return [('id', 'in', [x[0] for x in res])]
def _invoice_search(self, cursor, user, obj, name, args, context):
def _invoice_search(self, cursor, user, obj, name, args, context=None):
if not args:
return []
invoice_obj = self.pool.get('account.invoice')
@ -408,7 +410,7 @@ class account_move_line(osv.osv):
return [('id', '=', '0')]
return [('id', 'in', [x[0] for x in res])]
def _get_move_lines(self, cr, uid, ids, context={}):
def _get_move_lines(self, cr, uid, ids, context=None):
result = []
for move in self.pool.get('account.move').browse(cr, uid, ids, context=context):
for line in move.line_id:
@ -458,7 +460,7 @@ class account_move_line(osv.osv):
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
def _get_date(self, cr, uid, context):
def _get_date(self, cr, uid, context=None):
period_obj = self.pool.get('account.period')
dt = time.strftime('%Y-%m-%d')
if ('journal_id' in context) and ('period_id' in context):
@ -474,7 +476,9 @@ class account_move_line(osv.osv):
dt = period.date_start
return dt
def _get_currency(self, cr, uid, context={}):
def _get_currency(self, cr, uid, context=None):
if context is None:
context = {}
if not context.get('journal_id', False):
return False
cur = self.pool.get('account.journal').browse(cr, uid, context['journal_id']).currency
@ -1126,6 +1130,8 @@ class account_move_line(osv.osv):
'period_id': context['period_id'],
'journal_id': context['journal_id']
}
if vals.get('ref', ''):
v.update({'ref': vals['ref']})
move_id = move_obj.create(cr, uid, v, context)
vals['move_id'] = move_id
else:
@ -1243,4 +1249,4 @@ class account_move_line(osv.osv):
account_move_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1557,7 +1557,7 @@
<menuitem
name="Manual Reconcilication" icon="STOCK_EXECUTE"
name="Manual Reconciliation" icon="STOCK_EXECUTE"
action="action_account_manual_reconcile"
id="menu_manual_reconcile"
parent="account.periodical_processing_reconciliation"/>
@ -2415,8 +2415,10 @@
<group string="res_config_contents" position="replace">
<field name="company_id" widget="selection"/>
<field name ="code_digits" groups="base.group_extended"/>
<field name="chart_template_id" widget="selection"/>
<field name="chart_template_id" widget="selection" on_change="onchange_chart_template_id(chart_template_id)"/>
<field name ="seq_journal" groups="base.group_extended"/>
<field name="sale_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False)]"/>
<field name="purchase_tax" domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False)]"/>
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list">
<form string="Bank Information">
<field name="acc_name"/>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-24 21:56+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:09+0000\n"
"Last-Translator: Carlos-smile <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-20 07:22+0000\n"
"Last-Translator: Lorenzo Battistini <lorenzo.battistini@domsense.com>\n"
"PO-Revision-Date: 2010-10-25 21:04+0000\n"
"Last-Translator: Davide Corio - Domsense <davide.corio@domsense.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: 2010-10-21 05:02+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -372,7 +372,7 @@ msgstr "Contabilità Analitica"
#: field:account.tax,child_depend:0
#: field:account.tax.template,child_depend:0
msgid "Tax on Children"
msgstr ""
msgstr "Calcolo su tasse figlie"
#. module: account
#: rml:account.central.journal:0
@ -416,7 +416,7 @@ msgstr "Riconciliazione dei pagamenti"
#. module: account
#: model:account.journal,name:account.expenses_journal
msgid "Journal de frais"
msgstr ""
msgstr "Giornale Acquisti"
#. module: account
#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal
@ -494,7 +494,7 @@ msgstr "Rif"
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
msgstr ""
msgstr "Tassa usata per"
#. module: account
#: help:account.tax.template,include_base_amount:0
@ -572,7 +572,7 @@ msgstr "Linea"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "J.C. or Move name"
msgstr ""
msgstr "J.C. o nome movimento"
#. module: account
#: selection:account.tax,applicable_type:0
@ -634,7 +634,7 @@ msgstr "(Tenere vuoto per aprire la situazione corrente)"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
msgid "Accounts Fiscal Mapping"
msgstr ""
msgstr "Mappatura Posizioni Fiscali"
#. module: account
#: field:account.analytic.account,contact_id:0
@ -666,7 +666,7 @@ msgstr "Sconto (%)"
#: wizard_field:account.move.line.reconcile,init_full,writeoff:0
#: wizard_field:account.move.line.reconcile,init_partial,writeoff:0
msgid "Write-Off amount"
msgstr ""
msgstr "Conto per storno"
#. module: account
#: help:account.fiscalyear,company_id:0

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-21 09:08+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-10-26 04:01+0000\n"
"Last-Translator: sugi <Unknown>\n"
"Language-Team: Mongolian <mn@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: 2010-10-22 04:40+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -5204,7 +5204,7 @@ msgstr "Дансны татварын кодны загвар"
#. module: account
#: view:account.subscription:0
msgid "Subscription Periods"
msgstr ""
msgstr "Баталгааны мөчлөгүүд"
#. module: account
#: model:process.node,name:account.process_node_manually0
@ -5484,7 +5484,7 @@ msgstr "Баримтын бичилт"
#: model:ir.actions.act_window,name:account.action_invoice_tree6
#: model:ir.ui.menu,name:account.menu_action_invoice_tree6
msgid "PRO-FORMA Customer Invoices"
msgstr ""
msgstr "Үйлчлүүлэгчийн нэхэмжлэл PRO-FORMA"
#. module: account
#: field:account.subscription,period_total:0
@ -5609,7 +5609,7 @@ msgstr "Ажил гүйлгээ"
#. module: account
#: selection:account.invoice,state:0
msgid "Pro-forma"
msgstr ""
msgstr "Pro-forma"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_form
@ -5647,7 +5647,7 @@ msgstr "Баримтын дугаараар"
#. module: account
#: rml:account.overdue:0
msgid "Total amount due:"
msgstr ""
msgstr "Нийт товлосон хэмжээ"
#. module: account
#: wizard_field:account.analytic.account.chart,init,to_date:0
@ -5701,7 +5701,7 @@ msgstr "Загварууд"
#. module: account
#: wizard_button:account.vat.declaration,init,report:0
msgid "Print VAT Decl."
msgstr ""
msgstr "НӨАТ хэвлэх"
#. module: account
#: model:ir.actions.report.xml,name:account.account_intracom

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-24 09:01+0000\n"
"PO-Revision-Date: 2010-10-25 07:13+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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-18 12:12+0000\n"
"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
"PO-Revision-Date: 2010-10-25 21:56+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-20 04:55+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -80,7 +80,7 @@ msgstr ""
#. module: account
#: help:account.invoice,period_id:0
msgid "Keep empty to use the period of the validation(invoice) date."
msgstr ""
msgstr "Ostavi prazno da bi koristio validacioni period ( racuna) datuma."
#. module: account
#: wizard_view:account.automatic.reconcile,reconcile:0
@ -501,6 +501,8 @@ msgid ""
"Set if the amount of tax must be included in the base amount before "
"computing the next taxes."
msgstr ""
"Postavi ovo ukoliko iznos ovog poreza mora biti ukljucen u osnovicu pre "
"izračuna sledećeg poreza."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
@ -569,7 +571,7 @@ msgstr "Red"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
msgid "J.C. or Move name"
msgstr ""
msgstr "J.C. ili pomeri ime"
#. module: account
#: selection:account.tax,applicable_type:0
@ -589,7 +591,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_tax
msgid "account.tax"
msgstr ""
msgstr "account.tax"
#. module: account
#: rml:account.central.journal:0
@ -599,13 +601,13 @@ msgstr "Datum štampe"
#. module: account
#: rml:account.general.ledger:0
msgid "Mvt"
msgstr ""
msgstr "Mvt"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_aged_trial_balance
#: model:ir.ui.menu,name:account.menu_aged_trial_balance
msgid "Aged Partner Balance"
msgstr ""
msgstr "Godisnja potraživanja/obaveze partnera"
#. module: account
#: view:account.journal:0
@ -618,6 +620,7 @@ msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
msgstr ""
"Ovo polje se koristi da se odredi redosled resursa od najnizeg ka najvecem"
#. module: account
#: wizard_view:account.analytic.account.chart,init:0
@ -726,12 +729,12 @@ msgstr "Ukupan iznos dugovanja kupca"
#. module: account
#: view:account.move.line:0
msgid "St."
msgstr ""
msgstr "St."
#. module: account
#: model:ir.actions.act_window,name:account.action_tax_code_line_open
msgid "account.move.line"
msgstr ""
msgstr "account.move.line"
#. module: account
#: model:process.transition,name:account.process_transition_supplieranalyticcost0
@ -773,7 +776,7 @@ msgstr "Delimično plaćanje"
#. module: account
#: wizard_view:account_use_models,create:0
msgid "Move Lines Created."
msgstr ""
msgstr "Kreirani redovi prenosa"
#. module: account
#: field:account.fiscalyear,state:0
@ -920,6 +923,8 @@ msgid ""
"If a default tax is given in the partner it only overrides taxes from "
"accounts (or products) in the same group."
msgstr ""
"Ako je dat podrazumevani porez partnera, on samo upisuje poreze iz naloga ( "
"ili proizvoda) iste grupe."
#. module: account
#: wizard_field:account.open_closed_fiscalyear,init,fyear_id:0
@ -1024,7 +1029,7 @@ msgstr "Neto Ukupno"
#: model:ir.model,name:account.model_account_fiscal_position
#: field:res.partner,property_account_position:0
msgid "Fiscal Mapping"
msgstr ""
msgstr "Poreska mapiranja"
#. module: account
#: field:account.analytic.line,product_uom_id:0
@ -1167,7 +1172,7 @@ msgstr "Iznos je predstavljen opciono u drugoj valuti"
#: view:account.fiscal.position.template:0
#: field:account.fiscal.position.template,name:0
msgid "Fiscal Mapping Template"
msgstr ""
msgstr "Predlozak poreskog mapiranja"
#. module: account
#: field:account.payment.term,line_ids:0
@ -1238,7 +1243,7 @@ msgstr "Valuta preduzeca"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
msgid "Template Account Fiscal Mapping"
msgstr ""
msgstr "Predlozak poreskog mapiranja konta"
#. module: account
#: field:account.analytic.account,parent_id:0
@ -2023,7 +2028,7 @@ msgstr "Iznos poreza"
#. module: account
#: rml:account.analytic.account.quantity_cost_ledger:0
msgid "J.C./Move name"
msgstr ""
msgstr "J.C./Pomeri ime"
#. module: account
#: field:account.journal.period,name:0
@ -2034,7 +2039,7 @@ msgstr "Naziv dnevnika-razdoblja"
#: field:account.tax.code,name:0
#: field:account.tax.code.template,name:0
msgid "Tax Case Name"
msgstr ""
msgstr "Naziv pozicije PDV obrasca"
#. module: account
#: help:account.journal,entry_posted:0
@ -2043,6 +2048,9 @@ msgid ""
"'draft' state and instead goes directly to the 'posted state' without any "
"manual validation."
msgstr ""
"Cekirajte ovde ukoliko ne zelite da novi nalog ne prolazi \" pripremni "
"stadijum\" vec zelite da ode u \" zakljuceno stanje\" bez ikakve rucne "
"validacije"
#. module: account
#: field:account.bank.statement.line,partner_id:0
@ -2104,7 +2112,7 @@ msgstr "Period početnog stanja"
#: model:ir.actions.wizard,name:account.wizard_validate_account_moves_line
#: model:ir.ui.menu,name:account.menu_validate_account_moves
msgid "Validate Account Moves"
msgstr ""
msgstr "Potvrdi osnovice"
#. module: account
#: selection:account.subscription,period_type:0
@ -2375,7 +2383,7 @@ msgstr "Predložak kontnog plana"
#. module: account
#: model:account.journal,name:account.refund_sales_journal
msgid "Journal d'extourne"
msgstr ""
msgstr "Dnevnik povrata"
#. module: account
#: rml:account.journal.period.print:0
@ -2469,7 +2477,7 @@ msgstr "Otvori dnevnik"
#. module: account
#: rml:account.analytic.account.journal:0
msgid "KI"
msgstr ""
msgstr "KI"
#. module: account
#: model:ir.actions.wizard,name:account.action_account_analytic_line
@ -3151,7 +3159,7 @@ msgstr "Osnova"
#. module: account
#: field:account.model,name:0
msgid "Model Name"
msgstr ""
msgstr "Naziv modela"
#. module: account
#: selection:account.account,type:0
@ -3404,6 +3412,8 @@ msgid ""
"This account will be used instead of the default one as the receivable "
"account for the current partner"
msgstr ""
"Ovaj ce se nalog koristiti umesto podrazumevanog kao prijemni nalog datog "
"partnera"
#. module: account
#: selection:account.tax,applicable_type:0
@ -3490,6 +3500,7 @@ msgid ""
"The amount expressed in an optional other currency if it is a multi-currency "
"entry."
msgstr ""
"Iznos troskova u drugoj opcionoj valuti ako je ovo multi-valutni sadrzaj"
#. module: account
#: field:account.tax,parent_id:0
@ -3907,6 +3918,8 @@ msgid ""
"This account will be used instead of the default one to value outgoing stock "
"for the current product"
msgstr ""
"Ovaj nalog ce se koristiti umesto podrazumevanog da potvrdi izlazni magacin "
"za dati prozivod"
#. module: account
#: model:process.node,note:account.process_node_manually0
@ -4444,6 +4457,9 @@ msgid ""
"to the higher ones. The order is important if you have a tax with several "
"tax children. In this case, the evaluation order is important."
msgstr ""
"Ovo polje se korosti da odredi redosled poreza od najmanjeg do najveceg. "
"Ovaj redosled je vazan ako imate porez sa nekoliko podporeza,\r\n"
"U tom slucaju, evolucioni poredak je jako vazan."
#. module: account
#: view:account.tax:0
@ -4510,7 +4526,7 @@ msgstr "Opcione kolicine u stavkama"
#: rml:account.third_party_ledger:0
#: rml:account.third_party_ledger_other:0
msgid "JNRL"
msgstr ""
msgstr "JNRL"
#. module: account
#: view:account.fiscalyear:0
@ -5265,7 +5281,7 @@ msgstr "Predznak na izveštajima"
#. module: account
#: help:account.move.line,currency_id:0
msgid "The optional other currency if it is a multi-currency entry."
msgstr ""
msgstr "Opciona druga valuta ako je ovo multi-valutni sadrzaj"
#. module: account
#: view:account.invoice:0
@ -5747,6 +5763,8 @@ msgid ""
"This account will be used instead of the default one as the payable account "
"for the current partner"
msgstr ""
"Ovaj nalog ce se koristiti umesto podrazumevanog kao platni nalog za datog "
"partnera"
#. module: account
#: field:account.tax.code,code:0
@ -6066,7 +6084,7 @@ msgstr "Dospela potraživanja"
#. module: account
#: model:ir.module.module,shortdesc:account.module_meta_information
msgid "Board for accountant"
msgstr ""
msgstr "Tabla Naloga"
#. module: account
#: model:ir.actions.act_window,name:account.action_aged_income

View File

@ -35,19 +35,19 @@ class account_installer(osv.osv_memory):
_inherit = 'res.config.installer'
def _get_default_accounts(self, cr, uid, context=None):
accounts = [{'acc_name':'Current','account_type':'bank'},
{'acc_name':'Deposit','account_type':'bank'},
{'acc_name':'Cash','account_type':'cash'}]
accounts = [{'acc_name': 'Current', 'account_type': 'bank'},
{'acc_name': 'Deposit', 'account_type': 'bank'},
{'acc_name': 'Cash', 'account_type': 'cash'}]
return accounts
def _get_charts(self, cr, uid, context=None):
modules = self.pool.get('ir.module.module')
ids = modules.search(cr, uid, [('category_id','=','Account Charts')])
ids = modules.search(cr, uid, [('category_id', '=', 'Account Charts')], context=context)
charts = list(
sorted(((m.name, m.shortdesc)
for m in modules.browse(cr, uid, ids)),
key=itemgetter(1)))
charts.insert(0,('configurable','Generic Chart Of Account'))
charts.insert(0, ('configurable', 'Generic Chart Of Account'))
return charts
_columns = {
@ -59,7 +59,7 @@ class account_installer(osv.osv_memory):
"country."),
'date_start': fields.date('Start Date', required=True),
'date_stop': fields.date('End Date', required=True),
'period': fields.selection([('month','Monthly'), ('3months','3 Monthly')], 'Periods', required=True),
'period': fields.selection([('month', 'Monthly'), ('3months','3 Monthly')], 'Periods', required=True),
'bank_accounts_id': fields.one2many('account.bank.accounts.wizard', 'bank_account_id', 'Your Bank and Cash Accounts'),
'sale_tax': fields.float('Sale Tax(%)'),
'purchase_tax': fields.float('Purchase Tax(%)'),
@ -68,28 +68,26 @@ class account_installer(osv.osv_memory):
def _default_company(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if user.company_id:
return user.company_id.id
return False
return user.company_id and user.company_id.id or False
def _get_default_charts(self, cr, uid, context=None):
module_name = False
company_id = self._default_company(cr, uid, context=context)
company = self.pool.get('res.company').browse(cr, uid, company_id)
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
address_id = self.pool.get('res.partner').address_get(cr, uid, [company.partner_id.id])
if address_id['default']:
address = self.pool.get('res.partner.address').browse(cr, uid, address_id['default'])
address = self.pool.get('res.partner.address').browse(cr, uid, address_id['default'], context=context)
code = address.country_id.code
module_name = (code and 'l10n_' + code.lower()) or False
if module_name:
module_id = self.pool.get('ir.module.module').search(cr, uid, [('name', '=', module_name)])
module_id = self.pool.get('ir.module.module').search(cr, uid, [('name', '=', module_name)], context=context)
if module_id:
return module_name
return 'configurable'
_defaults = {
'date_start': lambda *a: time.strftime('%Y-01-01'),
'date_stop': lambda *a: time.strftime('%Y-12-31'),
'date_start': time.strftime('%Y-01-01'),
'date_stop': time.strftime('%Y-12-31'),
'period': 'month',
'sale_tax': 0.0,
'purchase_tax': 0.0,
@ -105,29 +103,37 @@ class account_installer(osv.osv_memory):
if start_date:
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")
end_date = (start_date + relativedelta(months=12)) - relativedelta(days=1)
return {'value':{'date_stop':end_date.strftime('%Y-%m-%d')}}
return {'value': {'date_stop': end_date.strftime('%Y-%m-%d')}}
return {}
def generate_configurable_chart(self, cr, uid, ids, context=None):
obj_acc = self.pool.get('account.account')
obj_acc_tax = self.pool.get('account.tax')
obj_journal = self.pool.get('account.journal')
obj_sequence = self.pool.get('ir.sequence')
obj_acc_tax_code = self.pool.get('account.tax.code')
obj_acc_template = self.pool.get('account.account.template')
obj_acc_tax_template = self.pool.get('account.tax.code.template')
obj_fiscal_position_template = self.pool.get('account.fiscal.position.template')
obj_fiscal_position = self.pool.get('account.fiscal.position')
mod_obj = self.pool.get('ir.model.data')
analytic_journal_obj = self.pool.get('account.analytic.journal')
obj_acc_chart_template = self.pool.get('account.chart.template')
obj_acc_journal_view = self.pool.get('account.journal.view')
mod_obj = self.pool.get('ir.model.data')
obj_sequence = self.pool.get('ir.sequence')
property_obj = self.pool.get('ir.property')
fields_obj = self.pool.get('ir.model.fields')
obj_tax_fp = self.pool.get('account.fiscal.position.tax')
obj_ac_fp = self.pool.get('account.fiscal.position.account')
result = mod_obj._get_id(cr, uid, 'account', 'configurable_chart_template')
id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id']
obj_multi = self.pool.get('account.chart.template').browse(cr, uid, id)
id = mod_obj.read(cr, uid, [result], ['res_id'], context=context)[0]['res_id']
obj_multi = obj_acc_chart_template.browse(cr, uid, id, context=context)
record = self.browse(cr, uid, ids, context=context)[0]
if context is None:
context = {}
company_id = self.browse(cr, uid, ids, context)[0].company_id
company_id = self.browse(cr, uid, ids, context=context)[0].company_id
seq_journal = True
# Creating Account
@ -141,10 +147,10 @@ class account_installer(osv.osv_memory):
todo_dict = {}
#create all the tax code
children_tax_code_template = self.pool.get('account.tax.code.template').search(cr, uid, [('parent_id','child_of',[tax_code_root_id])], order='id')
children_tax_code_template = obj_acc_tax_template.search(cr, uid, [('parent_id', 'child_of', [tax_code_root_id])], order='id')
children_tax_code_template.sort()
for tax_code_template in self.pool.get('account.tax.code.template').browse(cr, uid, children_tax_code_template):
vals={
for tax_code_template in obj_acc_tax_template.browse(cr, uid, children_tax_code_template, context=context):
vals = {
'name': (tax_code_root_id == tax_code_template.id) and company_id.name or tax_code_template.name,
'code': tax_code_template.code,
'info': tax_code_template.info,
@ -152,7 +158,7 @@ class account_installer(osv.osv_memory):
'company_id': company_id.id,
'sign': tax_code_template.sign,
}
new_tax_code = self.pool.get('account.tax.code').create(cr, uid, vals)
new_tax_code = obj_acc_tax_code.create(cr, uid, vals, context=context)
#recording the new tax code to do the mapping
tax_code_template_ref[tax_code_template.id] = new_tax_code
@ -160,7 +166,7 @@ class account_installer(osv.osv_memory):
for tax in obj_multi.tax_template_ids:
#create it
vals_tax = {
'name':tax.name,
'name': tax.name,
'sequence': tax.sequence,
'amount': tax.amount,
'type': tax.type,
@ -180,11 +186,11 @@ class account_installer(osv.osv_memory):
'ref_base_sign': tax.ref_base_sign,
'ref_tax_sign': tax.ref_tax_sign,
'include_base_amount': tax.include_base_amount,
'description':tax.description,
'description': tax.description,
'company_id': company_id.id,
'type_tax_use': tax.type_tax_use
}
new_tax = obj_acc_tax.create(cr, uid, vals_tax)
new_tax = obj_acc_tax.create(cr, uid, vals_tax, context=context)
#as the accounts have not been created yet, we have to wait before filling these fields
todo_dict[new_tax] = {
'account_collected_id': tax.account_collected_id and tax.account_collected_id.id or False,
@ -195,9 +201,9 @@ class account_installer(osv.osv_memory):
#deactivate the parent_store functionnality on account_account for rapidity purpose
self.pool._init = True
children_acc_template = obj_acc_template.search(cr, uid, [('parent_id','child_of',[obj_acc_root.id]),('nocreate','!=',True)])
children_acc_template = obj_acc_template.search(cr, uid, [('parent_id', 'child_of', [obj_acc_root.id]), ('nocreate', '!=', True)], context=context)
children_acc_template.sort()
for account_template in obj_acc_template.browse(cr, uid, children_acc_template):
for account_template in obj_acc_template.browse(cr, uid, children_acc_template, context=context):
tax_ids = []
for tax in account_template.tax_ids:
tax_ids.append(tax_template_ref[tax.id])
@ -206,9 +212,9 @@ class account_installer(osv.osv_memory):
dig = 6
code_main = account_template.code and len(account_template.code) or 0
code_acc = account_template.code or ''
if code_main>0 and code_main<=dig and account_template.type != 'view':
code_acc=str(code_acc) + (str('0'*(dig-code_main)))
vals={
if code_main > 0 and code_main <= dig and account_template.type != 'view':
code_acc = str(code_acc) + (str('0'*(dig-code_main)))
vals = {
'name': (obj_acc_root.id == account_template.id) and company_id.name or account_template.name,
#'sign': account_template.sign,
'currency_id': account_template.currency_id and account_template.currency_id.id or False,
@ -222,10 +228,10 @@ class account_installer(osv.osv_memory):
'tax_ids': [(6, 0, tax_ids)],
'company_id': company_id.id,
}
new_account = obj_acc.create(cr, uid, vals)
new_account = obj_acc.create(cr, uid, vals, context=context)
acc_template_ref[account_template.id] = new_account
if account_template.name == 'Bank Current Account':
b_vals={
b_vals = {
'name': 'Bank Accounts',
'code': '110500',
'type': 'view',
@ -236,47 +242,52 @@ class account_installer(osv.osv_memory):
'tax_ids': [(6,0,tax_ids)],
'company_id': company_id.id,
}
bank_account = obj_acc.create(cr, uid, b_vals)
bank_account = obj_acc.create(cr, uid, b_vals, context=context)
view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name', '=', 'Bank/Cash Journal View')])[0] #why fixed name here?
view_id_cur = self.pool.get('account.journal.view').search(cr, uid, [('name', '=', 'Bank/Cash Journal (Multi-Currency) View')])[0] #Why Fixed name here?
view_id_cash = obj_acc_journal_view.search(cr, uid, [('name', '=', 'Bank/Cash Journal View')], context=context)[0] #why fixed name here?
view_id_cur = obj_acc_journal_view.search(cr, uid, [('name', '=', 'Bank/Cash Journal (Multi-Currency) View')], context=context)[0] #Why Fixed name here?
cash_result = mod_obj._get_id(cr, uid, 'account', 'conf_account_type_cash')
cash_type_id = mod_obj.read(cr, uid, [cash_result], ['res_id'])[0]['res_id']
cash_type_id = mod_obj.read(cr, uid, [cash_result], ['res_id'], context=context)[0]['res_id']
bank_result = mod_obj._get_id(cr, uid, 'account', 'conf_account_type_bnk')
bank_type_id = mod_obj.read(cr, uid, [bank_result], ['res_id'])[0]['res_id']
bank_type_id = mod_obj.read(cr, uid, [bank_result], ['res_id'], context=context)[0]['res_id']
check_result = mod_obj._get_id(cr, uid, 'account', 'conf_account_type_chk')
check_type_id = mod_obj.read(cr, uid, [check_result], ['res_id'])[0]['res_id']
check_type_id = mod_obj.read(cr, uid, [check_result], ['res_id'], context=context)[0]['res_id']
# record = self.browse(cr, uid, ids, context=context)[0]
code_cnt = 1
vals_seq = {
'name': _('Bank Journal '),
'code': 'account.journal',
'prefix': 'BNK/%(year)s/',
'padding': 5
}
seq_id = obj_sequence.create(cr, uid, vals_seq)
'name': _('Bank Journal '),
'code': 'account.journal',
'prefix': 'BNK/%(year)s/',
'padding': 5
}
seq_id = obj_sequence.create(cr, uid, vals_seq, context=context)
#create the bank journals
analitical_bank_ids = analytic_journal_obj.search(cr, uid, [('type','=','situation')])
analitical_bank_ids = analytic_journal_obj.search(cr, uid, [('type', '=', 'situation')], context=context)
analitical_journal_bank = analitical_bank_ids and analitical_bank_ids[0] or False
vals_journal = {}
vals_journal['name'] = _('Bank Journal ')
vals_journal['code'] = _('BNK')
vals_journal['sequence_id'] = seq_id
vals_journal['type'] = 'bank'
vals_journal['analytic_journal_id'] = analitical_journal_bank
vals_journal = {
'name': _('Bank Journal '),
'code': _('BNK'),
'sequence_id': seq_id,
'type': 'bank',
'analytic_journal_id': analitical_journal_bank
}
if vals.get('currency_id', False):
vals_journal['view_id'] = view_id_cur
vals_journal['currency'] = vals.get('currency_id', False)
vals_journal.update({
'view_id': view_id_cur,
'currency': vals.get('currency_id', False)
})
else:
vals_journal['view_id'] = view_id_cash
vals_journal['default_credit_account_id'] = new_account
vals_journal['default_debit_account_id'] = new_account
obj_journal.create(cr, uid, vals_journal)
vals_journal.update({'view_id': view_id_cash})
vals_journal.update({
'default_credit_account_id': new_account,
'default_debit_account_id': new_account,
})
obj_journal.create(cr, uid, vals_journal, context=context)
for val in record.bank_accounts_id:
seq_padding = 5
@ -290,44 +301,52 @@ class account_installer(osv.osv_memory):
type = check_type_id
seq_padding = None
vals_bnk = {'name': val.acc_name or '',
vals_bnk = {
'name': val.acc_name or '',
'currency_id': val.currency_id.id or False,
'code': str(110500 + code_cnt),
'type': 'liquidity',
'user_type': type,
'parent_id':bank_account,
'company_id': company_id.id }
child_bnk_acc = obj_acc.create(cr, uid, vals_bnk)
'parent_id': bank_account,
'company_id': company_id.id
}
child_bnk_acc = obj_acc.create(cr, uid, vals_bnk, context=context)
vals_seq_child = {
'name': _(vals_bnk['name'] + ' ' + 'Journal'),
'code': 'account.journal',
'prefix': _((vals_bnk['name'][:3].upper()) + '/%(year)s/'),
'padding': seq_padding
}
seq_id = obj_sequence.create(cr, uid, vals_seq_child)
}
seq_id = obj_sequence.create(cr, uid, vals_seq_child, context=context)
#create the bank journal
vals_journal = {}
vals_journal['name'] = vals_bnk['name'] + ' Journal'
vals_journal['code'] = _(vals_bnk['name'][:3]).upper()
vals_journal['sequence_id'] = seq_id
vals_journal['type'] = 'cash'
vals_journal = {
'name': vals_bnk['name'] + _(' Journal'),
'code': _(vals_bnk['name'][:3]).upper(),
'sequence_id': seq_id,
'type': 'cash',
}
if vals.get('currency_id', False):
vals_journal['view_id'] = view_id_cur
vals_journal['currency'] = vals_bnk.get('currency_id', False)
vals_journal.update({
'view_id': view_id_cur,
'currency': vals_bnk.get('currency_id', False),
})
else:
vals_journal['view_id'] = view_id_cash
vals_journal['default_credit_account_id'] = child_bnk_acc
vals_journal['default_debit_account_id'] = child_bnk_acc
vals_journal['analytic_journal_id'] = analitical_journal_bank
obj_journal.create(cr,uid,vals_journal)
vals_journal.update({'view_id': view_id_cash})
vals_journal.update({
'default_credit_account_id': child_bnk_acc,
'default_debit_account_id': child_bnk_acc,
'analytic_journal_id': analitical_journal_bank
})
obj_journal.create(cr, uid, vals_journal, context=context)
code_cnt += 1
#reactivate the parent_store functionality on account_account
self.pool._init = False
self.pool.get('account.account')._parent_store_compute(cr)
obj_acc._parent_store_compute(cr)
for key,value in todo_dict.items():
for key, value in todo_dict.items():
if value['account_collected_id'] or value['account_paid_id']:
obj_acc_tax.write(cr, uid, [key], {
'account_collected_id': acc_template_ref[value['account_collected_id']],
@ -335,42 +354,41 @@ class account_installer(osv.osv_memory):
})
# Creating Journals Sales and Purchase
vals_journal={}
data_id = mod_obj.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_sp_journal_view')])
data = mod_obj.browse(cr, uid, data_id[0])
vals_journal = {}
data_id = mod_obj.search(cr, uid, [('model', '=', 'account.journal.view'), ('name', '=', 'account_sp_journal_view')], context=context)
data = mod_obj.browse(cr, uid, data_id[0], context=context)
view_id = data.res_id
seq_id = obj_sequence.search(cr,uid,[('name','=','Account Journal')])[0]
seq_id = obj_sequence.search(cr,uid,[('name', '=', 'Account Journal')], context=context)[0]
if seq_journal:
seq_sale = {
'name': 'Sale Journal',
'code': 'account.journal',
'prefix': 'SAJ/%(year)s/',
'padding': 3
}
seq_id_sale = obj_sequence.create(cr, uid, seq_sale)
'name': 'Sale Journal',
'code': 'account.journal',
'prefix': 'SAJ/%(year)s/',
'padding': 3
}
seq_id_sale = obj_sequence.create(cr, uid, seq_sale, context=context)
seq_purchase = {
'name': 'Purchase Journal',
'code': 'account.journal',
'prefix': 'EXJ/%(year)s/',
'padding': 3
}
seq_id_purchase = obj_sequence.create(cr, uid, seq_purchase)
'name': 'Purchase Journal',
'code': 'account.journal',
'prefix': 'EXJ/%(year)s/',
'padding': 3
}
seq_id_purchase = obj_sequence.create(cr, uid, seq_purchase, context=context)
seq_refund_sale = {
'name': 'Sales Refund Journal',
'code': 'account.journal',
'prefix': 'SCNJ/%(year)s/',
'padding': 3
}
seq_id_sale_refund = obj_sequence.create(cr, uid, seq_refund_sale)
'name': 'Sales Refund Journal',
'code': 'account.journal',
'prefix': 'SCNJ/%(year)s/',
'padding': 3
}
seq_id_sale_refund = obj_sequence.create(cr, uid, seq_refund_sale, context=context)
seq_refund_purchase = {
'name': 'Purchase Refund Journal',
'code': 'account.journal',
'prefix': 'ECNJ/%(year)s/',
'padding': 3
}
seq_id_purchase_refund = obj_sequence.create(cr, uid, seq_refund_purchase)
'name': 'Purchase Refund Journal',
'code': 'account.journal',
'prefix': 'ECNJ/%(year)s/',
'padding': 3
}
seq_id_purchase_refund = obj_sequence.create(cr, uid, seq_refund_purchase, context=context)
else:
seq_id_sale = seq_id
seq_id_purchase = seq_id
@ -380,83 +398,90 @@ class account_installer(osv.osv_memory):
vals_journal['view_id'] = view_id
#Sales Journal
analitical_sale_ids = analytic_journal_obj.search(cr,uid,[('type','=','sale')])
analitical_sale_ids = analytic_journal_obj.search(cr, uid, [('type','=','sale')], context=context)
analitical_journal_sale = analitical_sale_ids and analitical_sale_ids[0] or False
vals_journal['name'] = _('Sales Journal')
vals_journal['type'] = 'sale'
vals_journal['code'] = _('SAJ')
vals_journal['sequence_id'] = seq_id_sale
vals_journal['analytic_journal_id'] = analitical_journal_sale
vals_journal.update({
'name': _('Sales Journal'),
'type': 'sale',
'code': _('SAJ'),
'sequence_id': seq_id_sale,
'analytic_journal_id': analitical_journal_sale
})
if obj_multi.property_account_receivable:
vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.property_account_income_categ.id]
vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.property_account_income_categ.id]
obj_journal.create(cr,uid,vals_journal)
vals_journal.update({
'default_credit_account_id': acc_template_ref[obj_multi.property_account_income_categ.id],
'default_debit_account_id': acc_template_ref[obj_multi.property_account_income_categ.id],
})
obj_journal.create(cr, uid, vals_journal, context=context)
# Purchase Journal
analitical_purchase_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')])
analitical_purchase_ids = analytic_journal_obj.search(cr, uid, [('type', '=', 'purchase')], context=context)
analitical_journal_purchase = analitical_purchase_ids and analitical_purchase_ids[0] or False
vals_journal['name'] = _('Purchase Journal')
vals_journal['type'] = 'purchase'
vals_journal['code'] = _('EXJ')
vals_journal['sequence_id'] = seq_id_purchase
vals_journal['analytic_journal_id'] = analitical_journal_purchase
vals_journal.update({
'name': _('Purchase Journal'),
'type': 'purchase',
'code': _('EXJ'),
'sequence_id': seq_id_purchase,
'analytic_journal_id': analitical_journal_purchase
})
if obj_multi.property_account_payable:
vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.property_account_expense_categ.id]
vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.property_account_expense_categ.id]
obj_journal.create(cr,uid,vals_journal)
vals_journal.update({
'default_credit_account_id': acc_template_ref[obj_multi.property_account_expense_categ.id],
'default_debit_account_id': acc_template_ref[obj_multi.property_account_expense_categ.id]
})
obj_journal.create(cr, uid, vals_journal, context=context)
# Creating Journals Sales Refund and Purchase Refund
vals_journal={}
data_id = mod_obj.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_sp_refund_journal_view')])
data = mod_obj.browse(cr, uid, data_id[0])
vals_journal = {}
data_id = mod_obj.search(cr, uid, [('model', '=', 'account.journal.view'), ('name', '=', 'account_sp_refund_journal_view')], context=context)
data = mod_obj.browse(cr, uid, data_id[0], context=context)
view_id = data.res_id
vals_journal['view_id'] = view_id
#Sales Refund Journal
vals_journal['name'] = _('Sales Refund Journal')
vals_journal['type'] = 'sale_refund'
vals_journal['refund_journal'] = True
vals_journal['code'] = _('SCNJ')
vals_journal['sequence_id'] = seq_id_sale_refund
vals_journal['analytic_journal_id'] = analitical_journal_sale
vals_journal = {
'view_id': view_id,
'name': _('Sales Refund Journal'),
'type': 'sale_refund',
'refund_journal': True,
'code': _('SCNJ'),
'sequence_id': seq_id_sale_refund,
'analytic_journal_id': analitical_journal_sale
}
if obj_multi.property_account_receivable:
vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.property_account_income_categ.id]
vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.property_account_income_categ.id]
vals_journal.update({
'default_credit_account_id': acc_template_ref[obj_multi.property_account_income_categ.id],
'default_debit_account_id': acc_template_ref[obj_multi.property_account_income_categ.id]
})
obj_journal.create(cr,uid,vals_journal)
obj_journal.create(cr, uid, vals_journal, context=context)
# Purchase Refund Journal
vals_journal['name'] = _('Purchase Refund Journal')
vals_journal['type'] = 'purchase_refund'
vals_journal['refund_journal'] = True
vals_journal['code'] = _('ECNJ')
vals_journal['sequence_id'] = seq_id_purchase_refund
vals_journal['analytic_journal_id'] = analitical_journal_purchase
vals_journal = {
'view_id': view_id,
'name': _('Purchase Refund Journal'),
'type': 'purchase_refund',
'refund_journal': True,
'code': _('ECNJ'),
'sequence_id': seq_id_purchase_refund,
'analytic_journal_id': analitical_journal_purchase
}
if obj_multi.property_account_payable:
vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.property_account_expense_categ.id]
vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.property_account_expense_categ.id]
obj_journal.create(cr, uid, vals_journal)
vals_journal.update({
'default_credit_account_id': acc_template_ref[obj_multi.property_account_expense_categ.id],
'default_debit_account_id': acc_template_ref[obj_multi.property_account_expense_categ.id]
})
obj_journal.create(cr, uid, vals_journal, context=context)
# Bank Journals
view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal View')])[0] #TOFIX: Why put fixed name ?
view_id_cur = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal (Multi-Currency) View')])[0] #TOFIX: why put fixed name?
view_id_cash = obj_acc_journal_view.search(cr, uid, [('name', '=', 'Bank/Cash Journal View')], context=context)[0] #TOFIX: Why put fixed name ?
view_id_cur = obj_acc_journal_view.search(cr, uid, [('name', '=', 'Bank/Cash Journal (Multi-Currency) View')], context=context)[0] #TOFIX: why put fixed name?
#create the properties
property_obj = self.pool.get('ir.property')
fields_obj = self.pool.get('ir.model.fields')
todo_list = [
('property_account_receivable', 'res.partner', 'account.account'),
('property_account_payable', 'res.partner', 'account.account'),
@ -469,52 +494,45 @@ class account_installer(osv.osv_memory):
for record in todo_list:
r = []
r = property_obj.search(cr, uid, [('name', '=', record[0]), ('company_id', '=', company_id.id)])
r = property_obj.search(cr, uid, [('name', '=', record[0]), ('company_id', '=', company_id.id)], context=context)
account = getattr(obj_multi, record[0])
field = fields_obj.search(cr, uid, [('name', '=', record[0]), ('model', '=', record[1]), ('relation', '=', record[2])])
field = fields_obj.search(cr, uid, [('name', '=', record[0]), ('model', '=', record[1]), ('relation', '=', record[2])], context=context)
vals = {
'name': record[0],
'company_id': company_id.id,
'fields_id': field[0],
'value': account and 'account.account,'+str(acc_template_ref[account.id]) or False,
'value': account and 'account.account, '+str(acc_template_ref[account.id]) or False,
}
if r:
#the property exist: modify it
property_obj.write(cr, uid, r, vals)
property_obj.write(cr, uid, r, vals, context=context)
else:
#create the property
property_obj.create(cr, uid, vals)
fp_ids = obj_fiscal_position_template.search(cr, uid,[('chart_template_id', '=', obj_multi.id)])
property_obj.create(cr, uid, vals, context=context)
fp_ids = obj_fiscal_position_template.search(cr, uid, [('chart_template_id', '=', obj_multi.id)], context=context)
if fp_ids:
for position in obj_fiscal_position_template.browse(cr, uid, fp_ids):
for position in obj_fiscal_position_template.browse(cr, uid, fp_ids, context=context):
vals_fp = {
'company_id': company_id.id,
'name': position.name,
}
new_fp = obj_fiscal_position.create(cr, uid, vals_fp)
obj_tax_fp = self.pool.get('account.fiscal.position.tax')
obj_ac_fp = self.pool.get('account.fiscal.position.account')
'company_id': company_id.id,
'name': position.name,
}
new_fp = obj_fiscal_position.create(cr, uid, vals_fp, context=context)
for tax in position.tax_ids:
vals_tax = {
'tax_src_id': tax_template_ref[tax.tax_src_id.id],
'tax_dest_id': tax.tax_dest_id and tax_template_ref[tax.tax_dest_id.id] or False,
'position_id': new_fp,
}
obj_tax_fp.create(cr, uid, vals_tax)
'tax_src_id': tax_template_ref[tax.tax_src_id.id],
'tax_dest_id': tax.tax_dest_id and tax_template_ref[tax.tax_dest_id.id] or False,
'position_id': new_fp,
}
obj_tax_fp.create(cr, uid, vals_tax, context=context)
for acc in position.account_ids:
vals_acc = {
'account_src_id': acc_template_ref[acc.account_src_id.id],
'account_dest_id': acc_template_ref[acc.account_dest_id.id],
'position_id': new_fp,
}
obj_ac_fp.create(cr, uid, vals_acc)
'account_src_id': acc_template_ref[acc.account_src_id.id],
'account_dest_id': acc_template_ref[acc.account_dest_id.id],
'position_id': new_fp,
}
obj_ac_fp.create(cr, uid, vals_acc, context=context)
def execute(self, cr, uid, ids, context=None):
if context is None:
@ -524,58 +542,58 @@ class account_installer(osv.osv_memory):
obj_acc = self.pool.get('account.account')
obj_tax_code = self.pool.get('account.tax.code')
obj_temp_tax_code = self.pool.get('account.tax.code.template')
obj_tax = self.pool.get('account.tax')
obj_product = self.pool.get('product.product')
ir_values = self.pool.get('ir.values')
super(account_installer, self).execute(cr, uid, ids, context=context)
record = self.browse(cr, uid, ids, context=context)[0]
company_id = record.company_id
for res in self.read(cr, uid, ids):
for res in self.read(cr, uid, ids, context=context):
if record.charts == 'configurable':
fp = tools.file_open(opj('account','configurable_account_chart.xml'))
tools.convert_xml_import(cr, 'account', fp, {}, 'init',True, None)
fp = tools.file_open(opj('account', 'configurable_account_chart.xml'))
tools.convert_xml_import(cr, 'account', fp, {}, 'init', True, None)
fp.close()
self.generate_configurable_chart(cr, uid, ids, context=context)
obj_tax = self.pool.get('account.tax')
obj_product = self.pool.get('product.product')
ir_values = self.pool.get('ir.values')
s_tax = (res.get('sale_tax', 0.0))/100
p_tax = (res.get('purchase_tax', 0.0))/100
tax_val = {}
default_tax = []
pur_temp_tax = mod_obj._get_id(cr, uid, 'account', 'tax_code_base_purchases')
pur_temp_tax_id = mod_obj.read(cr, uid, [pur_temp_tax], ['res_id'])[0]['res_id']
pur_temp_tax_names = obj_temp_tax_code.read(cr, uid, [pur_temp_tax_id], ['name'])
pur_temp_tax_id = mod_obj.read(cr, uid, [pur_temp_tax], ['res_id'], context=context)[0]['res_id']
pur_temp_tax_names = obj_temp_tax_code.read(cr, uid, [pur_temp_tax_id], ['name'], context=context)
pur_tax_parent_name = pur_temp_tax_names and pur_temp_tax_names[0]['name'] or False
pur_taxcode_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', pur_tax_parent_name)])
pur_taxcode_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', pur_tax_parent_name)], context=context)
if pur_taxcode_parent_id:
pur_taxcode_parent_id = pur_taxcode_parent_id[0]
else:
pur_taxcode_parent_id = False
pur_temp_tax_paid = mod_obj._get_id(cr, uid, 'account', 'tax_code_input')
pur_temp_tax_paid_id = mod_obj.read(cr, uid, [pur_temp_tax_paid], ['res_id'])[0]['res_id']
pur_temp_tax_paid_names = obj_temp_tax_code.read(cr, uid, [pur_temp_tax_paid_id], ['name'])
pur_temp_tax_paid_id = mod_obj.read(cr, uid, [pur_temp_tax_paid], ['res_id'], context=context)[0]['res_id']
pur_temp_tax_paid_names = obj_temp_tax_code.read(cr, uid, [pur_temp_tax_paid_id], ['name'], context=context)
pur_tax_paid_parent_name = pur_temp_tax_names and pur_temp_tax_paid_names[0]['name'] or False
pur_taxcode_paid_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', pur_tax_paid_parent_name)])
pur_taxcode_paid_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', pur_tax_paid_parent_name)], context=context)
if pur_taxcode_paid_parent_id:
pur_taxcode_paid_parent_id = pur_taxcode_paid_parent_id[0]
else:
pur_taxcode_paid_parent_id = False
sale_temp_tax = mod_obj._get_id(cr, uid, 'account', 'tax_code_base_sales')
sale_temp_tax_id = mod_obj.read(cr, uid, [sale_temp_tax], ['res_id'])[0]['res_id']
sale_temp_tax_names = obj_temp_tax_code.read(cr, uid, [sale_temp_tax_id], ['name'])
sale_temp_tax_id = mod_obj.read(cr, uid, [sale_temp_tax], ['res_id'], context=context)[0]['res_id']
sale_temp_tax_names = obj_temp_tax_code.read(cr, uid, [sale_temp_tax_id], ['name'], context=context)
sale_tax_parent_name = sale_temp_tax_names and sale_temp_tax_names[0]['name'] or False
sale_taxcode_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', sale_tax_parent_name)])
sale_taxcode_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', sale_tax_parent_name)], context=context)
if sale_taxcode_parent_id:
sale_taxcode_parent_id = sale_taxcode_parent_id[0]
else:
sale_taxcode_parent_id = False
sale_temp_tax_paid = mod_obj._get_id(cr, uid, 'account', 'tax_code_output')
sale_temp_tax_paid_id = mod_obj.read(cr, uid, [sale_temp_tax_paid], ['res_id'])[0]['res_id']
sale_temp_tax_paid_names = obj_temp_tax_code.read(cr, uid, [sale_temp_tax_paid_id], ['name'])
sale_temp_tax_paid_id = mod_obj.read(cr, uid, [sale_temp_tax_paid], ['res_id'], context=context)[0]['res_id']
sale_temp_tax_paid_names = obj_temp_tax_code.read(cr, uid, [sale_temp_tax_paid_id], ['name'], context=context)
sale_tax_paid_parent_name = sale_temp_tax_paid_names and sale_temp_tax_paid_names[0]['name'] or False
sale_taxcode_paid_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', sale_tax_paid_parent_name)])
sale_taxcode_paid_parent_id = obj_tax_code.search(cr, uid, [('name', 'ilike', sale_tax_paid_parent_name)], context=context)
if sale_taxcode_paid_parent_id:
sale_taxcode_paid_parent_id = sale_taxcode_paid_parent_id[0]
else:
@ -590,8 +608,8 @@ class account_installer(osv.osv_memory):
'company_id': company_id.id,
'sign': 1,
'parent_id': sale_taxcode_parent_id
}
new_tax_code = self.pool.get('account.tax.code').create(cr, uid, vals_tax_code)
}
new_tax_code = obj_tax_code.create(cr, uid, vals_tax_code, context=context)
vals_paid_tax_code = {
'name': 'TAX Received %s%%'%(s_tax*100),
@ -600,20 +618,20 @@ class account_installer(osv.osv_memory):
'sign': 1,
'parent_id': sale_taxcode_paid_parent_id
}
new_paid_tax_code = self.pool.get('account.tax.code').create(cr, uid, vals_paid_tax_code)
new_paid_tax_code = obj_tax_code.create(cr, uid, vals_paid_tax_code, context=context)
sales_tax = obj_tax.create(cr, uid,
{'name':'TAX %s%%'%(s_tax*100),
'amount':s_tax,
'base_code_id':new_tax_code,
'tax_code_id':new_paid_tax_code,
'type_tax_use':'sale',
'account_collected_id':sales_tax_account_id,
'account_paid_id':sales_tax_account_id
})
default_account_ids = obj_acc.search(cr, uid, [('name', '=', 'Product Sales')],context=context)
{'name': 'TAX %s%%'%(s_tax*100),
'amount': s_tax,
'base_code_id': new_tax_code,
'tax_code_id': new_paid_tax_code,
'type_tax_use': 'sale',
'account_collected_id': sales_tax_account_id,
'account_paid_id': sales_tax_account_id
}, context=context)
default_account_ids = obj_acc.search(cr, uid, [('name', '=', 'Product Sales')], context=context)
if default_account_ids:
obj_acc.write(cr, uid, default_account_ids, {'tax_ids': [(6, 0, [sales_tax])]})
obj_acc.write(cr, uid, default_account_ids, {'tax_ids': [(6, 0, [sales_tax])]}, context=context)
tax_val.update({'taxes_id': [(6, 0, [sales_tax])]})
default_tax.append(('taxes_id', sales_tax))
if p_tax*100 > 0.0:
@ -626,8 +644,7 @@ class account_installer(osv.osv_memory):
'sign': 1,
'parent_id': pur_taxcode_parent_id
}
new_tax_code = self.pool.get('account.tax.code').create(cr, uid, vals_tax_code)
new_tax_code = obj_tax_code.create(cr, uid, vals_tax_code, context=context)
vals_paid_tax_code = {
'name': 'TAX Paid %s%%'%(p_tax*100),
'code': 'TAX Paid %s%%'%(p_tax*100),
@ -635,7 +652,7 @@ class account_installer(osv.osv_memory):
'sign': 1,
'parent_id': pur_taxcode_paid_parent_id
}
new_paid_tax_code = self.pool.get('account.tax.code').create(cr, uid, vals_paid_tax_code)
new_paid_tax_code = obj_tax_code.create(cr, uid, vals_paid_tax_code, context=context)
purchase_tax = obj_tax.create(cr, uid,
{'name': 'TAX%s%%'%(p_tax*100),
@ -646,32 +663,33 @@ class account_installer(osv.osv_memory):
'type_tax_use': 'purchase',
'account_collected_id': purchase_tax_account_id,
'account_paid_id': purchase_tax_account_id
})
}, context=context)
default_account_ids = obj_acc.search(cr, uid, [('name', '=', 'Expenses')], context=context)
if default_account_ids:
obj_acc.write(cr, uid, default_account_ids, {'tax_ids': [(6, 0, [purchase_tax])]})
obj_acc.write(cr, uid, default_account_ids, {'tax_ids': [(6, 0, [purchase_tax])]}, context=context)
tax_val.update({'supplier_taxes_id': [(6 ,0, [purchase_tax])]})
default_tax.append(('supplier_taxes_id', purchase_tax))
if tax_val:
product_ids = obj_product.search(cr, uid, [])
for product in obj_product.browse(cr, uid, product_ids):
obj_product.write(cr, uid, product.id, tax_val)
product_ids = obj_product.search(cr, uid, [], context=context)
for product in obj_product.browse(cr, uid, product_ids, context=context):
obj_product.write(cr, uid, product.id, tax_val, context=context)
for name, value in default_tax:
ir_values.set(cr, uid, key='default', key2=False, name=name, models =[('product.product',False)], value=[value])
ir_values.set(cr, uid, key='default', key2=False, name=name, models =[('product.product', False)], value=[value])
if 'date_start' in res and 'date_stop' in res:
f_ids = fy_obj.search(cr, uid, [('date_start', '<=', res['date_start']), ('date_stop', '>=', res['date_stop']), ('company_id', '=', res['company_id'])])
f_ids = fy_obj.search(cr, uid, [('date_start', '<=', res['date_start']), ('date_stop', '>=', res['date_stop']), ('company_id', '=', res['company_id'])], context=context)
if not f_ids:
name = code = res['date_start'][:4]
if int(name) != int(res['date_stop'][:4]):
name = res['date_start'][:4] +'-'+ res['date_stop'][:4]
code = res['date_start'][2:4] +'-'+ res['date_stop'][2:4]
vals = {'name': name,
'code': code,
'date_start': res['date_start'],
'date_stop': res['date_stop'],
'company_id': res['company_id']
}
vals = {
'name': name,
'code': code,
'date_start': res['date_start'],
'date_stop': res['date_stop'],
'company_id': res['company_id']
}
fiscal_id = fy_obj.create(cr, uid, vals, context=context)
if res['period'] == 'month':
fy_obj.create_period(cr, uid, [fiscal_id])
@ -698,11 +716,8 @@ class account_bank_accounts_wizard(osv.osv_memory):
'acc_name': fields.char('Account Name.', size=64, required=True),
'bank_account_id': fields.many2one('account.installer', 'Bank Account', required=True),
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
'account_type': fields.selection([('cash','Cash'),('check','Check'),('bank','Bank')], 'Account Type', size=32),
'account_type': fields.selection([('cash','Cash'), ('check','Check'), ('bank','Bank')], 'Account Type', size=32),
}
# _defaults = {
# 'currency_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.currency_id.id,
# }
account_bank_accounts_wizard()
@ -710,7 +725,6 @@ class account_installer_modules(osv.osv_memory):
_name = 'account.installer.modules'
_inherit = 'res.config.installer'
_columns = {
# Accounting
'account_analytic_plans': fields.boolean('Multiple Analytic Plans',
help="Allows invoice lines to impact multiple analytic accounts "
"simultaneously."),
@ -727,9 +741,6 @@ class account_installer_modules(osv.osv_memory):
'account_anglo_saxon': fields.boolean('Anglo-Saxon Accounting',
help="This module will support the Anglo-Saxons accounting methodology by "
"changing the accounting logic with stock transactions."),
# 'account_voucher_payment':fields.boolean('Voucher and Reconcile Management',
# help="Extension Account Voucher module includes allows to link payment / receipt "
# "entries with voucher, also automatically reconcile during the payment and receipt entries."),
}
_defaults = {
@ -738,4 +749,4 @@ class account_installer_modules(osv.osv_memory):
account_installer_modules()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -24,8 +24,8 @@ from lxml import etree
import decimal_precision as dp
import netsvc
from osv import fields, osv, orm
import pooler
from osv import fields, osv, orm
from tools.translate import _
class account_invoice(osv.osv):
@ -57,17 +57,13 @@ class account_invoice(osv.osv):
('company_id', '=', company_id),
('refund_journal', '=', refund_journal.get(type_inv, False))],
limit=1)
if res:
return res[0]
else:
return False
return res and res[0] or False
def _get_currency(self, cr, uid, context=None):
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0]
if user.company_id:
return user.company_id.currency_id.id
else:
return pooler.get_pool(cr.dbname).get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
return pooler.get_pool(cr.dbname).get('res.currency').search(cr, uid, [('rate','=', 1.0)])[0]
def _get_journal_analytic(self, cr, uid, type_inv, context=None):
type2journal = {'out_invoice': 'sale', 'in_invoice': 'purchase', 'out_refund': 'sale', 'in_refund': 'purchase'}
@ -134,7 +130,6 @@ class account_invoice(osv.osv):
result = inv.amount_total - amount
# Use is_zero function to avoid rounding trouble => should be fixed into ORM
res[inv.id] = not self.pool.get('res.currency').is_zero(cr, uid, inv.company_id.currency_id, result) and result or 0.0
return res
# Give Journal Items related to the payment reconciled to this invoice
@ -359,12 +354,26 @@ class account_invoice(osv.osv):
res['arch'] = etree.tostring(doc)
return res
def get_log_context(self, cr, uid, context=None):
if context is None:
context = {}
mob_obj = self.pool.get('ir.model.data')
res = mob_obj.get_object_reference(cr, uid, 'account', 'invoice_form') or False
view_id = res and res[1] or False
context.update({'view_id': view_id})
return context
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
try:
res = super(account_invoice, self).create(cr, uid, vals, context)
for inv_id, name in self.name_get(cr, uid, [res], context=context):
ctx = context.copy()
if vals.get('type', 'in_invoice') in ('out_invoice', 'out_refund'):
ctx = self.get_log_context(cr, uid, context=ctx)
message = _("Invoice '%s' is waiting for validation.") % name
self.log(cr, uid, inv_id, message)
self.log(cr, uid, inv_id, message, context=ctx)
return res
except Exception, e:
if '"journal_id" viol' in e.args[0]:
@ -491,7 +500,6 @@ class account_invoice(osv.osv):
res = {'value':{'date_due': pterm_list[-1]}}
else:
raise osv.except_osv(_('Data Insufficient !'), _('The Payment Term of Supplier does not have Payment Term Lines(Computation) defined !'))
return res
def onchange_invoice_line(self, cr, uid, ids, lines):
@ -504,6 +512,8 @@ class account_invoice(osv.osv):
val = {}
dom = {}
obj_journal = self.pool.get('account.journal')
account_obj = self.pool.get('account.account')
inv_line_obj = self.pool.get('account.invoice.line')
if company_id and part_id and type:
acc_id = False
partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id)
@ -528,7 +538,6 @@ class account_invoice(osv.osv):
else:
acc_id = pay_res_id
val= {'account_id': acc_id}
account_obj = self.pool.get('account.account')
if ids:
if company_id:
inv_obj = self.browse(cr,uid,ids)
@ -539,7 +548,7 @@ class account_invoice(osv.osv):
if not result_id:
raise osv.except_osv(_('Configuration Error !'),
_('Can not find account chart for this company in invoice line account, Please Create account.'))
self.pool.get('account.invoice.line').write(cr, uid, [line.id], {'account_id': result_id[0]})
inv_line_obj.write(cr, uid, [line.id], {'account_id': result_id[0]})
else:
if invoice_line:
for inv_line in invoice_line:
@ -580,7 +589,7 @@ class account_invoice(osv.osv):
else:
val['currency_id'] = company.currency_id.id
return {'value': val, 'domain': dom }
return {'value': val, 'domain': dom}
# go from canceled state to draft state
def action_cancel_draft(self, cr, uid, ids, *args):
@ -792,7 +801,6 @@ class account_invoice(osv.osv):
line = []
for key, val in line2.items():
line.append((0,0,val))
return line
def action_move_create(self, cr, uid, ids, *args):
@ -967,7 +975,9 @@ class account_invoice(osv.osv):
'analytic_account_id':x.get('account_analytic_id',False),
}
def action_number(self, cr, uid, ids, *args):
def action_number(self, cr, uid, ids, context=None):
if context is None:
context = {}
#TODO: not correct fix but required a frech values before reading it.
self.write(cr, uid, ids, {})
@ -981,7 +991,10 @@ class account_invoice(osv.osv):
self.write(cr, uid, ids, {'internal_number':number})
if invtype in ('in_invoice', 'in_refund'):
ref = reference
if not reference:
ref = self._convert_ref(cr, uid, number)
else:
ref = reference
else:
ref = self._convert_ref(cr, uid, number)
@ -998,9 +1011,11 @@ class account_invoice(osv.osv):
(ref, move_id))
for inv_id, name in self.name_get(cr, uid, [id]):
ctx = context.copy()
if obj_inv.type in ('out_invoice', 'out_refund'):
ctx = self.get_log_context(cr, uid, context=ctx)
message = _('Invoice ') + " '" + name + "' "+ _("is validated.")
self.log(cr, uid, inv_id, message)
self.log(cr, uid, inv_id, message, context=ctx)
return True
def action_cancel(self, cr, uid, ids, *args):
@ -1489,8 +1504,8 @@ class account_invoice_line(osv.osv):
taxes = self.pool.get('account.account').browse(cr, uid, account_id).tax_ids
fpos = fposition_id and self.pool.get('account.fiscal.position').browse(cr, uid, fposition_id) or False
res = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, taxes)
r = {'value':{'invoice_line_tax_id': res}}
return r
return {'value':{'invoice_line_tax_id': res}}
account_invoice_line()
class account_invoice_tax(osv.osv):
@ -1522,7 +1537,6 @@ class account_invoice_tax(osv.osv):
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'manual': fields.boolean('Manual'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of invoice tax."),
'base_code_id': fields.many2one('account.tax.code', 'Base Code', help="The account basis of the tax declaration."),
'base_amount': fields.float('Base Code Amount', digits_compute=dp.get_precision('Account')),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
@ -1560,9 +1574,9 @@ class account_invoice_tax(osv.osv):
_order = 'sequence'
_defaults = {
'manual': lambda *a: 1,
'base_amount': lambda *a: 0.0,
'tax_amount': lambda *a: 0.0,
'manual': 1,
'base_amount': 0.0,
'tax_amount': 0.0,
}
def compute(self, cr, uid, invoice_id, context={}):
tax_grouped = {}

View File

@ -44,7 +44,7 @@ class account_journal(osv.osv):
_inherit="account.journal"
_columns = {
'analytic_journal_id':fields.many2one('account.analytic.journal','Analytic Journal',help="Journal for analytic entries"),
'analytic_journal_id':fields.many2one('account.analytic.journal','Analytic Journal', help="Journal for analytic entries"),
}
account_journal()

View File

@ -197,7 +197,7 @@
<group col='6' colspan='4'>
<filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-sale" help="Analytic Journal Items related to a sale journal."/>
<filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation')]" icon="terp-folder-orange"/>
<filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation'))]" icon="terp-folder-orange"/>
<separator orientation="vertical"/>
<field name="date"/>
<field name="name"/>

View File

@ -26,6 +26,7 @@ import rml_parse
from report import report_sxw
from account.report import account_profit_loss
from common_report_header import common_report_header
from tools.translate import _
class report_balancesheet_horizontal(rml_parse.rml_parse, common_report_header):
def __init__(self, cr, uid, name, context=None):
@ -61,12 +62,12 @@ class report_balancesheet_horizontal(rml_parse.rml_parse, common_report_header):
self.context = context
def sum_dr(self):
if self.res_bl['type'] == 'Net Profit':
if self.res_bl['type'] == _('Net Profit'):
self.result_sum_dr += self.res_bl['balance']*-1
return self.result_sum_dr
def sum_cr(self):
if self.res_bl['type'] == 'Net Loss':
if self.res_bl['type'] == _('Net Loss'):
self.result_sum_cr += self.res_bl['balance']
return self.result_sum_cr
@ -78,6 +79,7 @@ class report_balancesheet_horizontal(rml_parse.rml_parse, common_report_header):
db_pool = pooler.get_pool(self.cr.dbname)
#Getting Profit or Loss Balance from profit and Loss report
self.obj_pl.get_data(data)
self.res_bl = self.obj_pl.final_result()
account_pool = db_pool.get('account.account')
@ -103,10 +105,14 @@ class report_balancesheet_horizontal(rml_parse.rml_parse, common_report_header):
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
if self.res_bl['type'] == 'Net Profit C.F.B.L.':
self.res_bl['type'] = 'Net Profit'
if not self.res_bl:
self.res_bl['type'] = _('Net Profit')
self.res_bl['balance'] = 0.0
if self.res_bl['type'] == _('Net Profit'):
self.res_bl['type'] = _('Net Profit')
else:
self.res_bl['type'] = 'Net Loss'
self.res_bl['type'] = _('Net Loss')
pl_dict = {
'code': self.res_bl['type'],
'name': self.res_bl['type'],
@ -199,4 +205,4 @@ report_sxw.report_sxw('report.account.balancesheet', 'account.account',
'addons/account/report/account_balance_sheet.rml',parser=report_balancesheet_horizontal,
header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -98,17 +98,6 @@
<field name="categ_id" />
</group>
<newline/>
<group expand="0" string="Extended Filters..." groups="base.group_extended">
<field name="product_id"/>
<separator orientation="vertical"/>
<field name="journal_id" widget="selection"/>
<field name="account_id"/>
<separator orientation="vertical"/>
<field name="date_due"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By...">
<filter string="Partner" name="partner" icon="terp-partner" context="{'group_by':'partner_id','residual_visible':True}"/>
<filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
@ -130,6 +119,17 @@
<filter string="Month" name="month" icon="terp-go-month" context="{'group_by':'month'}" help="Group by month of Invoice Date"/>
<filter string="Year" name="year" icon="terp-go-year" context="{'group_by':'year'}" help="Group by year of Invoice Date"/>
</group>
<newline/>
<group expand="0" string="Extended Filters..." groups="base.group_extended">
<field name="product_id"/>
<separator orientation="vertical"/>
<field name="journal_id" widget="selection"/>
<field name="account_id"/>
<separator orientation="vertical"/>
<field name="date_due"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
</search>
</field>
</record>

View File

@ -20,8 +20,6 @@
##############################################################################
import time
import re
import copy
from tools.translate import _
from report import report_sxw

View File

@ -21,8 +21,6 @@
import time
import ir
from osv import osv
from report import report_sxw
import pooler

View File

@ -199,7 +199,7 @@
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Perticular</para>
<para style="terp_default_Bold_9">Particular</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
@ -208,7 +208,7 @@
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Perticular</para>
<para style="terp_default_Bold_9">Particular</para>
</td>
<td>
<para style="P1">Balance</para>
@ -250,19 +250,19 @@
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and final_result()['type'] or '' ]]</para>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit' and final_result()['type'] or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) ]] [[ company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit' and formatLang(abs(final_result()['balance'])) ]] [[ company.currency_id.symbol ]]</para>
</td>
<td>
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and final_result()['type'] or '' ]]</para>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss' and final_result()['type'] or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and company.currency_id.symbol ]]</para>
</td>
</tr>
</blockTable>

View File

@ -24,6 +24,7 @@ import pooler
import rml_parse
from report import report_sxw
from common_report_header import common_report_header
from tools.translate import _
class report_pl_account_horizontal(rml_parse.rml_parse, common_report_header):
@ -62,12 +63,12 @@ class report_pl_account_horizontal(rml_parse.rml_parse, common_report_header):
return self.res_pl
def sum_dr(self):
if self.res_pl['type'] == 'Net Profit C.F.B.L.':
if self.res_pl['type'] == _('Net Profit'):
self.result_sum_dr += self.res_pl['balance']
return self.result_sum_dr
def sum_cr(self):
if self.res_pl['type'] == 'Net Loss C.F.B.L.':
if self.res_pl['type'] == _('Net Loss'):
self.result_sum_cr += self.res_pl['balance']
return self.result_sum_cr
@ -114,10 +115,10 @@ class report_pl_account_horizontal(rml_parse.rml_parse, common_report_header):
else:
accounts_temp.append(account)
if self.result_sum_dr > self.result_sum_cr:
self.res_pl['type'] = 'Net Loss C.F.B.L.'
self.res_pl['type'] = _('Net Loss')
self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
else:
self.res_pl['type'] = 'Net Profit C.F.B.L.'
self.res_pl['type'] = _('Net Profit')
self.res_pl['balance'] = (self.result_sum_cr - self.result_sum_dr)
self.result[typ] = accounts_temp
cal_list[typ] = self.result[typ]

View File

@ -228,10 +228,10 @@
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and company.currency_id.symbol ]]</para>
</td>
</tr>
</blockTable>
@ -283,10 +283,10 @@
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(abs(final_result()['balance'])) ]] [[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and company.currency_id.symbol ]]</para>
</td>
</tr>
</blockTable>

View File

@ -21,9 +21,7 @@
##############################################################################
import time
import pooler
import rml_parse
import copy
from report import report_sxw
import re

View File

@ -20,46 +20,54 @@
##############################################################################
import time
import copy
import rml_parse
from common_report_header import common_report_header
from report import report_sxw
class tax_report(rml_parse.rml_parse):
class tax_report(rml_parse.rml_parse, common_report_header):
_name = 'report.account.vat.declaration'
def __init__(self, cr, uid, name, context={}):
super(tax_report, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'get_period': self._get_period,
'get_codes': self._get_codes,
'get_general': self._get_general,
'get_company': self._get_company,
'get_currency': self._get_currency,
'get_lines': self._get_lines,
'get_years': self.get_years,
})
def set_context(self, objects, data, ids, report_type=None):
new_ids = ids
res = {}
self.period_ids = []
period_obj = self.pool.get('account.period')
res['periods'] = ''
res['fiscalyear'] = data['form']['fiscalyear_id']
def get_years(self,form):
res={}
fiscal_year_name = self.pool.get('account.fiscalyear').name_get(self.cr,self.uid,form['fiscalyear'])
if fiscal_year_name:
res['fname'] = fiscal_year_name[0][1]
res['periods'] = ''
if form['periods']:
periods_l = self.pool.get('account.period').read(self.cr, self.uid, form['periods'], ['name'])
if data['form']['period_from'] and data['form']['period_to']:
self.period_ids = period_obj.build_ctx_periods(self.cr, self.uid, data['form']['period_from'], data['form']['period_to'])
periods_l = period_obj.read(self.cr, self.uid, self.period_ids, ['name'])
for period in periods_l:
if res['periods']=='':
if res['periods'] == '':
res['periods'] = period['name']
else:
res['periods'] += ", "+ period['name']
return res
return super(tax_report, self).set_context(objects, data, new_ids, report_type=report_type)
def _get_lines(self, based_on, period_list, company_id=False, parent=False, level=0, context={}):
def __init__(self, cr, uid, name, context=None):
super(tax_report, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
'get_codes': self._get_codes,
'get_general': self._get_general,
'get_currency': self._get_currency,
'get_lines': self._get_lines,
'get_fiscalyear': self._get_fiscalyear,
'get_account': self._get_account,
'get_start_period': self.get_start_period,
'get_end_period': self.get_end_period,
'get_basedon': self._get_basedon,
})
def _get_basedon(self, form):
return form['form']['based_on']
def _get_lines(self, based_on, company_id=False, parent=False, level=0, context=None):
period_list = self.period_ids
res = self._get_codes(based_on, company_id, parent, level, period_list, context=context)
if period_list:
res = self._add_codes(based_on, res, period_list, context=context)
else:
@ -96,13 +104,9 @@ class tax_report(rml_parse.rml_parse):
ind_general+=1
i+=1
return top_result
#return array_result
def _get_period(self, period_id, context={}):
return self.pool.get('account.period').browse(self.cr, self.uid, period_id, context=context).name
def _get_general(self, tax_code_id, period_list,company_id, based_on, context={}):
res=[]
def _get_general(self, tax_code_id, period_list, company_id, based_on, context=None):
res = []
obj_account = self.pool.get('account.account')
periods_ids = tuple(period_list)
if based_on == 'payments':
@ -155,7 +159,7 @@ class tax_report(rml_parse.rml_parse):
i+=1
return res
def _get_codes(self, based_on, company_id, parent=False, level=0, period_list=[], context={}):
def _get_codes(self, based_on, company_id, parent=False, level=0, period_list=[], context=None):
obj_tc = self.pool.get('account.tax.code')
ids = obj_tc.search(self.cr, self.uid, [('parent_id','=',parent),('company_id','=',company_id)], context=context)
@ -166,7 +170,7 @@ class tax_report(rml_parse.rml_parse):
res += self._get_codes(based_on, company_id, code.id, level+1, context=context)
return res
def _add_codes(self, based_on, account_list=[], period_list=[], context={}):
def _add_codes(self, based_on, account_list=[], period_list=[], context=None):
res = []
obj_tc = self.pool.get('account.tax.code')
for account in account_list:
@ -181,16 +185,10 @@ class tax_report(rml_parse.rml_parse):
res.append((account[0], code))
return res
def _get_currency(self, form, context=None):
return self.pool.get('res.company').browse(self.cr, self.uid, form['company_id'], context=context).currency_id.name
def _get_company(self, form, context={}):
obj_company = self.pool.get('res.company')
return obj_company.browse(self.cr, self.uid, form['company_id'], context=context).name
def _get_currency(self, form, context={}):
obj_company = self.pool.get('res.company')
return obj_company.browse(self.cr, self.uid, form['company_id'], context=context).currency_id.name
def sort_result(self, accounts, context={}):
def sort_result(self, accounts, context=None):
# On boucle sur notre rapport
result_accounts = []
ind=0
@ -233,4 +231,4 @@ class tax_report(rml_parse.rml_parse):
report_sxw.report_sxw('report.account.vat.declaration', 'account.tax.code',
'addons/account/report/account_tax_report.rml', parser=tax_report, header="internal")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -61,6 +61,42 @@
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="6,0" stop="6,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="7,0" stop="7,0"/>
</blockTableStyle>
<blockTableStyle id="Tableau1">
<blockAlignment value="LEFT"/>
@ -100,21 +136,39 @@
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="1.0" leading="1" spaceBefore="0" spaceAfter="0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<story>
<para style="P2">Tax Statement</para>
<para style="P2"><font color="white"> </font></para>
<blockTable colWidths="538" style="Tableau1">
<blockTable colWidths="140.0,120.0,160.0,120.0" style="Table3">
<tr>
<td><para style="P12">Year : [[ get_years(data['form'])['fname'] ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Chart of Tax</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Periods</para></td>
<td><para style="terp_tblheader_General_Centre">Based On</para></td>
</tr>
<tr>
<td><para style="P12">Periods : [[ get_years(data['form'])['periods'] or removeParentNode('tr')]]</para></td>
</tr>
</blockTable>
<para style="P2"><font color="white"> </font></para>
<tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td>
<blockTable colWidths="80.0,80.0" style="Table4">
<tr>
<td><para style="terp_tblheader_General_Centre">Start Period</para></td>
<td><para style="terp_tblheader_General_Centre">End Period</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_start_period(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_end_period(data) or '' ]]</para></td>
</tr>
</blockTable>
</td>
<td><para style="terp_default_Centre_8">[[ get_basedon(data) or '' ]]</para></td>
</tr>
</blockTable>
<para style="P2"><font color="white"> </font></para>
<blockTable colWidths="340.0,55.0,55.0,90.0" style="Table2" repeatRows="1">
<tr>
<td><para style="P12">Tax Name</para></td>
@ -123,7 +177,7 @@
<td><para style="P12a">Tax Amount</para></td>
</tr>
<tr>
<td><para style="P5"><font>[[ repeatIn(get_lines(data['form']['based_on'],data['form']['periods'],data['form']['company_id']), 'o') ]]</font><font color="white">[[ (o['level']) ]]</font> <font>[[ (len(o['level'])&lt;5 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ o['code'] ]] [[ o['name'] ]] </font></para></td>
<td><para style="P5"><font>[[ repeatIn(get_lines(data['form']['based_on'], data['form']['company_id']), 'o') ]]</font><font color="white">[[ (o['level']) ]]</font> <font>[[ (len(o['level'])&lt;5 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ o['code'] ]] [[ o['name'] ]] </font></para></td>
<td><para style="P6"><font>[[ len(o['level'])&lt;5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]]</font><font>[[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['debit']) ]]</font><font>[[ o['type']&lt;&gt;'view' and removeParentNode('font') ]][[ formatLang(o['debit']) ]]</font></para></td>
<td><para style="P6"><font>[[ len(o['level'])&lt;5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]]</font><font>[[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['credit']) ]]</font><font>[[ o['type']&lt;&gt;'view' and removeParentNode('font') ]][[ formatLang(o['credit'])]]</font></para></td>
<td><para style="P6"><font>[[ len(o['level'])&lt;5 and setTag('para','para',{'fontName':"Helvetica-Bold"}) or removeParentNode('font')]]</font><font>[[ o['type']=='view' and removeParentNode('font') ]][[ formatLang(o['tax_amount']) ]] [[ company.currency_id.symbol ]]</font><font>[[ o['type']&lt;&gt;'view' and removeParentNode('font') ]][[ formatLang(o['tax_amount']) ]] [[ company.currency_id.symbol ]]</font> </para></td>

View File

@ -19,14 +19,11 @@
#
##############################################################################
from report import report_sxw
import xml.dom.minidom
import time
import osv
import re
import pooler
import sys
from report import report_sxw
class rml_parse(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
@ -148,3 +145,4 @@ class rml_parse(report_sxw.rml_parse):
else:
return Stringer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,5 +1,5 @@
-
In order to test Cash statement I create a Cash statement and and confirm it and check it's move created
In order to test Cash statement I create a Cash statement and confirm it and check it's move created
-
!record {model: account.bank.statement, id: account_bank_statement_1}:
date: '2010-10-16'
@ -13,9 +13,9 @@
subtotal: 20.0
- pieces: 100.0
number: 1
subtotal: 200.0
balance_start: 220.0
balance_end: 220.0
subtotal: 100.0
balance_start: 120.0
balance_end: 120.0
-
I check that Initially bank statement is in the "Draft" state
-
@ -46,18 +46,18 @@
partner_id: base.res_partner_4
sequence: 0.0
type: general
balance_end: 1220.0
balance_end: 1120.0
ending_details_ids:
- pieces: 10.0
number: 2
subtotal: 20.0
- pieces: 100.0
number: 1
subtotal: 200.0
subtotal: 100.0
- pieces: 500.0
number: 2
subtotal: 1000.0
balance_end_cash: 1220.0
balance_end_cash: 1120.0
-
I clicked on Close CashBox button to close the cashbox

View File

@ -1,9 +1,22 @@
-
In order to test the PDF reports defined on an invoice, we will create a Invoice Record
-
!record {model: account.invoice, id: test_invoice_1}:
currency_id: base.EUR
company_id: base.main_company
address_invoice_id: base.res_partner_address_tang
partner_id: base.res_partner_asus
state: draft
type: out_invoice
account_id: account.a_recv
name: Test invoice 1
address_contact_id: base.res_partner_address_tang
-
In order to test the PDF reports defined on an invoice, we will print an Invoice Report
-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('test_invoice_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-invoice.'+format), 'wb+').write(data)
@ -56,7 +69,7 @@
-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('test_invoice_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-invoice.'+format), 'wb+').write(data)

View File

@ -19,7 +19,6 @@
#
##############################################################################
import time
from osv import fields, osv
class account_chart(osv.osv_memory):

View File

@ -36,7 +36,7 @@ class account_invoice_refund(osv.osv_memory):
'period': fields.many2one('account.period', 'Force period'),
'journal_id': fields.many2one('account.journal', 'Refund Journal', help='You can select here the journal to use for the refund invoice that will be created. If you leave that field empty, it will use the same journal as the current invoice.'),
'description': fields.char('Description', size=128, required=True),
'filter_refund': fields.selection([('modify', 'Modify'), ('refund', 'Refund'), ('cancel', 'Cancel')], "Refund Type", required=True, help='Refund invoice base on this type. You can not Modify and Cancel if the invoice is already rencociled'),
'filter_refund': fields.selection([('modify', 'Modify'), ('refund', 'Refund'), ('cancel', 'Cancel')], "Refund Type", required=True, help='Refund invoice base on this type. You can not Modify and Cancel if the invoice is already reconciled'),
}
def _get_journal(self, cr, uid, context=None):
@ -179,7 +179,6 @@ class account_invoice_refund(osv.osv_memory):
invoice_lines = inv_obj._refund_cleanup_lines(cr, uid, invoice_lines)
tax_lines = inv_tax_obj.read(cr, uid, invoice['tax_line'], context=context)
tax_lines = inv_obj._refund_cleanup_lines(cr, uid, tax_lines)
invoice.update({
'type': inv.type,
'date_invoice': date,
@ -190,33 +189,32 @@ class account_invoice_refund(osv.osv_memory):
'period_id': period,
'name': description
})
for field in ('address_contact_id', 'address_invoice_id', 'partner_id',
'account_id', 'currency_id', 'payment_term', 'journal_id'):
invoice[field] = invoice[field] and invoice[field][0]
inv_id = inv_obj.create(cr, uid, invoice, {})
if inv.payment_term.id:
data = inv_obj.onchange_payment_term_date_invoice(cr, uid, [inv_id], inv.payment_term.id, date)
if 'value' in data and data['value']:
inv_obj.write(cr, uid, [inv_id], data['value'])
created_inv.append(inv_id)
if inv.type in ('out_invoice', 'out_refund'):
xml_id = 'action_invoice_tree3'
else:
xml_id = 'action_invoice_tree4'
result = mod_obj._get_id(cr, uid, 'account', xml_id)
id = mod_obj.read(cr, uid, result, ['res_id'], context=context)['res_id']
result = act_obj.read(cr, uid, id, context=context)
result['res_id'] = created_inv
invoice_domain = eval(result['domain'])
invoice_domain.append(('id', 'in', created_inv))
result['domain'] = invoice_domain
return result
def invoice_refund(self, cr, uid, ids, context=None):
data_refund = self.read(cr, uid, ids, [],context=context)[0]['filter_refund']
return self.compute_refund(cr, uid, ids, data_refund, context=context)
account_invoice_refund()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -19,6 +19,8 @@
#
##############################################################################
from lxml import etree
from osv import osv
from tools.translate import _
import tools
@ -103,8 +105,11 @@ class account_move_journal(osv.osv_memory):
</group>
</form>""" % (tools.ustr(journal), tools.ustr(period))
view = etree.fromstring(view.encode('utf8'))
xarch, xfields = self._view_look_dom_arch(cr, uid, view, view_id, context=context)
view = xarch
res.update({
'arch':view
'arch': view
})
return res

View File

@ -19,8 +19,7 @@
#
##############################################################################
from osv import fields, osv
from tools.translate import _
from osv import osv
class account_move_line_select(osv.osv_memory):
"""

View File

@ -20,8 +20,6 @@
##############################################################################
from osv import fields, osv
from tools.translate import _
import tools
class account_move_line_unreconcile_select(osv.osv_memory):
_name = "account.move.line.unreconcile.select"

View File

@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
from osv import osv
import netsvc
from tools.translate import _

View File

@ -19,7 +19,7 @@
#
##############################################################################
from osv import fields, osv
from osv import osv
class account_unreconcile(osv.osv_memory):
_name = "account.unreconcile"

View File

@ -19,7 +19,6 @@
#
##############################################################################
import time
import datetime
from osv import fields, osv
from tools.translate import _

View File

@ -25,8 +25,8 @@ class validate_account_move(osv.osv_memory):
_name = "validate.account.move"
_description = "Validate Account Move"
_columns = {
'journal_id': fields.many2one('account.journal', 'Journal', required=True),
'period_id': fields.many2one('account.period', 'Period', required=True, domain=[('state','<>','done')]),
'journal_id': fields.many2one('account.journal', 'Journal', required=True),
'period_id': fields.many2one('account.period', 'Period', required=True, domain=[('state','<>','done')]),
}
def validate_move(self, cr, uid, ids, context=None):

View File

@ -24,41 +24,36 @@ from osv import osv, fields
class account_vat_declaration(osv.osv_memory):
_name = 'account.vat.declaration'
_description = 'Account Vat Declaration'
_inherit = "account.common.account.report"
_inherit = "account.common.report"
_columns = {
'based_on': fields.selection([('invoices','Invoices'),
('payments','Payments'),],
'based_on': fields.selection([('invoices', 'Invoices'),
('payments', 'Payments'),],
'Based On', required=True),
'company_id': fields.many2one('res.company', 'Company', required=True),
'periods': fields.many2many('account.period', 'vat_period_rel', 'vat_id', 'period_id', 'Periods', help="All periods if empty"),
'fiscalyear': fields.many2many('account.fiscalyear','vat_fiscal_rel','fiscal_id','Fiscal Year',required=True),
}
'chart_tax_id': fields.many2one('account.tax.code', 'Chart of Tax', help='Select Charts of Taxes', required=True, domain = [('parent_id','=', False)]),
}
def _get_company(self, cr, uid, context={}):
user_obj = self.pool.get('res.users')
company_obj = self.pool.get('res.company')
user = user_obj.browse(cr, uid, uid, context=context)
if user.company_id:
return user.company_id.id
else:
return company_obj.search(cr, uid, [('parent_id', '=', False)])[0]
def _get_tax(self, cr, uid, context=None):
taxes = self.pool.get('account.tax.code').search(cr, uid, [('parent_id', '=', False)], limit=1)
return taxes and taxes[0] or False
_defaults = {
'based_on': 'invoices',
'company_id': _get_company
}
'chart_tax_id': _get_tax
}
def create_vat(self, cr, uid, ids, context={}):
def create_vat(self, cr, uid, ids, context=None):
if context is None:
context = {}
datas = {'ids': context.get('active_ids', [])}
datas['model'] = 'account.tax.code'
datas['form'] = self.read(cr, uid, ids)[0]
datas['form']['company_id'] = self.pool.get('account.tax.code').browse(cr, uid, [datas['form']['chart_tax_id']], context=context)[0].company_id.id
return {
'type': 'ir.actions.report.xml',
'report_name': 'account.vat.declaration',
'datas': datas,
}
account_vat_declaration()
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -7,15 +7,13 @@
<field name="model">account.vat.declaration</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select Period">
<field name="company_id" groups="base.group_multi_company" widget='selection'/>
<newline/>
<form string="Taxes Report">
<field name="chart_tax_id" widget='selection'/>
<field name="fiscalyear_id"/>
<field name="based_on"/>
<newline/>
<separator string="Select Period(s)" colspan="4"/>
<field name="periods" nolabel="1" colspan="4"/>
<separator string="Select FiscalYear(s)" colspan="4"/>
<field name="fiscalyear" nolabel="1" colspan="4"/>
<separator string="Periods" colspan="4"/>
<field name="period_from" domain="[('fiscalyear_id', '=', fiscalyear_id)]" attrs="{'readonly':[('filter','!=','filter_period')], 'required':[('filter', '=', 'filter_period')]}" />
<field name="period_to" domain="[('fiscalyear_id', '=', fiscalyear_id)]" attrs="{'readonly':[('filter','!=','filter_period')], 'required':[('filter', '=', 'filter_period')]}" />
<group col="2" colspan="4">
<button icon='gtk-cancel' special="cancel" string="Cancel" />
<button name="create_vat" string="Print Tax Statement" colspan="1" type="object" icon="gtk-ok"/>
@ -42,4 +40,4 @@
icon="STOCK_PRINT"/>
</data>
</openerp>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 21:58+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:12+0000\n"
"Last-Translator: Carlos-smile <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_analysis

View File

@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-14 07:30+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 17:55+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-15 04:42+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_analysis
@ -26,14 +26,16 @@ msgstr ""
"Broj sati koji mogu biti fakturirani zajedno s onima koji su već fakturisana."
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_user
msgid "Hours summary by user"
msgstr "Sati sumarno od strane korisnika"
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Ime objekta mora da počne sa x_ i ne sme da sadrži specijalne karaktere !"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_invoice_date:0
msgid "Last Invoice Date"
msgstr "Zadnji Datum fakture"
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_ca:0
@ -46,25 +48,10 @@ msgid "Computed using the formula: Maximum Quantity - Hours Tot."
msgstr "Izračunato pomoću formule: Najveća količina - Ukupno vrijeme"
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all
msgid "All Analytic Accounts"
msgstr "Svi analitički računi"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_open
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_to_valid_open
msgid "My Current Accounts"
msgstr "Moji tekući računi"
#. module: account_analytic_analysis
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Nevažeći XML za pregled arhitekture"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
msgid "Date of the last invoice created for this analytic account."
msgstr "Datum zadnje fakture kreirana za ovaj analitički račun."
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:0
#, python-format
msgid "AccessError"
msgstr "Greška u pristupu"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_theorical:0
@ -72,28 +59,25 @@ msgid "Theorical Revenue"
msgstr "Prihodi teoretski"
#. module: account_analytic_analysis
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#: field:account.analytic.account,last_invoice_date:0
msgid "Last Invoice Date"
msgstr "Zadnji Datum fakture"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
msgid "Date of the last invoice created for this analytic account."
msgstr "Datum zadnje fakture kreirana za ovaj analitički račun."
#. module: account_analytic_analysis
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Greska! Ne mozete kreirati rekursivni meni."
#. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0
msgid "Computed using the formula: Theorial Revenue - Total Costs"
msgstr "Izračunato pomoću formule: Prihodi Teorijski - Ukupni troškovi"
#. module: account_analytic_analysis
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Ime objekta mora da počne sa x_ i ne sme da sadrži specijalne karaktere !"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_new
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_new
msgid "New Analytic Account"
msgstr "Novi analitički račun"
#. module: account_analytic_analysis
#: field:account.analytic.account,theorical_margin:0
msgid "Theorical Margin"
@ -104,17 +88,6 @@ msgstr "Teoretska margina"
msgid "Real Margin Rate (%)"
msgstr "Realna Stopa Margine (%)"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all_open
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all_open
msgid "Current Analytic Accounts"
msgstr "Tekući analitički računi"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_date:0
msgid "Date of the latest work done on this account."
msgstr "Datum najnovijeg rada obavljenog na ovom računu."
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_invoiced_date:0
msgid ""
@ -126,8 +99,8 @@ msgstr ""
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.menu_invoicing
msgid "Invoicing"
msgstr "Fakturiranje"
msgid "Billing"
msgstr "Obracunavanje"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_date:0
@ -171,85 +144,56 @@ msgid "User"
msgstr "Korisnik"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_pending
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_to_valid_pending
msgid "My Pending Accounts"
msgstr "Moji računi na čekanju"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_my
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_my
msgid "My Uninvoiced Entries"
msgstr "Moji nefakturirani Ulazi"
#: field:account.analytic.account,ca_to_invoice:0
msgid "Uninvoiced Amount"
msgstr "Nefakturirani iznos"
#. module: account_analytic_analysis
#: help:account.analytic.account,real_margin:0
msgid "Computed using the formula: Invoiced Amount - Total Costs."
msgstr "Izračunato korištenjem formule: Fakturirani iznos - Ukupni troškovi."
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_managed
msgid "My Accounts"
msgstr "Moji računi"
#. module: account_analytic_analysis
#: model:ir.module.module,description:account_analytic_analysis.module_meta_information
msgid ""
"Modify account analytic view to show\n"
"important data for project manager of services companies.\n"
"Add menu to show relevant information for each manager."
msgstr ""
"Promeni prozor analitičkog prikaza računa da bi video\n"
"važne podatke za projekt menadžer od usluznih kompanija.\n"
"Dodaj meni da prikaze relevantne informacije za svakog menadžera."
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_non_invoiced:0
msgid "Uninvoiced Hours"
msgstr "Nefakturirani sati"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
msgid "Hours Tot"
msgstr "Ukupno sati"
#: help:account.analytic.account,last_worked_date:0
msgid "Date of the latest work done on this account."
msgstr "Datum najnovijeg rada obavljenog na ovom računu."
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.menu_account
msgid "Analytic Accounts"
msgstr "Analitička konta"
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Nevažeći XML za pregled arhitekture"
#. module: account_analytic_analysis
#: model:ir.module.module,shortdesc:account_analytic_analysis.module_meta_information
msgid "report_account_analytic"
msgstr "izvestaj_analitickog_konta"
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_user
msgid "Hours Summary by User"
msgstr "Ukupno sati po Korisniku"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_invoiced:0
msgid "Invoiced Amount"
msgstr "Fakturirani iznos"
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.next_id_71
msgid "Financial Project Management"
msgstr "Finansijski Projekt Menadzment"
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:0
#, python-format
msgid "You try to bypass an access rule (Document type: %s)."
msgstr "Pokušavate da zaobiđete pravilo za pristup (Dokument tipa: %s)."
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_invoiced_date:0
msgid "Date of Last Invoiced Cost"
msgstr "Datum zadnje fakturiranog troška"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_to_invoice:0
msgid "Uninvoiced Amount"
msgstr "Nefakturirani iznos"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all_pending
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all_pending
msgid "Pending Analytic Accounts"
msgstr "Analitički računi na čekanju"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_invoiced:0
msgid "Invoiced Hours"
@ -258,7 +202,7 @@ msgstr "Fakturirani sati"
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin:0
msgid "Real Margin"
msgstr "Realna margina"
msgstr "Realna marza"
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_invoiced:0
@ -312,37 +256,43 @@ msgstr "Izračunato korištenjem formule: Fakturirani iznos / Ukupno sati"
#. module: account_analytic_analysis
#: field:account.analytic.account,revenue_per_hour:0
msgid "Revenue per Hours (real)"
msgstr ""
msgstr "Prihod po satiima ( stvarni)"
#. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,unit_amount:0
#: field:account_analytic_analysis.summary.user,unit_amount:0
msgid "Total Time"
msgstr ""
msgstr "Ukupno Vreme"
#. module: account_analytic_analysis
#: field:account.analytic.account,month_ids:0
#: field:account_analytic_analysis.summary.month,month:0
msgid "Month"
msgstr ""
msgstr "Mesec"
#. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,account_id:0
#: field:account_analytic_analysis.summary.user,account_id:0
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
msgstr "Analitički konto"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_overpassed
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_managed_overpassed
msgid "Overpassed Accounts"
msgstr ""
msgstr "Prekoračeni računi"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
msgid "All Uninvoiced Entries"
msgstr ""
msgstr "Sve nefakturirane stavke"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
msgid "Hours Tot"
msgstr "Ukupno sati"
#. module: account_analytic_analysis
#: help:account.analytic.account,total_cost:0
@ -350,3 +300,50 @@ msgid ""
"Total of costs for this account. It includes real costs (from invoices) and "
"indirect costs, like time spent on timesheets."
msgstr ""
"Ukupno troškova za ovaj račun. Uključuje stvarne troškove (iz faktura) i "
"indirektne troškove, kao, npr,vrijeme potrošeno na timesheetovima."
#~ msgid "My Current Accounts"
#~ msgstr "Moji tekući računi"
#~ msgid "Hours summary by user"
#~ msgstr "Sati sumarno od strane korisnika"
#~ msgid "All Analytic Accounts"
#~ msgstr "Svi analitički računi"
#~ msgid "New Analytic Account"
#~ msgstr "Novi analitički račun"
#~ msgid "Current Analytic Accounts"
#~ msgstr "Tekući analitički računi"
#~ msgid "Invoicing"
#~ msgstr "Fakturiranje"
#~ msgid "My Pending Accounts"
#~ msgstr "Moji računi na čekanju"
#~ msgid "My Uninvoiced Entries"
#~ msgstr "Moji nefakturirani Ulazi"
#~ msgid "My Accounts"
#~ msgstr "Moji računi"
#~ msgid ""
#~ "Modify account analytic view to show\n"
#~ "important data for project manager of services companies.\n"
#~ "Add menu to show relevant information for each manager."
#~ msgstr ""
#~ "Promeni prozor analitičkog prikaza računa da bi video\n"
#~ "važne podatke za projekt menadžer od usluznih kompanija.\n"
#~ "Dodaj meni da prikaze relevantne informacije za svakog menadžera."
#~ msgid "Financial Project Management"
#~ msgstr "Finansijski Projekt Menadzment"
#~ msgid "Pending Analytic Accounts"
#~ msgstr "Analitički računi na čekanju"
#~ msgid "Analytic Accounts"
#~ msgstr "Analitička konta"

View File

@ -7,33 +7,21 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-14 07:31+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 20:26+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-15 04:42+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_form
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_defaul_form
msgid "Analytic Defaults"
msgstr "Uobičajene postavke analitike"
#. module: account_analytic_default
#: model:ir.module.module,shortdesc:account_analytic_default.module_meta_information
msgid "Account Analytic Default"
msgstr "Uobičajene postavke analize računa"
#. module: account_analytic_default
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Nevažeći XML za pregled arhitekture"
#. module: account_analytic_default
#: constraint:ir.model:0
msgid ""
@ -42,69 +30,21 @@ msgstr ""
"Ime objekta mora da počne sa x_ i ne sme da sadrži specijalne karaktere !"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Seq"
msgstr "Red"
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Greska! Ne mozete kreirati rekursivni meni."
#. module: account_analytic_default
#: field:account.analytic.default,date_stop:0
msgid "End Date"
msgstr "Završni Datum"
#. module: account_analytic_default
#: field:account.analytic.default,company_id:0
msgid "Company"
msgstr "Preduzeće"
#. module: account_analytic_default
#: field:account.analytic.default,sequence:0
msgid "Sequence"
msgstr "Sekvenca"
#. module: account_analytic_default
#: field:account.analytic.default,product_id:0
msgid "Product"
msgstr "Proizvod"
#. module: account_analytic_default
#: field:account.analytic.default,analytic_id:0
msgid "Analytic Account"
msgstr "Analitički nalog"
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_account_analytic_default
msgid "Analytic Distributions"
msgstr "Distribucije analitike"
#. module: account_analytic_default
#: field:account.analytic.default,user_id:0
msgid "User"
msgstr "Korisnik"
#. module: account_analytic_default
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
msgid "Entries"
msgstr "Stavke"
#. module: account_analytic_default
#: field:account.analytic.default,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: account_analytic_default
#: field:account.analytic.default,date_start:0
msgid "Start Date"
msgstr "Početni datum"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Conditions"
msgstr "Uslovi"
#: help:account.analytic.default,partner_id:0
msgid ""
"select a partner which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"partner, it will automatically take this as an analytical account)"
msgstr ""
"Selektuj partnera koji ce koristiti analiticki konto specificiran kao "
"analiticki podrazumevani konto ( npr, kreiras novu fakturu, ili nabavnu "
"fakturu, i ako sad selektujemo partnera, on ce automatski ova podesavanja "
"kao svoj analiticki konto)"
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
@ -112,3 +52,165 @@ msgstr "Uslovi"
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
msgid "Analytic Rules"
msgstr "Pravila analitike"
#. module: account_analytic_default
#: help:account.analytic.default,analytic_id:0
msgid "Analytical Account"
msgstr "Analiticka Konta"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Current"
msgstr "Trenutni"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Group By..."
msgstr "Grupirano po"
#. module: account_analytic_default
#: help:account.analytic.default,date_stop:0
msgid "Default end date for this Analytical Account"
msgstr "podrzaumevani Krajnji datum za ovaj Analiticki Konto"
#. module: account_analytic_default
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_stock_picking
msgid "Picking List"
msgstr "Izborna Lista"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Conditions"
msgstr "Uslovi"
#. module: account_analytic_default
#: help:account.analytic.default,company_id:0
msgid ""
"select a company which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"company, it will automatically take this as an analytical account)"
msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_sale_order_line
msgid "Sale Order Line"
msgstr "Stavke naloga za prodaju"
#. module: account_analytic_default
#: help:account.analytic.default,date_start:0
msgid "Default start date for this Analytical Account"
msgstr "Podrazumevani Pocetni datum za ovaj Analiticki konto"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,product_id:0
msgid "Product"
msgstr "Proizvod"
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_account_analytic_default
msgid "Analytic Distribution"
msgstr "Analitička Distribucija"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,company_id:0
msgid "Company"
msgstr "Preduzeće"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,user_id:0
msgid "User"
msgstr "Korisnik"
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
msgid "Entries"
msgstr "Stavke"
#. module: account_analytic_default
#: field:account.analytic.default,date_stop:0
msgid "End Date"
msgstr "Datum završetka"
#. module: account_analytic_default
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Nevažeći XML za pregled arhitekture"
#. module: account_analytic_default
#: help:account.analytic.default,user_id:0
msgid ""
"select a user which will use analytical account specified in analytic default"
msgstr ""
"Izaberi korisnika koji ce koristiti onaj analiticki konto koji je "
"specificiran kao podrazumevani."
#. module: account_analytic_default
#: view:account.analytic.default:0
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_list
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_default_list
msgid "Analytic Defaults"
msgstr "Uobičajene postavke analitike"
#. module: account_analytic_default
#: help:account.analytic.default,product_id:0
msgid ""
"select a product which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"product, it will automatically take this as an analytical account)"
msgstr ""
"Izaberi proizvod koji ce koristiti Analiticki konto koji je specificiran kao "
"podrazumevani ( npr, kada kreiras racun, ili narudzbenicu, i ako selektujes "
"ovaj proizvod, on ce automatski preuzeti ovaj kao svoj Analiticki konto)"
#. module: account_analytic_default
#: field:account.analytic.default,sequence:0
msgid "Sequence"
msgstr "Sekvenca"
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_account_invoice_line
msgid "Invoice Line"
msgstr "Faktura"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,analytic_id:0
msgid "Analytic Account"
msgstr "Analitički konto"
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Accounts"
msgstr "Nalozi"
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: account_analytic_default
#: field:account.analytic.default,date_start:0
msgid "Start Date"
msgstr "Datum početka"
#. module: account_analytic_default
#: help:account.analytic.default,sequence:0
msgid ""
"Gives the sequence order when displaying a list of analytic distribution"
msgstr ""
"Daje redosled sekvence pri prikazivanju liste analiticke distribucije"
#~ msgid "Seq"
#~ msgstr "Red"
#~ msgid "Analytic Distributions"
#~ msgstr "Distribucije analitike"

View File

@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-14 07:31+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 21:37+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-15 04:42+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_plans
@ -22,6 +22,11 @@ msgstr ""
msgid "Account4 Id"
msgstr "Šifra računa4"
#. module: account_analytic_plans
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Greska! Ne mozete kreirati rekursivni meni."
#. module: account_analytic_plans
#: constraint:ir.model:0
msgid ""
@ -30,8 +35,10 @@ msgstr ""
"Ime objekta mora da počne sa x_ i ne sme da sadrži specijalne karaktere !"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
#: view:account.crossovered.analytic:0
#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
#: model:ir.actions.report.xml,name:account_analytic_plans.account_analytic_account_crossovered_analytic
#: model:ir.actions.wizard,name:account_analytic_plans.account_analytic_account_inverted_balance_report
msgid "Crossovered Analytic"
msgstr "Unakrsna analitika"
@ -41,10 +48,15 @@ msgid "Account5 Id"
msgstr "Šifra računa5"
#. module: account_analytic_plans
#: wizard_field:wizard.crossovered.analytic,init,date2:0
#: field:account.crossovered.analytic,date2:0
msgid "End Date"
msgstr "Završni Datum"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account3_ids:0
msgid "Account3 Id"
msgstr "Šifra računa3"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,rate:0
msgid "Rate (%)"
@ -55,27 +67,41 @@ msgstr "Stopa (%)"
#: field:account.analytic.plan,name:0
#: field:account.analytic.plan.line,plan_id:0
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_action
msgid "Analytic Plan"
msgstr "Analiticki Plan"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid ""
"This distribution model has been saved.You will be able to reuse it later."
msgstr ""
"Distribucioni model je sacuvan. Bicete u mogucnosti da ga kasnije koristite."
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:0
#, python-format
msgid "Please put a name and a code before saving the model !"
msgstr "Molim postavite Ime i sadrzaj pre nego sacuvate model !"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
msgid "Analytic Instance Line"
msgstr ""
msgstr "Red Analiticke Instance"
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Lines"
msgstr "Red analitičke instance"
msgstr "Red Analiticke Distribucije"
#. module: account_analytic_plans
#: wizard_button:wizard.crossovered.analytic,init,print:0
#: view:account.crossovered.analytic:0
msgid "Print"
msgstr "Štampaj"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "To Date"
msgstr "Do datuma"
@ -90,9 +116,9 @@ msgid "Analytic Distribution's Models"
msgstr "Modeli analitičke distribucije"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Account Name"
msgstr "Naziv računa"
msgstr "Naziv Naloga"
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
@ -110,88 +136,114 @@ msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: account_analytic_plans
#: field:account.analytic.plan.line,name:0
msgid "Plan Name"
msgstr "Ime Plana"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Printing date"
msgstr "Datum stampe"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Percentage"
msgstr "Procenat"
#. module: account_analytic_plans
#: wizard_field:wizard.crossovered.analytic,init,empty_line:0
#: model:ir.model,name:account_analytic_plans.model_sale_order_line
msgid "Sale Order Line"
msgstr "Stavke naloga za prodaju"
#. module: account_analytic_plans
#: field:account.crossovered.analytic,empty_line:0
msgid "Dont show empty lines"
msgstr "Ne prikazuj prazme redove"
msgstr "Ne prikazuj prazne redove"
#. module: account_analytic_plans
#: wizard_view:wizard.crossovered.analytic,init:0
msgid "Select Information"
msgstr "Selektuj informaciju"
#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
msgid "analytic.plan.create.model.action"
msgstr "analytic.plan.create.model.action"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account3_ids:0
msgid "Account3 Id"
msgstr "Šifra računa3"
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#, python-format
msgid "A model having this name and code already exists !"
msgstr "Model sa ovim imenom i sadrzajem vec postoji !"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,journal_id:0
#: wizard_field:wizard.crossovered.analytic,init,journal_ids:0
#: view:account.crossovered.analytic:0
#: field:account.crossovered.analytic,journal_ids:0
msgid "Analytic Journal"
msgstr "Analiticki Dnevnik"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "100.00%"
msgstr "100.00%"
#. module: account_analytic_plans
#: wizard_field:wizard.crossovered.analytic,init,ref:0
msgid "Analytic Account Ref."
msgstr "Veza analitičkog konta"
#: report:account.analytic.account.crossovered.analytic:0
msgid "Currency"
msgstr "Valuta"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account :"
msgstr "Analiticki konto :"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
msgid "Analytic Plan Line"
msgstr "Red Analitickog Plana"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:0
#, python-format
msgid "No analytic plan defined !"
msgstr "Analiticki plan nije definisan !"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account Reference:"
msgstr "Veza analitičkog konta:"
#. module: account_analytic_plans
#: model:ir.actions.wizard,name:account_analytic_plans.create_model
msgid "Create Model"
msgstr "Kreiraj Model"
#: field:account.analytic.plan.line,name:0
msgid "Plan Name"
msgstr "Ime Plana"
#. module: account_analytic_plans
#: field:account.analytic.plan,default_instance_id:0
msgid "Default Entries"
msgstr "Uobičajene stavke"
msgstr "Podrazumevane Stavke"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:0
#, python-format
msgid "Error"
msgstr "Greška"
#. module: account_analytic_plans
#: view:account.analytic.plan:0
#: field:account.analytic.plan,plan_ids:0
#: field:account.journal,plan_id:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
msgid "Analytic Plans"
msgstr "Analitički planovi"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,min_required:0
msgid "Minimum Allowed (%)"
msgstr "Minimalno dozvoljeno (%)"
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:0
#, python-format
msgid "User Error"
msgstr "Korisnicka Greska"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_move_line
msgid "Journal Items"
msgstr "Sadrzaj Dnevnika"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_analytic_plan_create_model
msgid "analytic.plan.create.model"
msgstr "analytic.plan.create.model"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account1_ids:0
@ -204,9 +256,16 @@ msgid "Maximum Allowed (%)"
msgstr "Maksimalno dozvoljeno (%)"
#. module: account_analytic_plans
#: wizard_view:create.model,info:0
#: field:account.analytic.plan.line,root_analytic_id:0
msgid "Root Account"
msgstr "Osnovni nalog (root)"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:0
#: view:analytic.plan.create.model:0
#, python-format
msgid "Distribution Model Saved"
msgstr "Model distribucije je sacuvan"
msgstr "Distribucioni model je sacuvan"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
@ -223,6 +282,62 @@ msgstr "Nevažeći XML za pregled arhitekture"
msgid "Distribution Models"
msgstr "Dsitribucioni Modeli"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid "Ok"
msgstr "U redu"
#. module: account_analytic_plans
#: model:ir.module.module,shortdesc:account_analytic_plans.module_meta_information
msgid "Multiple-plans management in Analytic Accounting"
msgstr "Visestruki-planovi menadzmenta u Analitickom racunovodstvu"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
msgid "Analytic Plan Lines"
msgstr "Redovi analitičkog plana"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,min_required:0
msgid "Minimum Allowed (%)"
msgstr "Minimalno dozvoljeno (%)"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,plan_id:0
msgid "Model's Plan"
msgstr "Plan modela"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account2_ids:0
msgid "Account2 Id"
msgstr "Šifra računa2"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#, python-format
msgid "The Total Should be Between %s and %s"
msgstr "Ukupni iznos bi trebalo da se nalazi izmedju %s i %s"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Red bankovnog izvoda"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Amount"
msgstr "Iznos"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
msgid "Print Crossovered Analytic"
msgstr "Stampa Unakrsne Analitike"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account6_ids:0
msgid "Account6 Id"
msgstr "Šifra računa6"
#. module: account_analytic_plans
#: model:ir.module.module,description:account_analytic_plans.module_meta_information
msgid ""
@ -255,115 +370,69 @@ msgid ""
"So when this line of invoice will be confirmed, it will generate 3 analytic "
"lines,\n"
"for one account entry.\n"
"The analytic plan validates the minimum and maximum percentage at the time "
"of creation\n"
"of distribution models.\n"
" "
msgstr ""
"Ovaj modul vam omogucava da koristite nekoliko analiticka plana, koji "
"odgovaraju osnovnom dnevniku,\n"
"i tako visestruko analizirate stavke kreirane kada je racun ili stavka\n"
"potvrdjena\n"
"\n"
"Na primer, mozete definisati sledecu analiticku strukturu:\n"
" Projekat\n"
" Projekat 1\n"
" SubProj 1.1\n"
" SubProj 1.2\n"
" Projekat 2\n"
" Prodavac\n"
" Janko\n"
" Marko\n"
"\n"
"Ovde imamo dva plana. Projekat i Prodavac. Red racuna mora da\n"
"moze da napise analiticke stavke u 2 plana: SubProj 1.1 i\n"
"Marko. Iznos se takodje deli. Sledeci primer je za racune koji \n"
"su zajednicko sa dva subprojekta i dodati su jednom prodavcu:\n"
"\n"
"Plan1:\n"
" SubProj 1.1 : 50%\n"
" SubProj 1.2 : 50%\n"
"PLan2:\n"
" Janko: 100%\n"
"\n"
"Tako da kad se ova linija racuna potvrdi, ona ce generisati 3 \n"
"analiticke linije za jednu stavku racuna.\n"
" "
#. module: account_analytic_plans
#: model:ir.module.module,shortdesc:account_analytic_plans.module_meta_information
msgid "Multiple-plans management in Analytic Accounting"
msgstr "Visestruki-planovi menadzmenta u Analitickom racunovodstvu"
#: view:analytic.plan.create.model:0
msgid "Save This Distribution as a Model"
msgstr "Sacuvaj Ovu Distribuciju kao Model"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
msgid "Analytic Plan Lines"
msgstr "Redovi analitičkog plana"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
msgid "Crossovered Analytic -"
msgstr "Unakrsna Analitika-"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,plan_id:0
msgid "Model's Plan"
msgstr "Plan modela"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account2_ids:0
msgid "Account2 Id"
msgstr "Šifra računa2"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
msgid "Amount"
msgstr "Iznos"
#. module: account_analytic_plans
#: help:account.analytic.plan.line,root_analytic_id:0
msgid "Root account of this plan."
msgstr "Osnovni konto ovog plana."
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account6_ids:0
msgid "Account6 Id"
msgstr "Šifra računa6"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Quantity"
msgstr "Količina"
#. module: account_analytic_plans
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_multi_plan_action
msgid "Multi Plans"
msgstr "Multi-Planovi"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account_ids:0
msgid "Account Id"
msgstr "Šifra konta"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Code"
msgstr "Kod"
#. module: account_analytic_plans
#: wizard_button:create.model,info,end:0
msgid "OK"
msgstr "U redu"
#: model:ir.model,name:account_analytic_plans.model_account_journal
msgid "Journal"
msgstr "Dnevnik"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,root_analytic_id:0
msgid "Root Account"
msgstr "Osnovni nalog (root)"
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
msgstr "TReba da definises analiticki dnevnik u '%s' dnevnika!"
#. module: account_analytic_plans
#: wizard_view:create.model,info:0
msgid ""
"This distribution model has been saved. You will be able to reuse it later."
msgstr "Distribucijski Model je sacuvan. Možete ga koristiti kasnije."
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#, python-format
msgid "No Analytic Journal !"
msgstr "Nema Analitickog Dnevnika"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,sequence:0
msgid "Sequence"
msgstr "Sekvenca"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
msgid "Invoice Line"
msgstr "Faktura"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
msgid "Bank Statement"
msgstr "Izvod banke"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,analytic_account_id:0
msgid "Analytic Account"
@ -373,32 +442,140 @@ msgstr "Analitički nalog"
#: field:account.analytic.default,analytics_id:0
#: view:account.analytic.plan.instance:0
#: field:account.analytic.plan.instance,name:0
#: field:account.bank.statement.line,analytics_id:0
#: field:account.invoice.line,analytics_id:0
#: field:account.move.line,analytics_id:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
msgid "Analytic Distribution"
msgstr "Analitička Distribucija"
#. module: account_analytic_plans
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_instance_action
msgid "Analytic Distribution's models"
msgstr "Modeli Analitičkih Distribucija"
#: code:addons/account_analytic_plans/account_analytic_plans.py:0
#, python-format
msgid "Value Error"
msgstr "Pogresna Vrednost"
#. module: account_analytic_plans
#: wizard_button:wizard.crossovered.analytic,init,end:0
#: help:account.analytic.plan.line,root_analytic_id:0
msgid "Root account of this plan."
msgstr "Osnovni konto ovog plana."
#. module: account_analytic_plans
#: field:account.crossovered.analytic,ref:0
msgid "Analytic Account Reference"
msgstr "referenca Analitickjog naloga"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice
msgid "Invoice"
msgstr "Račun"
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
#: view:analytic.plan.create.model:0
msgid "Cancel"
msgstr "Otkaži"
#. module: account_analytic_plans
#: wizard_field:wizard.crossovered.analytic,init,date1:0
#: field:account.crossovered.analytic,date1:0
msgid "Start Date"
msgstr "Početni datum"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "at"
msgstr "u"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
#: report:account.analytic.account.crossovered.analytic:0
msgid "Company"
msgstr "Preduzeće"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "From Date"
msgstr "Od datuma"
#~ msgid "Analytic Account Ref."
#~ msgstr "Veza analitičkog konta"
#~ msgid "Select Information"
#~ msgstr "Selektuj informaciju"
#~ msgid "Create Model"
#~ msgstr "Kreiraj Model"
#~ msgid ""
#~ "This module allows to use several analytic plans, according to the general "
#~ "journal,\n"
#~ "so that multiple analytic lines are created when the invoice or the entries\n"
#~ "are confirmed.\n"
#~ "\n"
#~ "For example, you can define the following analytic structure:\n"
#~ " Projects\n"
#~ " Project 1\n"
#~ " SubProj 1.1\n"
#~ " SubProj 1.2\n"
#~ " Project 2\n"
#~ " Salesman\n"
#~ " Eric\n"
#~ " Fabien\n"
#~ "\n"
#~ "Here, we have two plans: Projects and Salesman. An invoice line must\n"
#~ "be able to write analytic entries in the 2 plans: SubProj 1.1 and\n"
#~ "Fabien. The amount can also be split. The following example is for\n"
#~ "an invoice that touches the two subproject and assigned to one salesman:\n"
#~ "\n"
#~ "Plan1:\n"
#~ " SubProject 1.1 : 50%\n"
#~ " SubProject 1.2 : 50%\n"
#~ "Plan2:\n"
#~ " Eric: 100%\n"
#~ "\n"
#~ "So when this line of invoice will be confirmed, it will generate 3 analytic "
#~ "lines,\n"
#~ "for one account entry.\n"
#~ " "
#~ msgstr ""
#~ "Ovaj modul vam omogucava da koristite nekoliko analiticka plana, koji "
#~ "odgovaraju osnovnom dnevniku,\n"
#~ "i tako visestruko analizirate stavke kreirane kada je racun ili stavka\n"
#~ "potvrdjena\n"
#~ "\n"
#~ "Na primer, mozete definisati sledecu analiticku strukturu:\n"
#~ " Projekat\n"
#~ " Projekat 1\n"
#~ " SubProj 1.1\n"
#~ " SubProj 1.2\n"
#~ " Projekat 2\n"
#~ " Prodavac\n"
#~ " Janko\n"
#~ " Marko\n"
#~ "\n"
#~ "Ovde imamo dva plana. Projekat i Prodavac. Red racuna mora da\n"
#~ "moze da napise analiticke stavke u 2 plana: SubProj 1.1 i\n"
#~ "Marko. Iznos se takodje deli. Sledeci primer je za racune koji \n"
#~ "su zajednicko sa dva subprojekta i dodati su jednom prodavcu:\n"
#~ "\n"
#~ "Plan1:\n"
#~ " SubProj 1.1 : 50%\n"
#~ " SubProj 1.2 : 50%\n"
#~ "PLan2:\n"
#~ " Janko: 100%\n"
#~ "\n"
#~ "Tako da kad se ova linija racuna potvrdi, ona ce generisati 3 \n"
#~ "analiticke linije za jednu stavku racuna.\n"
#~ " "
#~ msgid "Crossovered Analytic -"
#~ msgstr "Unakrsna Analitika-"
#~ msgid "Analytic Distribution's models"
#~ msgstr "Modeli Analitičkih Distribucija"
#~ msgid ""
#~ "This distribution model has been saved. You will be able to reuse it later."
#~ msgstr "Distribucijski Model je sacuvan. Možete ga koristiti kasnije."
#~ msgid "OK"
#~ msgstr "U redu"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 22:06+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:16+0000\n"
"Last-Translator: Carlos-smile <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_budget

View File

@ -22,6 +22,7 @@
import time
from osv import osv,fields
from tools.translate import _
class account_coda(osv.osv):
_name = "account.coda"
@ -41,6 +42,13 @@ class account_coda(osv.osv):
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.coda', context=c),
}
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
res = super(account_coda, self).search(cr, user, args=args, offset=offset, limit=limit, order=order,
context=context, count=count)
if context.get('bank_statement', False) and not res:
raise osv.except_osv('Error', _('Coda file not found for bank statement !!'))
return res
account_coda()
class account_bank_statement(osv.osv):

View File

@ -80,12 +80,13 @@
id="menu_account_coda_import" sequence="20"/>
<act_window name="Coda File"
domain="[('statement_ids', 'in', [active_id])]"
res_model="account.coda"
src_model="account.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_account_payment_account_bank_statement"/>
domain="[('statement_ids', 'in', [active_id])]"
context="{'bank_statement': 1}"
res_model="account.coda"
src_model="account.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_account_payment_account_bank_statement"/>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 22:16+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:09+0000\n"
"Last-Translator: Carlos-smile <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_followup

View File

@ -1,9 +1,22 @@
-
In order to Print the Invoice layout report in Normal Mode, we will create a invoice record
-
!record {model: account.invoice, id: test_invoice_1}:
currency_id: base.EUR
company_id: base.main_company
address_invoice_id: base.res_partner_address_tang
partner_id: base.res_partner_asus
state: draft
type: out_invoice
account_id: account.a_recv
name: Test invoice 1
address_contact_id: base.res_partner_address_tang
-
Print the Invoice layout report in Normal Mode
-
-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.invoice.layout').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
(data, format) = netsvc.LocalService('report.account.invoice.layout').create(cr, uid, [ref('test_invoice_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account_invoice_layout.'+format), 'wb+').write(data)
-
@ -11,7 +24,7 @@
-
!python {model: account.invoice}: |
import netsvc, tools, os, time
data_dict = {'model': 'account.invoice', 'form': {'message':ref('account_invoice_layout.demo_message1'),'id':ref('account.test_invoice_1'),'context':{}}}
(data, format) = netsvc.LocalService('report.notify_account.invoice').create(cr, uid, [ref('account.test_invoice_1')], data_dict, {})
data_dict = {'model': 'account.invoice', 'form': {'message':ref('account_invoice_layout.demo_message1'),'id':ref('test_invoice_1'),'context':{}}}
(data, format) = netsvc.LocalService('report.notify_account.invoice').create(cr, uid, [ref('test_invoice_1')], data_dict, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account_invoice_layout_message_report.'+format), 'wb+').write(data)
file(os.path.join(tools.config['test_report_directory'], 'account_invoice_layout_message_report.'+format), 'wb+').write(data)

View File

@ -19,7 +19,6 @@
#
##############################################################################
{
"name": "Payment Management",
"version": "1.1",
@ -56,4 +55,4 @@ This module provides :
'active': False,
'certificate': '0061703998541',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -20,6 +20,7 @@
##############################################################################
from datetime import datetime
from osv import fields, osv
class Invoice(osv.osv):
@ -49,4 +50,4 @@ class Invoice(osv.osv):
Invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -18,6 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from operator import itemgetter
from osv import fields, osv
from tools.translate import _
@ -40,10 +41,10 @@ class account_move_line(osv.osv):
INNER JOIN payment_order po
ON (pl.order_id = po.id)
WHERE move_line_id = ml.id
AND po.state != 'cancel') as amount
AND po.state != 'cancel') AS amount
FROM account_move_line ml
WHERE id IN %s""", (tuple(ids),))
r=dict(cr.fetchall())
r = dict(cr.fetchall())
return r
def _to_pay_search(self, cr, uid, obj, name, args, context):
@ -74,8 +75,8 @@ class account_move_line(osv.osv):
res = cr.fetchall()
if not res:
return [('id','=','0')]
return [('id','in',map(lambda x:x[0], res))]
return [('id', '=', '0')]
return [('id', 'in', map(lambda x:x[0], res))]
def line2bank(self, cr, uid, ids, payment_type=None, context=None):
"""
@ -116,5 +117,4 @@ class account_move_line(osv.osv):
account_move_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -27,7 +27,7 @@ import netsvc
class payment_mode(osv.osv):
_name= 'payment.mode'
_description= 'Payment Mode'
_columns= {
_columns = {
'name': fields.char('Name', size=64, required=True, help='Mode of Payment'),
'bank_id': fields.many2one('res.partner.bank', "Bank account",
required=True,help='Bank Account for the Payment Mode'),
@ -44,10 +44,10 @@ class payment_mode(osv.osv):
for the given payment type code"""
if not payment_code:
return []
cr.execute(""" select pb.state
from res_partner_bank pb
join payment_mode pm on (pm.bank_id = pb.id)
where pm.id = %s """, [payment_code])
cr.execute(""" SELECT pb.state
FROM res_partner_bank pb
JOIN payment_mode pm ON (pm.bank_id = pb.id)
WHERE pm.id = %s """, [payment_code])
return [x[0] for x in cr.fetchall()]
payment_mode()
@ -75,48 +75,49 @@ class payment_order(osv.osv):
return res
_columns = {
'date_scheduled': fields.date('Scheduled date if fixed', states={'done':[('readonly',True)]}, help='Select a date if you have chosen Preferred Date to be fixed.'),
'reference': fields.char('Reference', size=128, required=1, states={'done':[('readonly',True)]}),
'mode': fields.many2one('payment.mode','Payment mode', select=True, required=1, states={'done':[('readonly',True)]}, help='Select the Payment Mode to be applied.'),
'date_scheduled': fields.date('Scheduled date if fixed', states={'done':[('readonly', True)]}, help='Select a date if you have chosen Preferred Date to be fixed.'),
'reference': fields.char('Reference', size=128, required=1, states={'done': [('readonly', True)]}),
'mode': fields.many2one('payment.mode', 'Payment mode', select=True, required=1, states={'done': [('readonly', True)]}, help='Select the Payment Mode to be applied.'),
'state': fields.selection([
('draft', 'Draft'),
('open','Confirmed'),
('cancel','Cancelled'),
('done','Done')], 'State', select=True,
('open', 'Confirmed'),
('cancel', 'Cancelled'),
('done', 'Done')], 'State', select=True,
help='When an order is placed the state is \'Draft\'.\n Once the bank is confirmed the state is set to \'Confirmed\'.\n Then the order is paid the state is \'Done\'.'),
'line_ids': fields.one2many('payment.line', 'order_id', 'Payment lines', states={'done':[('readonly',True)]}),
'total': fields.function(_total, string="Total", method=True,
type='float'),
'user_id': fields.many2one('res.users', 'User', required=True, states={'done':[('readonly',True)]}),
'line_ids': fields.one2many('payment.line', 'order_id', 'Payment lines', states={'done': [('readonly', True)]}),
'total': fields.function(_total, string="Total", method=True, type='float'),
'user_id': fields.many2one('res.users', 'User', required=True, states={'done': [('readonly', True)]}),
'date_prefered': fields.selection([
('now', 'Directly'),
('due', 'Due date'),
('fixed', 'Fixed date')
], "Preferred date", change_default=True, required=True, states={'done':[('readonly', True)]}, help="Choose an option for the Payment Order:'Fixed' stands for a date specified by you.'Directly' stands for the direct execution.'Due date' stands for the scheduled date of execution."),
], "Preferred date", change_default=True, required=True, states={'done': [('readonly', True)]}, help="Choose an option for the Payment Order:'Fixed' stands for a date specified by you.'Directly' stands for the direct execution.'Due date' stands for the scheduled date of execution."),
'date_created': fields.date('Creation date', readonly=True),
'date_done': fields.date('Execution date', readonly=True),
}
_defaults = {
'user_id': lambda self,cr,uid,context: uid,
'state': lambda *a: 'draft',
'date_prefered': lambda *a: 'due',
'date_created': lambda *a: time.strftime('%Y-%m-%d'),
'state': 'draft',
'date_prefered': 'due',
'date_created': time.strftime('%Y-%m-%d'),
'reference': lambda self,cr,uid,context: self.pool.get('ir.sequence').get(cr, uid, 'payment.order'),
}
def set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
self.write(cr, uid, ids, {'state': 'draft'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_create(uid, 'payment.order', id, cr)
return True
def action_open(self, cr, uid, ids, *args):
ir_seq_obj = self.pool.get('ir.sequence')
for order in self.read(cr, uid, ids, ['reference']):
if not order['reference']:
reference = self.pool.get('ir.sequence').get(cr, uid, 'payment.order')
self.write(cr, uid, order['id'],{'reference':reference})
reference = ir_seq_obj.get(cr, uid, 'payment.order')
self.write(cr, uid, order['id'], {'reference':reference})
return True
def set_done(self, cr, uid, ids, *args):
@ -127,7 +128,7 @@ class payment_order(osv.osv):
def copy(self, cr, uid, id, default={}, context=None):
default.update({
'state':'draft',
'state': 'draft',
'line_ids': [],
'reference': self.pool.get('ir.sequence').get(cr, uid, 'payment.order')
})
@ -138,18 +139,19 @@ class payment_order(osv.osv):
context = {}
payment_line_obj = self.pool.get('payment.line')
payment_line_ids = []
if (vals.get('date_prefered', False) == 'fixed' and not vals.get('date_scheduled', False)) or vals.get('date_scheduled', False):
for order in self.browse(cr, uid, ids, context=context):
for line in order.line_ids:
payment_line_ids.append(line.id)
payment_line_obj.write(cr, uid, payment_line_ids, {'date':vals.get('date_scheduled', False)}, context=context)
payment_line_obj.write(cr, uid, payment_line_ids, {'date': vals.get('date_scheduled', False)}, context=context)
elif vals.get('date_prefered', False) == 'due':
vals.update({'date_scheduled':False})
vals.update({'date_scheduled': False})
for order in self.browse(cr, uid, ids, context=context):
for line in order.line_ids:
payment_line_obj.write(cr, uid, [line.id], {'date':line.ml_maturity_date}, context=context)
payment_line_obj.write(cr, uid, [line.id], {'date': line.ml_maturity_date}, context=context)
elif vals.get('date_prefered', False) == 'now':
vals.update({'date_scheduled':False})
vals.update({'date_scheduled': False})
for order in self.browse(cr, uid, ids, context=context):
for line in order.line_ids:
payment_line_ids.append(line.id)
@ -169,63 +171,67 @@ class payment_line(osv.osv):
def info_owner(self, cr, uid, ids, name=None, args=None, context=None):
if not ids: return {}
partner_zip_obj = self.pool.get('res.partner.zip')
result = {}
info=''
for line in self.browse(cr, uid, ids, context=context):
owner=line.order_id.mode.bank_id.partner_id
result[line.id]=False
owner = line.order_id.mode.bank_id.partner_id
result[line.id] = False
if owner.address:
for ads in owner.address:
if ads.type=='default':
st=ads.street and ads.street or ''
st1=ads.street2 and ads.street2 or ''
if ads.type == 'default':
st = ads.street and ads.street or ''
st1 = ads.street2 and ads.street2 or ''
if 'zip_id' in ads:
zip_city= ads.zip_id and self.pool.get('res.partner.zip').name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
zip_city = ads.zip_id and partner_zip_obj.name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
else:
zip=ads.zip and ads.zip or ''
city= ads.city and ads.city or ''
zip_city= zip + ' ' + city
cntry= ads.country_id and ads.country_id.name or ''
info=owner.name + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id]=info
zip = ads.zip and ads.zip or ''
city = ads.city and ads.city or ''
zip_city = zip + ' ' + city
cntry = ads.country_id and ads.country_id.name or ''
info = owner.name + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id] = info
break
return result
def info_partner(self, cr, uid, ids, name=None, args=None, context=None):
if not ids: return {}
partner_zip_obj = self.pool.get('res.partner.zip')
result = {}
info=''
info = ''
for line in self.browse(cr, uid, ids, context=context):
result[line.id]=False
result[line.id] = False
if not line.partner_id:
break
partner = line.partner_id.name or ''
if line.partner_id.address:
for ads in line.partner_id.address:
if ads.type=='default':
st=ads.street and ads.street or ''
st1=ads.street2 and ads.street2 or ''
if ads.type == 'default':
st = ads.street and ads.street or ''
st1 = ads.street2 and ads.street2 or ''
if 'zip_id' in ads:
zip_city= ads.zip_id and self.pool.get('res.partner.zip').name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
zip_city = ads.zip_id and partner_zip_obj.name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
else:
zip=ads.zip and ads.zip or ''
city= ads.city and ads.city or ''
zip_city= zip + ' ' + city
cntry= ads.country_id and ads.country_id.name or ''
info=partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id]=info
zip = ads.zip and ads.zip or ''
city = ads.city and ads.city or ''
zip_city = zip + ' ' + city
cntry = ads.country_id and ads.country_id.name or ''
info = partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id] = info
break
return result
def select_by_name(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
partner_obj = self.pool.get('res.partner')
cr.execute("""SELECT pl.id, ml.%s
from account_move_line ml
inner join payment_line pl
on (ml.id = pl.move_line_id)
where pl.id IN %%s"""% self.translate(name),
FROM account_move_line ml
INNER JOIN payment_line pl
ON (ml.id = pl.move_line_id)
WHERE pl.id IN %%s"""% self.translate(name),
(tuple(ids),))
res = dict(cr.fetchall())
@ -252,6 +258,7 @@ class payment_line(osv.osv):
if context is None:
context = {}
res = {}
for line in self.browse(cursor, user, ids, context=context):
ctx = context.copy()
ctx['date'] = line.order_id.date_done or time.strftime('%Y-%m-%d')
@ -261,18 +268,23 @@ class payment_line(osv.osv):
return res
def _get_currency(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr, uid, uid)
user_obj = self.pool.get('res.users')
currency_obj = self.pool.get('res.currency')
user = user_obj.browse(cr, uid, uid)
if user.company_id:
return user.company_id.currency_id.id
else:
return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
return currency_obj.search(cr, uid, [('rate', '=', 1.0)])[0]
def _get_date(self, cr, uid, context=None):
if context is None:
context = {}
payment_order_obj = self.pool.get('payment.order')
date = False
if context.get('order_id') and context['order_id']:
order = self.pool.get('payment.order').browse(cr, uid, context['order_id'], context)
order = payment_order_obj.browse(cr, uid, context['order_id'], context)
if order.date_prefered == 'fixed':
date = order.date_scheduled
else:
@ -280,7 +292,7 @@ class payment_line(osv.osv):
return date
def _get_ml_inv_ref(self, cr, uid, ids, *a):
res={}
res = {}
for id in self.browse(cr, uid, ids):
res[id.id] = False
if id.move_line_id:
@ -289,7 +301,7 @@ class payment_line(osv.osv):
return res
def _get_ml_maturity_date(self, cr, uid, ids, *a):
res={}
res = {}
for id in self.browse(cr, uid, ids):
if id.move_line_id:
res[id.id] = id.move_line_id.date_maturity
@ -298,7 +310,7 @@ class payment_line(osv.osv):
return res
def _get_ml_created_date(self, cr, uid, ids, *a):
res={}
res = {}
for id in self.browse(cr, uid, ids):
if id.move_line_id:
res[id.id] = id.move_line_id.date_created
@ -310,8 +322,8 @@ class payment_line(osv.osv):
'name': fields.char('Your Reference', size=64, required=True),
'communication': fields.char('Communication', size=64, required=True, help="Used as the message between ordering customer and current company. Depicts 'What do you want to say to the recipient about this order ?'"),
'communication2': fields.char('Communication 2', size=64, help='The successor message of Communication.'),
'move_line_id': fields.many2one('account.move.line', 'Entry line', domain=[('reconcile_id','=', False), ('account_id.type', '=','payable')], help='This Entry Line will be referred for the information of the ordering customer.'),
'amount_currency': fields.float('Amount in Partner Currency', digits=(16,2),
'move_line_id': fields.many2one('account.move.line', 'Entry line', domain=[('reconcile_id', '=', False), ('account_id.type', '=', 'payable')], help='This Entry Line will be referred for the information of the ordering customer.'),
'amount_currency': fields.float('Amount in Partner Currency', digits=(16, 2),
required=True, help='Payment amount in the partner currency'),
'currency': fields.many2one('res.currency','Partner Currency', required=True),
'company_currency': fields.many2one('res.currency', 'Company Currency', readonly=True),
@ -346,19 +358,20 @@ class payment_line(osv.osv):
]
def onchange_move_line(self, cr, uid, ids, move_line_id, payment_type, date_prefered, date_scheduled, currency=False, company_currency=False, context=None):
data={}
data = {}
move_line_obj = self.pool.get('account.move.line')
data['amount_currency']=data['communication']=data['partner_id']=data['reference']=data['date_created']=data['bank_id']=data['amount']=False
data['amount_currency'] = data['communication'] = data['partner_id'] = data['reference'] = data['date_created'] = data['bank_id'] = data['amount'] = False
if move_line_id:
line = self.pool.get('account.move.line').browse(cr, uid, move_line_id)
data['amount_currency']=line.amount_to_pay
line = move_line_obj.browse(cr, uid, move_line_id)
data['amount_currency'] = line.amount_to_pay
res = self.onchange_amount(cr, uid, ids, data['amount_currency'], currency,
company_currency, context)
if res:
data['amount'] = res['value']['amount']
data['partner_id']=line.partner_id.id
data['partner_id'] = line.partner_id.id
temp = line.currency_id and line.currency_id.id or False
if not temp:
if line.invoice:
@ -367,12 +380,12 @@ class payment_line(osv.osv):
data['currency'] = temp
# calling onchange of partner and updating data dictionary
temp_dict=self.onchange_partner(cr, uid, ids, line.partner_id.id, payment_type)
temp_dict = self.onchange_partner(cr, uid, ids, line.partner_id.id, payment_type)
data.update(temp_dict['value'])
data['reference']=line.ref
data['reference'] = line.ref
data['date_created'] = line.date_created
data['communication']=line.ref
data['communication'] = line.ref
if date_prefered == 'now':
#no payment date => immediate payment
@ -385,7 +398,7 @@ class payment_line(osv.osv):
def onchange_amount(self, cr, uid, ids, amount, currency, cmpny_currency, context=None):
if (not amount) or (not cmpny_currency):
return {'value': {'amount':False}}
return {'value': {'amount': False}}
res = {}
currency_obj = self.pool.get('res.currency')
company_amount = currency_obj.compute(cr, uid, currency, cmpny_currency, amount)
@ -393,33 +406,36 @@ class payment_line(osv.osv):
return {'value': res}
def onchange_partner(self, cr, uid, ids, partner_id, payment_type, context=None):
data={}
data['info_partner']=data['bank_id']=False
data = {}
partner_zip_obj = self.pool.get('res.partner.zip')
partner_obj = self.pool.get('res.partner')
payment_mode_obj = self.pool.get('payment.mode')
data['info_partner'] = data['bank_id'] = False
if partner_id:
part_obj=self.pool.get('res.partner').browse(cr, uid, partner_id)
partner=part_obj.name or ''
part_obj = partner_obj.browse(cr, uid, partner_id)
partner = part_obj.name or ''
if part_obj.address:
for ads in part_obj.address:
if ads.type=='default':
st=ads.street and ads.street or ''
st1=ads.street2 and ads.street2 or ''
if ads.type == 'default':
st = ads.street and ads.street or ''
st1 = ads.street2 and ads.street2 or ''
if 'zip_id' in ads:
zip_city= ads.zip_id and self.pool.get('res.partner.zip').name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
zip_city = ads.zip_id and partner_zip_obj.name_get(cr, uid, [ads.zip_id.id])[0][1] or ''
else:
zip=ads.zip and ads.zip or ''
city= ads.city and ads.city or ''
zip_city= zip + ' ' + city
zip = ads.zip and ads.zip or ''
city = ads.city and ads.city or ''
zip_city = zip + ' ' + city
cntry= ads.country_id and ads.country_id.name or ''
info=partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
cntry = ads.country_id and ads.country_id.name or ''
info = partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
data['info_partner']=info
data['info_partner'] = info
if part_obj.bank_ids and payment_type:
bank_type = self.pool.get('payment.mode').suitable_bank_types(cr, uid, payment_type, context=context)
bank_type = payment_mode_obj.suitable_bank_types(cr, uid, payment_type, context=context)
for bank in part_obj.bank_ids:
if bank.state in bank_type:
data['bank_id'] = bank.id
@ -432,7 +448,6 @@ class payment_line(osv.osv):
res['communication2'].setdefault('states', {})
res['communication2']['states']['structured'] = [('readonly', True)]
res['communication2']['states']['normal'] = [('readonly', False)]
return res
payment_line()

View File

@ -20,13 +20,13 @@
##############################################################################
import time
import datetime
import pooler
from report import report_sxw
class payment_order(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
def __init__(self, cr, uid, name, context=None):
super(payment_order, self).__init__(cr, uid, name, context=context)
self.localcontext.update( {
'time': time,
@ -36,8 +36,8 @@ class payment_order(report_sxw.rml_parse):
'get_amount_total_in_currency': self._get_amount_total_in_currency,
'get_amount_total': self._get_amount_total,
'get_account_name': self._get_account_name,
})
def _get_invoice_name(self, invoice_id):
if invoice_id:
pool = pooler.get_pool(self.cr.dbname)

View File

@ -18,6 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import account_payment_order
import account_payment_populate_statement
import account_payment_pay

View File

@ -18,6 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from lxml import etree
@ -39,10 +40,10 @@ class payment_order_create(osv.osv_memory):
_columns = {
'duedate': fields.date('Due Date', required=True),
'entries': fields.many2many('account.move.line', 'line_pay_rel', 'pay_id', 'line_id', 'Entries')
}
}
_defaults = {
'duedate': time.strftime('%Y-%m-%d'),
}
}
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
res = super(payment_order_create, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=False)
@ -63,7 +64,8 @@ class payment_order_create(osv.osv_memory):
context = {}
data = self.read(cr, uid, ids, [])[0]
line_ids = data['entries']
if not line_ids: return {}
if not line_ids:
return {}
payment = order_obj.browse(cr, uid, context['active_id'], context=context)
t = None
@ -99,16 +101,13 @@ class payment_order_create(osv.osv_memory):
data = self.read(cr, uid, ids, [], context=context)[0]
search_due_date = data['duedate']
payment = order_obj.browse(cr, uid, context['active_id'], context=context)
ctx = ''
if payment.mode:
ctx = '''context="{'journal_id': %d}"''' % payment.mode.journal.id
# Search for move line to pay:
domain = [('reconcile_id', '=', False),('account_id.type', '=', 'payable'),('amount_to_pay', '>', 0)]
domain = domain + ['|',('date_maturity','<=',search_due_date),('date_maturity','=',False)]
domain = [('reconcile_id', '=', False), ('account_id.type', '=', 'payable'), ('amount_to_pay', '>', 0)]
domain = domain + ['|', ('date_maturity', '<=', search_due_date), ('date_maturity', '=', False)]
line_ids = line_obj.search(cr, uid, domain, context=context)
context.update({'line_ids': line_ids})
model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','view_create_payment_order_lines')], context=context)
model_data_ids = mod_obj.search(cr, uid,[('model', '=', 'ir.ui.view'), ('name', '=', 'view_create_payment_order_lines')], context=context)
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
return {'name': ('Entrie Lines'),
'context': context,
@ -118,7 +117,7 @@ class payment_order_create(osv.osv_memory):
'views': [(resource_id,'form')],
'type': 'ir.actions.act_window',
'target': 'new',
}
}
payment_order_create()

View File

@ -18,7 +18,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
from osv import osv
class account_payment_make_payment(osv.osv_memory):
_name = "account.payment.make.payment"

View File

@ -29,7 +29,7 @@ class account_payment_populate_statement(osv.osv_memory):
_description = "Account Payment Populate Statement"
_columns = {
'lines': fields.many2many('payment.line', 'payment_line_rel_', 'payment_id', 'line_id', 'Payment Lines')
}
}
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
line_obj = self.pool.get('payment.line')
@ -56,6 +56,7 @@ class account_payment_populate_statement(osv.osv_memory):
currency_obj = self.pool.get('res.currency')
voucher_obj = self.pool.get('account.voucher')
voucher_line_obj = self.pool.get('account.voucher.line')
move_line_obj = self.pool.get('account.move.line')
if context is None:
context = {}
@ -75,34 +76,28 @@ class account_payment_populate_statement(osv.osv_memory):
context.update({'move_line_ids': [line.move_line_id.id]})
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype='payment', context=context)
if line.partner_id:
# line['partner_id'] = mv.partner_id.id
if amount < 0:
account = line.partner_id.property_account_payable.id
else:
account = line.partner_id.property_account_receivable.id
if line.move_line_id:
voucher_res = { 'type': 'payment',
'name': line.name,
'partner_id': line.partner_id.id,
'journal_id': statement.journal_id.id,
'account_id': result.get('account_id', statement.journal_id.default_credit_account_id.id),
'company_id': statement.company_id.id,
'currency_id': statement.currency.id,
'date': line.date or time.strftime('%Y-%m-%d'),
'amount': abs(amount),
'period_id': statement.period_id.id
voucher_res = {
'type': 'payment',
'name': line.name,
'partner_id': line.partner_id.id,
'journal_id': statement.journal_id.id,
'account_id': result.get('account_id', statement.journal_id.default_credit_account_id.id),
'company_id': statement.company_id.id,
'currency_id': statement.currency.id,
'date': line.date or time.strftime('%Y-%m-%d'),
'amount': abs(amount),
'period_id': statement.period_id.id
}
voucher_id = voucher_obj.create(cr, uid, voucher_res, context=context)
voucher_line_dict = False
if result['value']['line_ids']:
for line_dict in result['value']['line_ids']:
move_line = self.pool.get('account.move.line').browse(cr, uid, line_dict['move_line_id'], context)
move_line = move_line_obj.browse(cr, uid, line_dict['move_line_id'], context)
if line.move_line_id.move_id.id == move_line.move_id.id:
voucher_line_dict = line_dict
if voucher_line_dict:
voucher_line_dict.update({'voucher_id':voucher_id})
voucher_line_dict.update({'voucher_id': voucher_id})
voucher_line_obj.create(cr, uid, voucher_line_dict, context=context)
st_line_id = statement_line_obj.create(cr, uid, {

View File

@ -20,7 +20,7 @@
##############################################################################
import report
import account
import account_reporting
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -31,9 +31,8 @@
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
'account_view.xml',
'account_report.xml',
'account_data.xml',
'account_reporting_view.xml',
'account_reporting_data.xml',
'wizard/account_reporting_balance_report_view.xml',
],
'demo_xml': ['account_reporting_demo.xml'],

View File

@ -1,6 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
</data>
</openerp>

View File

@ -18,19 +18,19 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import netsvc
from osv import fields, osv
from tools.misc import currency
class color_rml(osv.osv):
_name = "color.rml"
_description = "Rml Color"
_columns = {
'name': fields.char('Name', size=64, required=True),
'code': fields.char('code',size=64,required=True),
'code': fields.char('code', size=64, required=True),
}
color_rml()
@ -39,44 +39,44 @@ class account_report_bs(osv.osv):
_name = "account.report.bs"
_description = "Account reporting for Balance Sheet"
_font = [
('',''),
('Courier','Courier'),
('Courier-Bold','Courier-Bold'),
('Courier-BoldOblique','Courier-BoldOblique'),
('Courier-Oblique','Courier-Oblique'),
('Helvetica','Helvetica'),
('Helvetica-Bold','Helvetica-Bold'),
('Helvetica-Oblique','Helvetica-Oblique'),
('Times-Bold','Times-Bold'),
('Times-BoldItalic','Times-BoldItalic'),
('Times-Italic','Times-Italic'),
('Times-Roman','Times-Roman'),
('', ''),
('Courier', 'Courier'),
('Courier-Bold', 'Courier-Bold'),
('Courier-BoldOblique', 'Courier-BoldOblique'),
('Courier-Oblique', 'Courier-Oblique'),
('Helvetica', 'Helvetica'),
('Helvetica-Bold', 'Helvetica-Bold'),
('Helvetica-Oblique', 'Helvetica-Oblique'),
('Times-Bold', 'Times-Bold'),
('Times-BoldItalic', 'Times-BoldItalic'),
('Times-Italic', 'Times-Italic'),
('Times-Roman', 'Times-Roman'),
]
_color = [
('', ''),
('green','Green'),
('red','Red'),
('pink','Pink'),
('blue','Blue'),
('yellow','Yellow'),
('cyan','Cyan'),
('lightblue','Light Blue'),
('orange','Orange'),
('green', 'Green'),
('red', 'Red'),
('pink', 'Pink'),
('blue', 'Blue'),
('yellow', 'Yellow'),
('cyan', 'Cyan'),
('lightblue', 'Light Blue'),
('orange', 'Orange'),
]
_style = [
('', ''),
('h1','Header 1'),
('h2','Header 2'),
('h3','Header 3'),
('h1', 'Header 1'),
('h2', 'Header 2'),
('h3', 'Header 3'),
]
def onchange_parent_id(self, cr, uid, ids, parent_id):
v={}
v = {}
if parent_id:
acc=self.pool.get('account.report.report').browse(cr, uid, parent_id)
v['type']=acc.type
acc = self.pool.get('account.report.report').browse(cr, uid, parent_id)
v['type'] = acc.type
if int(acc.style) < 6:
v['style'] = str(int(acc.style)+1)
v['style'] = str(int(acc.style) + 1)
return {'value': v}
_columns = {
@ -85,36 +85,35 @@ class account_report_bs(osv.osv):
'code': fields.char('Code', size=64, required=True),
'account_id': fields.many2many('account.account', 'account_report_rel', 'report_id', 'account_id', 'Accounts'),
'note': fields.text('Note'),
'color_font' : fields.many2one('color.rml','Font Color'),
'color_back' : fields.many2one('color.rml','Back Color'),
'font_style' : fields.selection(_font, 'Font'),
'color_font': fields.many2one('color.rml', 'Font Color'),
'color_back': fields.many2one('color.rml', 'Back Color'),
'font_style': fields.selection(_font, 'Font'),
'parent_id': fields.many2one('account.report.bs', 'Parent'),
'child_id': fields.one2many('account.report.bs', 'parent_id', 'Children'),
'report_type' : fields.selection([('only_obj', 'Report Objects Only'),('with_account', 'Report Objects With Accounts'),('acc_with_child', 'Report Objects With Accounts and child of Accounts')],"Report Type")
'report_type': fields.selection([('only_obj', 'Report Objects Only'), ('with_account', 'Report Objects With Accounts'), ('acc_with_child', 'Report Objects With Accounts and child of Accounts')], "Report Type")
}
_defaults = {
'report_type': lambda *a :'only_obj',
'color_font': lambda *a :'',
'color_back': lambda *a :'',
'font_style': lambda *a :'',
'report_type': 'only_obj',
'color_font': '',
'color_back': '',
'font_style': '',
}
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
args = []
if not context:
context={}
context = {}
ids = []
if name:
ids = self.search(cr, user, [('code','=',name)]+ args, limit=limit, context=context)
ids = self.search(cr, user, [('code', '=', name)]+ args, limit=limit, context=context)
if not ids:
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
ids = self.search(cr, user, [('name', operator, name)]+ args, limit=limit, context=context)
else:
ids = self.search(cr, user, args, limit=limit, context=context)
return self.name_get(cr, user, ids, context=context)
account_report_bs()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,34 +1,34 @@
<?xml version="1.0"?>
<openerp>
<data>
<data>
<record model="ir.ui.view" id="view_account_report_bs_form">
<field name="name">account.report.bs.form</field>
<field name="model">account.report.bs</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Account reporting">
<notebook>
<page string="General">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="parent_id" select="1"/>
<field name="sequence"/>
<field name="color_font"/>
<field name="color_back"/>
<field name="font_style"/>
<field name="report_type"/>
<newline/>
<separator string="Accounts" colspan="4"/>
<field name="account_id" colspan="4" nolabel="1"/>
</page>
<page string="Notes">
<field name="note" nolabel="1" colspan="4"/>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_account_report_bs_form">
<field name="name">account.report.bs.form</field>
<field name="model">account.report.bs</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Account reporting">
<notebook>
<page string="General">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="parent_id" select="1"/>
<field name="sequence"/>
<field name="color_font"/>
<field name="color_back"/>
<field name="font_style"/>
<field name="report_type"/>
<newline/>
<separator string="Accounts" colspan="4"/>
<field name="account_id" colspan="4" nolabel="1"/>
</page>
<page string="Notes">
<field name="note" nolabel="1" colspan="4"/>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_account_report_tree_bs">
<field name="name">account.report.report.tree.bs</field>
@ -42,6 +42,7 @@
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_account_tree_bs">
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.report.bs</field>
@ -49,6 +50,7 @@
<field name="view_type">tree</field>
<field name="view_id" ref="view_account_report_tree_bs"/>
</record>
<menuitem name="Balance Sheet Report" id="menu_finan_config_BSheet" parent="account.menu_finance_configuration"/>
<menuitem name="Balance Sheet Report" id="action_account_report_bs_form" action="action_account_tree_bs" parent="menu_finan_config_BSheet"/>
@ -58,9 +60,8 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_account_report_bs_form"/>
</record>
<menuitem name="Balance Sheet Report Form" id="bs_report_action_form" action="acc_bs_report_action_form" parent="menu_finan_config_BSheet"/>
</data>
</data>
</openerp>

View File

@ -7,16 +7,21 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-15 09:23+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 21:58+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-16 04:48+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
#: model:ir.model,name:account_reporting.model_color_rml
msgid "Rml Color"
msgstr "Rml Boja"
#. module: account_reporting
#: field:color.rml,code:0
msgid "code"
@ -55,11 +60,26 @@ msgstr "Tip izveštaja"
msgid "Balance Sheet Report"
msgstr "Izvještaj Liste Salda"
#. module: account_reporting
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Greska! Ne mozete kreirati rekursivni meni."
#. module: account_reporting
#: view:account.reporting.balance.report:0
msgid "Print"
msgstr "Štampaj"
#. module: account_reporting
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: account_reporting
#: field:account.report.bs,font_style:0
msgid "Font"
msgstr "Font"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier"
@ -71,12 +91,7 @@ msgid "Courier-BoldOblique"
msgstr "Courier-BoldOblique"
#. module: account_reporting
#: wizard_button:account.account.balancesheet.report,init,report:0
msgid "Print BalanceSheet"
msgstr "Ispis ListeSalda"
#. module: account_reporting
#: help:account.account.balancesheet.report,init,periods:0
#: help:account.reporting.balance.report,periods:0
msgid "All periods if empty"
msgstr "Ako je prazno, sva razdoblja"
@ -160,11 +175,6 @@ msgstr "Times-Italic"
msgid "Report Objects Only"
msgstr "Izveštaj samo objekata"
#. module: account_reporting
#: model:ir.model,name:account_reporting.model_color_rml
msgid "Rml Colors"
msgstr "Rml Boje"
#. module: account_reporting
#: model:ir.module.module,shortdesc:account_reporting.module_meta_information
msgid "Reporting of Balancesheet for accounting"
@ -180,6 +190,11 @@ msgstr "Šifra"
msgid "Parent"
msgstr "Roditelj"
#. module: account_reporting
#: view:account.reporting.balance.report:0
msgid "Select Dates Period"
msgstr "Selektuj Datume razdoblja"
#. module: account_reporting
#: field:account.report.bs,sequence:0
msgid "Sequence"
@ -190,13 +205,20 @@ msgstr "Sekvenca"
msgid "Times-Bold"
msgstr "Times-Bold"
#. module: account_reporting
#: help:account.report.bs,sequence:0
msgid ""
"Gives the sequence order when displaying a list of account reporting for "
"balance sheet."
msgstr ""
#. module: account_reporting
#: view:account.report.bs:0
msgid "General"
msgstr "Opšte"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,fiscalyear:0
#: field:account.reporting.balance.report,fiscalyear:0
msgid "Fiscal year"
msgstr "Fiskalna Godina"
@ -207,7 +229,8 @@ msgid "Accounts"
msgstr "Nalozi"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,periods:0
#: view:account.reporting.balance.report:0
#: field:account.reporting.balance.report,periods:0
msgid "Periods"
msgstr "Razdoblja"
@ -217,12 +240,7 @@ msgid "Back Color"
msgstr "Pozadinska Boja"
#. module: account_reporting
#: field:account.report.bs,child_id:0
msgid "Children"
msgstr "Podređeni"
#. module: account_reporting
#: wizard_button:account.account.balancesheet.report,init,end:0
#: view:account.reporting.balance.report:0
msgid "Cancel"
msgstr "Otkaži"
@ -237,11 +255,20 @@ msgid "Helvetica-Oblique"
msgstr "Helvetica-Oblique"
#. module: account_reporting
#: field:account.report.bs,font_style:0
msgid "Font"
msgstr "Font"
#: model:ir.model,name:account_reporting.model_account_reporting_balance_report
msgid "Account balance report"
msgstr ""
#. module: account_reporting
#: wizard_view:account.account.balancesheet.report,init:0
msgid "Customize Report"
msgstr "Prilagodi Izvestaj"
#: field:account.report.bs,child_id:0
msgid "Children"
msgstr "Podređeni"
#~ msgid "Print BalanceSheet"
#~ msgstr "Ispis ListeSalda"
#~ msgid "Rml Colors"
#~ msgstr "Rml Boje"
#~ msgid "Customize Report"
#~ msgstr "Prilagodi Izvestaj"

View File

@ -20,14 +20,12 @@
##############################################################################
import time
import pooler
import locale
from report import report_sxw
parents = {
'tr':1,
'li':1,
'tr': 1,
'li': 1,
'story': 0,
'section': 0
}
@ -42,18 +40,17 @@ class account_report_bs(report_sxw.rml_parse):
self.context = context
def line_total(self,line_id,ctx):
def line_total(self, line_id, ctx):
_total = 0
bsline= self.pool.get('account.report.bs').browse(self.cr,self.uid,[line_id])[0]
bsline_accids = bsline.account_id
res =self.pool.get('account.report.bs').read(self.cr,self.uid,[line_id],['account_id','child_id'])[0]
bsline = self.pool.get('account.report.bs').browse(self.cr, self.uid, [line_id])[0]
res = self.pool.get('account.report.bs').read(self.cr, self.uid, [line_id], ['account_id', 'child_id'])[0]
for acc_id in res['account_id']:
acc = self.pool.get('account.account').browse(self.cr,self.uid,[acc_id],ctx)[0]
acc = self.pool.get('account.account').browse(self.cr, self.uid, [acc_id], ctx)[0]
_total += acc.balance
bsline_reportbs = res['child_id']
for report in bsline_reportbs:
_total +=self.line_total(report,ctx)
_total += self.line_total(report,ctx)
return _total
def lines(self, form, ids={}, done=None, level=1, object=False):
@ -64,14 +61,14 @@ class account_report_bs(report_sxw.rml_parse):
if not ids:
return []
if not done:
done={}
done = {}
result = []
ctx = self.context.copy()
ctx['fiscalyear'] = form['fiscalyear']
ctx['periods'] = form['periods']
report_objs = self.pool.get('account.report.bs').browse(self.cr, self.uid, ids)
title_name = False
if level==1:
if level == 1:
title_name = report_objs[0].name
def cmp_code(x, y):
return cmp(x.code, y.code)
@ -92,41 +89,41 @@ class account_report_bs(report_sxw.rml_parse):
'name': report_obj.name,
'level': level,
'balance': self.line_total(report_obj.id,ctx),
'parent_id':False,
'color_font':color_font,
'color_back':color_back,
'font_style' : report_obj.font_style
'parent_id': False,
'color_font': color_font,
'color_back': color_back,
'font_style': report_obj.font_style
}
result.append(res)
report_type = report_obj.report_type
if report_type != 'only_obj':
account_ids = self.pool.get('account.report.bs').read(self.cr,self.uid,[report_obj.id],['account_id'])[0]['account_id']
account_ids = self.pool.get('account.report.bs').read(self.cr, self.uid, [report_obj.id], ['account_id'])[0]['account_id']
if report_type == 'acc_with_child':
acc_ids = self.pool.get('account.account')._get_children_and_consol(self.cr, self.uid, account_ids )
acc_ids = self.pool.get('account.account')._get_children_and_consol(self.cr, self.uid, account_ids)
account_ids = acc_ids
account_objs = self.pool.get('account.account').browse(self.cr,self.uid,account_ids,ctx)
account_objs = self.pool.get('account.account').browse(self.cr, self.uid, account_ids, ctx)
for acc_obj in account_objs:
res1={}
res1 = {}
res1 = {
'code': acc_obj.code,
'name': acc_obj.name,
'level': level+1,
'balance': acc_obj.balance,
'parent_id':acc_obj.parent_id,
'color_font' : 'black',
'color_back' :'white',
'font_style' : 'Helvetica',
'parent_id': acc_obj.parent_id,
'color_font': 'black',
'color_back': 'white',
'font_style': 'Helvetica',
}
if acc_obj.parent_id:
for r in result:
if r['name']== acc_obj.parent_id.name:
if r['name'] == acc_obj.parent_id.name:
res1['level'] = r['level'] + 1
break
result.append(res1)
if report_obj.child_id:
ids2 = [(x.code,x.id) for x in report_obj.child_id]
ids2 = [(x.code, x.id) for x in report_obj.child_id]
ids2.sort()
result += self.lines(form,[x[1] for x in ids2], done, level+1,object=False)
result += self.lines(form, [x[1] for x in ids2], done, level+1, object=False)
return result

View File

@ -18,8 +18,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
from tools.translate import _
class account_reporting_balance_report(osv.osv_memory):
@ -33,7 +33,7 @@ class account_reporting_balance_report(osv.osv_memory):
_description = 'Account balance report'
_columns = {
'fiscalyear': fields.many2one('account.fiscalyear', 'Fiscal year', required=True),
'periods': fields.many2many('account.period', 'acc_reporting_relation', 'acc_id','period_id', 'Periods', help='All periods if empty'),
'periods': fields.many2many('account.period', 'acc_reporting_relation', 'acc_id', 'period_id', 'Periods', help='All periods if empty'),
}
_defaults = {
'fiscalyear' : _get_fiscalyear,
@ -45,7 +45,7 @@ class account_reporting_balance_report(osv.osv_memory):
context = {}
data = self.read(cr, uid, ids)[0]
datas = {
'ids': context.get('active_ids',[]),
'ids': context.get('active_ids', []),
'model': 'account.report.bs',
'form': data
}

View File

@ -7,8 +7,8 @@
<field name="model">account.reporting.balance.report</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select Dates Period">
<field name="fiscalyear" colspan="4"/>
<form string="Account Report Balance Sheet">
<field name="fiscalyear" colspan="4" widget="selection"/>
<newline/>
<separator string="Periods" colspan="4"/>
<field name="periods" nolabel="1" colspan="4"/>

View File

@ -51,10 +51,10 @@
"security/account_voucher_security.xml"
],
"test" : [
# "test/account_voucher.yml",
"test/sales_receipt.yml",
"test/sales_payment.yml",
"test/account_voucher_report.yml"
"test/account_voucher.yml",
"test/sales_receipt.yml",
"test/sales_payment.yml",
"test/account_voucher_report.yml"
],
'certificate': '0037580727101',
"active": False,

View File

@ -574,6 +574,8 @@ class account_voucher(osv.osv):
currency_pool = self.pool.get('res.currency')
tax_obj = self.pool.get('account.tax')
for inv in self.browse(cr, uid, ids):
if not inv.line_ids:
raise osv.except_osv(_('No Lines !'), _('Please create some lines'))
if inv.move_id:
continue
if inv.number:
@ -582,13 +584,17 @@ class account_voucher(osv.osv):
name = self.pool.get('ir.sequence').get_id(cr, uid, inv.journal_id.sequence_id.id)
else:
raise osv.except_osv(_('Error !'), _('Please define a sequence on the journal !'))
if not inv.reference:
ref = name.replace('/','')
else:
ref = inv.reference
move = {
'name': name,
'journal_id': inv.journal_id.id,
'narration': inv.narration,
'date':inv.date,
'ref':inv.reference,
'date': inv.date,
'ref': ref,
'period_id': inv.period_id and inv.period_id.id or False
}
move_id = move_pool.create(cr, uid, move)

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 09:02+0000\n"
"PO-Revision-Date: 2010-10-25 07:11+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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher

File diff suppressed because it is too large Load Diff

View File

@ -24,8 +24,8 @@ from tools.translate import _
class invoice(osv.osv):
_inherit = 'account.invoice'
def invoice_pay_customer(self, cr, uid, ids, context={}):
def invoice_pay_customer(self, cr, uid, ids, context=None):
if not ids: return []
inv = self.browse(cr, uid, ids[0], context=context)
return {
@ -46,7 +46,7 @@ class invoice(osv.osv):
'invoice_type':inv.type,
'invoice_id':inv.id,
'default_type': inv.type in ('out_invoice','out_refund') and 'receipt' or 'payment'
}
}
}
invoice()

View File

@ -1,21 +1,21 @@
-
In order to check account voucher module in OpenERP I create a customer voucher
-
!record {model: account.voucher, id: account_voucher_voucherforaxelor0}:
account_id: account.cash
amount: 1000.0
company_id: base.main_company
currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher for Axelor
narration: Basic Pc
line_ids:
line_cr_ids:
- account_id: account.a_recv
amount: 1000.0
name: Voucher for Axelor
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_desertic_hispafuentes
period_id: account.period_6
reference_type: none
reference: none
-
I check that Initially customer voucher is in the "Draft" state
@ -26,11 +26,7 @@
I compute the voucher to calculate the taxes by clicking Compute button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor0}
-
I check that the voucher state is now "proforma"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'proforma'
-
I create voucher by clicking on Create button
-
@ -54,32 +50,25 @@
-
!record {model: account.voucher, id: account_voucher_voucheraxelor0}:
account_id: account.cash
amount: 1000.0
company_id: base.main_company
currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher Axelor
narration: Basic PC
line_ids:
line_dr_ids:
- account_id: account.cash
amount: 1000.0
name: Voucher Axelor
partner_id: base.res_partner_desertic_hispafuentes
period_id: account.period_6
reference_type: none
reference: none
-
I check that Initially vendor voucher is in the "Draft" state
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'draft'
-
I change the state of voucher to "proforma" by clicking PRO-FORMA button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is now "proforma"
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'proforma'
-
I create voucher by clicking on Create button
-

View File

@ -153,9 +153,9 @@
<button name="cancel_voucher" string="Cancel" states="draft,proforma" icon="gtk-cancel"/>
<button name="cancel_voucher" string="Cancel" type="object" states="posted" icon="terp-stock_effects-object-colorize" confirm="Are you sure to confirm this record ?"/>
<button name="proforma_voucher" string="Validate" states="draft" icon="gtk-go-forward"/>
<group colspan="2" attrs="{'invisible':[('pay_now','!=','pay_now')]}">
<button icon="terp-dolar_ok!" name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay" attrs="{'invisible':[('state','!=','posted')]}"/>
</group>
<group attrs="{'invisible':[('state','!=','posted')]}">
<button icon="terp-dolar_ok!" name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay" attrs="{'invisible':[('pay_now','!=','pay_now')]}"/>
</group>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
</group>
</form>

View File

@ -28,130 +28,65 @@ class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
_description = 'Analytic Account'
def _compute_currency_for_level_tree(self, cr, uid, ids, ids2, res, context=None):
# Handle multi-currency on each level of analytic account
# This is a refactoring of _balance_calc computation
cr.execute("SELECT a.id, r.currency_id FROM account_analytic_account a INNER JOIN res_company r ON (a.company_id = r.id) where a.id IN %s" , (tuple(ids2),))
currency = dict(cr.fetchall())
res_currency= self.pool.get('res.currency')
def _compute_level_tree(self, cr, uid, ids, child_ids, res, field_names, context=None):
def recursive_computation(account_id, res):
account = self.browse(cr, uid, account_id)
for son in account.child_ids:
res = recursive_computation(son.id, res)
for field in field_names:
res[account.id][field] += res[son.id][field]
return res
for account in self.browse(cr, uid, ids, context=context):
if account.id not in ids2:
if account.id not in child_ids:
continue
for child in account.child_ids:
if child.id != account.id:
res.setdefault(account.id, 0.0)
if currency[child.id] != currency[account.id]:
res[account.id] += res_currency.compute(cr, uid, currency[child.id], currency[account.id], res.get(child.id, 0.0), context=context)
else:
res[account.id] += res.get(child.id, 0.0)
res = recursive_computation(account.id, res)
return res
cur_obj = res_currency.browse(cr, uid, currency.values(), context=context)
cur_obj = dict([(o.id, o) for o in cur_obj])
for id in ids:
if id in ids2:
res[id] = res_currency.round(cr, uid, cur_obj[currency[id]], res.get(id,0.0))
return dict([(i, res[i]) for i in ids ])
def _credit_calc(self, cr, uid, ids, name, arg, context=None):
def _debit_credit_bal_qtty(self, cr, uid, ids, name, arg, context=None):
res = {}
if context is None:
context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
child_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in child_ids:
res[i] = {}
for n in name:
res[i][n] = 0.0
if not parent_ids:
if not child_ids:
return res
where_date = ''
where_clause_args = [tuple(child_ids)]
if context.get('from_date', False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
where_date += " AND l.date >= %s"
where_clause_args += [context['from_date']]
if context.get('to_date', False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id "+where_date+") WHERE l.amount<0 and a.id IN %s GROUP BY a.id",(tuple(parent_ids),))
r = dict(cr.fetchall())
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, r, context)
def _debit_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
if context is None:
context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
if not parent_ids:
return res
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id "+where_date+") WHERE l.amount>0 and a.id IN %s GROUP BY a.id" ,(tuple(parent_ids),))
r = dict(cr.fetchall())
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, r, context=context)
def _balance_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
if context is None:
context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
if not parent_ids:
return res
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id "+where_date+") WHERE a.id IN %s GROUP BY a.id",(tuple(parent_ids),))
for account_id, sum in cr.fetchall():
res[account_id] = sum
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context)
def _quantity_calc(self, cr, uid, ids, name, arg, context=None):
#XXX must convert into one uom
res = {}
if context is None:
context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
if not parent_ids:
return res
where_date = ''
if context.get('from_date',False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute('SELECT a.id, COALESCE(SUM(l.unit_amount), 0) \
FROM account_analytic_account a \
LEFT JOIN account_analytic_line l ON (a.id = l.account_id ' + where_date + ') \
WHERE a.id IN %s GROUP BY a.id',(tuple(parent_ids),))
for account_id, sum in cr.fetchall():
res[account_id] = sum
for account in self.browse(cr, uid, ids, context=context):
if account.id not in parent_ids:
continue
for child in account.child_ids:
if child.id != account.id:
res.setdefault(account.id, 0.0)
res[account.id] += res.get(child.id, 0.0)
return dict([(i, res[i]) for i in ids])
where_date += " AND l.date <= %s"
where_clause_args += [context['to_date']]
cr.execute("""
SELECT a.id,
sum(
CASE WHEN l.amount > 0
THEN l.amount
ELSE 0.0
END
) as debit,
sum(
CASE WHEN l.amount < 0
THEN -l.amount
ELSE 0.0
END
) as credit,
COALESCE(SUM(l.amount),0) AS balance,
COALESCE(SUM(l.unit_amount),0) AS quantity
FROM account_analytic_account a
LEFT JOIN account_analytic_line l ON (a.id = l.account_id)
WHERE a.id IN %s
""" + where_date + """
GROUP BY a.id""", where_clause_args)
for ac_id, debit, credit, balance, quantity in cr.fetchall():
res[ac_id] = {'debit': debit, 'credit': credit, 'balance': balance, 'quantity': quantity}
return self._compute_level_tree(cr, uid, ids, child_ids, res, ['debit', 'credit', 'balance', 'quantity'], context)
def name_get(self, cr, uid, ids, context=None):
if not ids:
@ -180,10 +115,10 @@ class account_analytic_account(osv.osv):
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'),
'balance': fields.function(_balance_calc, method=True, type='float', string='Balance'),
'debit': fields.function(_debit_calc, method=True, type='float', string='Debit'),
'credit': fields.function(_credit_calc, method=True, type='float', string='Credit'),
'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'),
'balance': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Balance', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'debit': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'credit': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'quantity': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
'quantity_max': fields.float('Maximum Quantity', help='Sets the higher limit of quantity of hours.'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'contact_id': fields.many2one('res.partner.address', 'Contact'),

View File

@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-06-18 10:59+0000\n"
"PO-Revision-Date: 2010-10-15 08:47+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 21:45+0000\n"
"Last-Translator: zmmaj <Unknown>\n"
"Language-Team: Serbian <sr@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: 2010-10-16 04:48+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic
@ -22,14 +22,6 @@ msgstr ""
msgid "Child Accounts"
msgstr "Podređeni Nalozi"
#. module: analytic
#: help:account.analytic.line,amount_currency:0
msgid ""
"The amount expressed in the related account currency if not equal to the "
"company one."
msgstr ""
"Vrednost izrazena u datom iznosu valute ako nije jednaka valuti preduzeca"
#. module: analytic
#: constraint:ir.model:0
msgid ""
@ -40,18 +32,13 @@ msgstr ""
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr "Naziv računa"
msgstr "Naziv Naloga"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr "Specificira koju kolicinu iznosa da broji"
#. module: analytic
#: help:account.analytic.line,currency_id:0
msgid "The related account currency if not equal to the company one."
msgstr "Dati iznos valute ako nije jednaka valuti preduzeca"
#. module: analytic
#: model:ir.module.module,description:analytic.module_meta_information
msgid ""
@ -86,40 +73,6 @@ msgstr "Zatvoren"
msgid "Debit"
msgstr "Duguje"
#. module: analytic
#: help:account.analytic.account,state:0
msgid ""
"* When an account is created its in 'Draft' state. "
" \n"
"* If any associated partner is there, it can be in 'Open' state. "
" \n"
"* If any pending balance is there it can be in 'Pending'. "
" \n"
"* And finally when all the transactions are over, it can be in 'Close' "
"state. \n"
"* The project can be in either if the states 'Template' and 'Running'.\n"
" If it is template then we can make projects based on the template projects. "
"If its in 'Running' state it is a normal project. "
" \n"
" If it is to be reviewed then the state is 'Pending'.\n"
" When the project is completed the state is set to 'Done'."
msgstr ""
"*Kada je neka faktura kreirana a nalazi se u ' U Toku'. "
" \n"
"*Ako je bilo koji asocirani partner tamo, on mora biti u stanju ' Otvoren'. "
" \n"
"*Ako je bilo koji Saldo u stanju 'U izvrsenju' on mora i biti tamo. "
" "
"\n"
"*I , na kraju kada su sve transakcije gotove, mora se naci u stanju ' "
"Zatvoreno'. "
" \n"
" Ako je ovo shema(obrazac) onda mi mozemo napraviri projekat baziran na "
"istom. Ako je u stanju ' U izvrsenju' to je normalnan\n"
"projekat.\n"
" Ako zelimo da ga pregledamo, stanje mora biti ' U Toku'.\n"
" Kada je projekat zavrsen stanje je postavljeno na ' Zavrseno'."
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Account Type"
@ -147,12 +100,9 @@ msgid "Description"
msgstr "Opis"
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price."
msgstr ""
"Izracunato mnozenjem kolicine i cene dobijene iz Proizvodove cene kostanja"
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr "Normalan"
#. module: analytic
#: field:account.analytic.account,company_id:0
@ -182,14 +132,23 @@ msgstr "Datum"
#. module: analytic
#: field:account.analytic.account,currency_id:0
#: field:account.analytic.line,currency_id:0
msgid "Account currency"
msgstr "Valuta Naloga"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "View"
msgstr "Pregled"
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr "Količina"
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price. Always expressed in the company main currency."
msgstr ""
"Izracunato mnozenjem kolicine i cene date u proizvodovom cenovniku. Uvek "
"prikazano u osnovnoj valuti preduzeca."
#. module: analytic
#: help:account.analytic.account,quantity_max:0
@ -222,31 +181,29 @@ msgid "Balance"
msgstr "Saldo"
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr "Početni datum"
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr "Količina"
#: help:account.analytic.account,type:0
msgid ""
"If you select the View Type, it means you won't allow to create journal "
"entries using that account."
msgstr ""
"Ukoliko izaberete PREGLED, to znaci da ne zelite da kreirate sadrzaj "
"dnevnika, koristeci taj nalog."
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr "Završni datum"
#. module: analytic
#: constraint:ir.rule:0
msgid "Rules are not supported for osv_memory objects !"
msgstr "Pravila nisu podrzana od strane osv_memory objekata !"
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr "Sifra Naloga"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr "Normalan"
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
@ -260,19 +217,19 @@ msgid "Analytic Account"
msgstr "Analitički konto"
#. module: analytic
#: field:account.analytic.account,company_currency_id:0
msgid "Currency"
msgstr "Valuta"
#. module: analytic
#: field:account.analytic.line,amount_currency:0
msgid "Amount currency"
msgstr "Iznos valute"
#: selection:account.analytic.account,type:0
msgid "View"
msgstr "Pregled"
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Associated Partner"
msgstr "Povezani partner"
msgid "Partner"
msgstr "Partner"
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr "Početni datum"
#. module: analytic
#: selection:account.analytic.account,state:0
@ -283,3 +240,59 @@ msgstr "Otvori"
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr "Analitičke stavke"
#~ msgid ""
#~ "The amount expressed in the related account currency if not equal to the "
#~ "company one."
#~ msgstr ""
#~ "Vrednost izrazena u datom iznosu valute ako nije jednaka valuti preduzeca"
#~ msgid "The related account currency if not equal to the company one."
#~ msgstr "Dati iznos valute ako nije jednaka valuti preduzeca"
#~ msgid ""
#~ "* When an account is created its in 'Draft' state. "
#~ " \n"
#~ "* If any associated partner is there, it can be in 'Open' state. "
#~ " \n"
#~ "* If any pending balance is there it can be in 'Pending'. "
#~ " \n"
#~ "* And finally when all the transactions are over, it can be in 'Close' "
#~ "state. \n"
#~ "* The project can be in either if the states 'Template' and 'Running'.\n"
#~ " If it is template then we can make projects based on the template projects. "
#~ "If its in 'Running' state it is a normal project. "
#~ " \n"
#~ " If it is to be reviewed then the state is 'Pending'.\n"
#~ " When the project is completed the state is set to 'Done'."
#~ msgstr ""
#~ "*Kada je neka faktura kreirana a nalazi se u ' U Toku'. "
#~ " \n"
#~ "*Ako je bilo koji asocirani partner tamo, on mora biti u stanju ' Otvoren'. "
#~ " \n"
#~ "*Ako je bilo koji Saldo u stanju 'U izvrsenju' on mora i biti tamo. "
#~ " "
#~ "\n"
#~ "*I , na kraju kada su sve transakcije gotove, mora se naci u stanju ' "
#~ "Zatvoreno'. "
#~ " \n"
#~ " Ako je ovo shema(obrazac) onda mi mozemo napraviri projekat baziran na "
#~ "istom. Ako je u stanju ' U izvrsenju' to je normalnan\n"
#~ "projekat.\n"
#~ " Ako zelimo da ga pregledamo, stanje mora biti ' U Toku'.\n"
#~ " Kada je projekat zavrsen stanje je postavljeno na ' Zavrseno'."
#~ msgid ""
#~ "Calculated by multiplying the quantity and the price given in the Product's "
#~ "cost price."
#~ msgstr ""
#~ "Izracunato mnozenjem kolicine i cene dobijene iz Proizvodove cene kostanja"
#~ msgid "Currency"
#~ msgstr "Valuta"
#~ msgid "Associated Partner"
#~ msgstr "Povezani partner"
#~ msgid "Amount currency"
#~ msgstr "Iznos valute"

View File

@ -1292,8 +1292,8 @@ true, it will allow you to hide the event alarm information without removing it.
count = 0
for data in cr.dictfetchall():
start_date = base_start_date and datetime.strptime(base_start_date[:10], "%Y-%m-%d") or False
until_date = base_until_date and datetime.strptime(base_until_date[:10], "%Y-%m-%d") or False
start_date = base_start_date and datetime.strptime(base_start_date[:10]+ ' 00:00:00' , "%Y-%m-%d %H:%M:%S") or False
until_date = base_until_date and datetime.strptime(base_until_date[:10]+ ' 23:59:59', "%Y-%m-%d %H:%M:%S") or False
if count > limit:
break
event_date = datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S")
@ -1426,8 +1426,9 @@ true, it will allow you to hide the event alarm information without removing it.
args_without_date = []
start_date = False
until_date = False
for arg in args:
if arg[0] not in ('date', unicode('date')):
if arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')):
args_without_date.append(arg)
else:
if arg[1] in ('>', '>='):

View File

@ -6,25 +6,269 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-09-29 08:45+0000\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 19:25+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: 2010-09-30 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
#: field:res.partner.contact,title:0
msgid "Title"
msgstr "Название"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
msgstr "Кол-во контактных лиц"
#. module: base_contact
#: field:res.partner.job,fax:0
msgid "Fax"
msgstr "Факс"
#. module: base_contact
#: view:base.contact.installer:0
msgid "title"
msgstr ""
#. module: base_contact
#: help:res.partner.job,date_start:0
msgid "Start date of job(Joining Date)"
msgstr ""
#. module: base_contact
#: help:res.partner.job,function:0
msgid "Function of this contact with this partner"
msgstr ""
#. module: base_contact
#: help:res.partner.job,state:0
msgid "Status of Address"
msgstr ""
#. module: base_contact
#: help:res.partner.job,name:0
msgid ""
"You may enter Address first,Partner will be linked "
"automatically if any."
msgstr ""
#. module: base_contact
#: help:res.partner.job,fax:0
msgid "Job FAX no."
msgstr ""
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
msgstr "Моб. тел."
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,comment:0
msgid "Notes"
msgstr "Примечания"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
msgstr "Люди с которыми вы работает"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
msgstr "Определить функции и адреса."
#. module: base_contact
#: help:res.partner.job,date_stop:0
msgid "Last date of job"
msgstr ""
#. module: base_contact
#: view:base.contact.installer:0
#: field:base.contact.installer,migrate:0
msgid "Migrate"
msgstr ""
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.job,name:0
msgid "Partner"
msgstr "Партнер"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_function0
msgid "Jobs at a same partner address."
msgstr "Должности с таким же адресом партнера"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
msgstr "Партнеры"
#. module: base_contact
#: field:res.partner.job,function:0
msgid "Partner Function"
msgstr "Функции партнера"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
msgstr "Состояние"
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact"
msgstr "Основной контакт"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
msgstr "Дата Остановки"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
msgid "Contact's Jobs"
msgstr "Должность контакта"
#. module: base_contact
#: view:res.partner:0
msgid "Categories"
msgstr "Категории"
#. module: base_contact
#: help:res.partner.job,sequence_partner:0
msgid ""
"Order of importance of this job title in the list of job "
"title of the linked partner"
msgstr ""
#. module: base_contact
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра архитектуры!"
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
msgstr "Расширение"
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
msgstr "Внутренний / внешний расширение телефонного номера"
#. module: base_contact
#: help:res.partner.job,phone:0
msgid "Job Phone no."
msgstr ""
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
msgstr "Функции и Адреса"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
msgstr "Контакт"
#. module: base_contact
#: help:res.partner.job,email:0
msgid "Job E-Mail"
msgstr ""
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
msgstr "Последовательность партнеров"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
msgstr "Адрес функции"
#. module: base_contact
#: field:res.partner.contact,name:0
msgid "Last Name"
msgstr "Фамилия"
#. module: base_contact
#: view:res.partner:0
#: view:res.partner.contact:0
msgid "Communication"
msgstr ""
#. module: base_contact
#: field:base.contact.installer,config_logo:0
#: field:res.partner.contact,photo:0
msgid "Image"
msgstr ""
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
msgstr "Прошлые"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_address
msgid "Partner Addresses"
msgstr ""
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
msgstr "Последовательность контакта"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
msgid "res.partner.contact"
msgstr "Контакт партнера"
#: view:res.partner.address:0
msgid "Search Contact"
msgstr ""
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
#: model:ir.ui.menu,name:base_contact.menu_partner_contact_form
#: model:ir.ui.menu,name:base_contact.menu_purchases_partner_contact_form
#: model:process.node,name:base_contact.process_node_contacts0
#: view:res.partner:0
#: field:res.partner.address,job_ids:0
msgid "Contacts"
msgstr "Контакты"
#. module: base_contact
#: view:base.contact.installer:0
msgid ""
"Due to changes in Address and Partner's relation, some of the details from "
"address are needed to be migrated into contact information."
msgstr ""
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
msgstr "Рабочие и дополнительные адреса."
#. module: base_contact
#: help:res.partner.job,address_id:0
msgid "Address which is linked to the Partner"
msgstr ""
#. module: base_contact
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr ""
#. module: base_contact
#: constraint:ir.model:0
@ -35,24 +279,117 @@ msgstr ""
"символов !"
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
msgstr "Функции партнера"
#: help:res.partner.job,other:0
msgid "Additional phone field"
msgstr "Дополнительное поле телефона"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
#: model:ir.ui.menu,name:base_contact.menu_partner_contact_form
#: model:process.node,name:base_contact.process_node_contacts0
#: view:res.partner:0
#: view:res.partner.address:0
#: field:res.partner.address,job_ids:0
msgid "Contacts"
msgstr "Контакты"
#: field:res.partner.contact,website:0
msgid "Website"
msgstr "Сайт"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
msgstr "Последовательность партнеров"
#: view:base.contact.installer:0
msgid "Otherwise these details will not be visible from address/contact."
msgstr ""
#. module: base_contact
#: field:base.contact.installer,progress:0
msgid "Configuration Progress"
msgstr ""
#. module: base_contact
#: field:res.partner.contact,email:0
#: field:res.partner.job,email:0
msgid "E-Mail"
msgstr "Эл. почта"
#. module: base_contact
#: model:ir.model,name:base_contact.model_base_contact_installer
msgid "base.contact.installer"
msgstr ""
#. module: base_contact
#: help:res.partner.contact,active:0
msgid ""
"If the active field is set to true, it will allow you to "
"hide the partner contact without removing it."
msgstr ""
#. module: base_contact
#: view:res.partner.job:0
msgid "Contact Functions"
msgstr "Функции контакта"
#. module: base_contact
#: field:res.partner.job,phone:0
msgid "Phone"
msgstr "Телефон"
#. module: base_contact
#: view:base.contact.installer:0
msgid "Do you want to migrate your Address data in Contact Data?"
msgstr ""
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
msgstr "Активен"
#. module: base_contact
#: field:res.partner.contact,function:0
msgid "Main Function"
msgstr "Личная функция"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
msgstr "Определить партнеров и их адреса."
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
msgstr "Посл-ть"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
msgid "Language"
msgstr "Язык"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Extra Information"
msgstr "Доп. информация"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
msgstr "Организации с которыми вы работаете"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
msgstr "Контакт партнера"
#. module: base_contact
#: view:res.partner.contact:0
msgid "General"
msgstr "Основной"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Photo"
msgstr ""
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
msgstr "Дата рождения"
#. module: base_contact
#: help:base.contact.installer,migrate:0
msgid "If you select this, all addresses will be migrated."
msgstr ""
#. module: base_contact
#: selection:res.partner.job,state:0
@ -74,195 +411,47 @@ msgstr "Функции сотрудника партнера"
msgid "Other"
msgstr "Другое"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
msgstr "Функции контакта"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
msgstr "Адрес партнера"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
msgstr "Кол-во контактных лиц"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
msgstr "Дополнительное поле телефона"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
msgid "Function"
msgstr "Функция"
#. module: base_contact
#: field:res.partner.job,fax:0
msgid "Fax"
msgstr "Факс"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
msgid "Language"
msgstr "Язык"
#. module: base_contact
#: field:res.partner.job,phone:0
msgid "Phone"
msgstr "Телефон"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
msgstr "Определить контакты и функции"
#. module: base_contact
#: field:res.partner.contact,title:0
msgid "Title"
msgstr "Название"
#. module: base_contact
#: view:res.partner.job:0
msgid "Contact Functions"
msgstr "Функции контакта"
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
msgid "Base Contact"
msgstr "Основной контакт"
#. module: base_contact
#: help:res.partner.job,sequence_partner:0
msgid ""
"Order of importance of this job title in the list of job title of the linked "
"partner"
msgstr ""
"С учетом важности этой работы названия в списке Должность связанного партнера"
#. module: base_contact
#: field:res.partner.contact,email:0
#: field:res.partner.job,email:0
msgid "E-Mail"
msgstr "Эл. почта"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
msgstr "Дата Остановки"
#. module: base_contact
#: view:res.partner:0
#: field:res.partner.job,address_id:0
msgid "Address"
msgstr "Адрес"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
#: model:ir.ui.menu,name:base_contact.menu_action_res_partner_job
msgid "Contact's Jobs"
msgstr "Должность контакта"
#. module: base_contact
#: field:res.partner.contact,country_id:0
msgid "Nationality"
msgstr "Национальность"
#. module: base_contact
#: help:res.partner.job,sequence_contact:0
msgid ""
"Order of importance of this address in the list of addresses of the linked "
"contact"
msgstr "Уровень важности этого адреса в списке адресов связанного контакта"
#. module: base_contact
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
msgstr "Основная должность"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
msgstr "Определить контакты и функции"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
msgstr "Функции контакта"
#. module: base_contact
#: view:res.partner:0
msgid "Categories"
msgstr "Категории"
#: field:res.partner.job,address_id:0
msgid "Address"
msgstr "Адрес"
#. module: base_contact
#: field:res.partner.contact,function_id:0
msgid "Main Function"
msgstr "Личная функция"
#: field:res.partner.contact,country_id:0
msgid "Nationality"
msgstr "Национальность"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
msgstr "Определить партнеров и их адреса."
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Open Jobs"
msgstr ""
#. module: base_contact
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра архитектуры!"
#. module: base_contact
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact Process"
msgstr "Основной контакт"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
msgstr "Посл-ть"
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
msgstr "Расширение"
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
msgstr "Моб. тел."
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
msgstr "Внутренний / внешний расширение телефонного номера"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
msgstr "Люди с которыми вы работает"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Extra Information"
msgstr "Доп. информация"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
msgstr "Функции и Адреса"
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
msgstr "Активен"
#. module: base_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
msgstr "Контакт"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
msgstr "Организации с которыми вы работаете"
#: field:base.contact.installer,name:0
msgid "Name"
msgstr ""
#. module: base_contact
#: field:res.partner.contact,partner_id:0
@ -270,24 +459,14 @@ msgid "Main Employer"
msgstr "Основной работодатель"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
msgstr "Адрес функции"
#: model:ir.actions.act_window,name:base_contact.action_base_contact_installer
msgid "Address Migration"
msgstr ""
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Partner Contacts"
msgstr "Контакты партнера"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
msgstr "Контакт партнера"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
msgstr "Партнеры"
#: view:res.partner:0
msgid "Postal Address"
msgstr ""
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
@ -296,45 +475,9 @@ msgid "Addresses"
msgstr "Адреса"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
msgstr "Рабочие и дополнительные адреса."
#. module: base_contact
#: field:res.partner.contact,name:0
msgid "Last Name"
msgstr "Фамилия"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
msgstr "Состояние"
#. module: base_contact
#: view:res.partner.contact:0
#: view:res.partner.job:0
msgid "General"
msgstr "Основной"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
msgstr "Прошлые"
#. module: base_contact
#: view:res.partner.contact:0
msgid "General Information"
msgstr "Общая информация"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_function0
msgid "Jobs at a same partner address."
msgstr "Должности с таким же адресом партнера"
#. module: base_contact
#: field:res.partner.job,name:0
msgid "Partner"
msgstr "Партнер"
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
msgstr "Адрес партнера"
#. module: base_contact
#: field:res.partner.job,date_start:0
@ -342,16 +485,31 @@ msgid "Date Start"
msgstr "Дата начала"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
msgstr "Определить функции и адреса."
#: help:res.partner.job,sequence_contact:0
msgid ""
"Order of importance of this address in the list of "
"addresses of the linked contact"
msgstr ""
#. module: base_contact
#: field:res.partner.contact,website:0
msgid "Website"
msgstr "Сайт"
#~ msgid "General Information"
#~ msgstr "Общая информация"
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
msgstr "Дата рождения"
#~ msgid "res.partner.contact"
#~ msgstr "Контакт партнера"
#~ msgid ""
#~ "Order of importance of this job title in the list of job title of the linked "
#~ "partner"
#~ msgstr ""
#~ "С учетом важности этой работы названия в списке Должность связанного партнера"
#~ msgid "Base Contact Process"
#~ msgstr "Основной контакт"
#~ msgid "Partner Contacts"
#~ msgstr "Контакты партнера"
#~ msgid ""
#~ "Order of importance of this address in the list of addresses of the linked "
#~ "contact"
#~ msgstr "Уровень важности этого адреса в списке адресов связанного контакта"

View File

@ -6,35 +6,70 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-08-03 03:17+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 19:14+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: 2010-09-29 04:59+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_vat
#: model:ir.module.module,description:base_vat.module_meta_information
#: code:addons/base_vat/base_vat.py:0
#, python-format
msgid ""
"Enable the VAT Number for the partner. Check the validity of that VAT Number."
msgstr ""
"Разрешить использование кода налога для партнера. Проверьте правильность "
"кода налога."
"The Vat does not seems to be correct. You should have entered something like "
"this %s"
msgstr "НДС не кажется верным. Вы должны ввести что-то вроде этого: %s"
#. module: base_vat
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Некорректный формат XML структуры для просмотра."
#. module: base_vat
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Название объекта должно начинаться с x_ и не должно содержать специальных "
"символов !"
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "Base VAT - To check VAT number validity"
msgstr "База НДС - для проверки правильности НДС"
#. module: base_vat
#: code:addons/base_vat/base_vat.py:0
#, python-format
msgid "The VAT is invalid, It should begin with the country code"
msgstr "НДС неправильный, он должен начинаться с кода страны"
#. module: base_vat
#: help:res.partner,vat_subjected:0
msgid ""
"Check this box if the partner is subjected to the VAT. It will be used for "
"the VAT legal statement."
msgstr ""
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_partner
msgid "Partner"
msgstr "Партнёр"
#. module: base_vat
#: field:res.partner,vat_subjected:0
msgid "VAT Legal Statement"
msgstr "Действующий код налога"
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "VAT"
msgstr "Код налога"
#~ msgid "VAT"
#~ msgstr "Код налога"
#~ msgid ""
#~ "Enable the VAT Number for the partner. Check the validity of that VAT Number."
#~ msgstr ""
#~ "Разрешить использование кода налога для партнера. Проверьте правильность "
#~ "кода налога."

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 21:49+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:14+0000\n"
"Last-Translator: Carlos-smile <Unknown>\n"
"Language-Team: Spanish <es@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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: claim_from_delivery

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 13:14+0000\n"
"PO-Revision-Date: 2010-10-25 18:27+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@ -445,13 +445,13 @@ msgstr "Zaktualizuj datę"
#. module: crm
#: help:crm.meeting,count:0
msgid "Repeat max that times"
msgstr ""
msgstr "Powtórz maksymalnie razy"
#. module: crm
#: view:crm.lead2opportunity.action:0
#: field:crm.lead2opportunity.action,name:0
msgid "Select Action"
msgstr ""
msgstr "Wybierz akcję"
#. module: crm
#: field:base.action.rule,trg_categ_id:0
@ -469,17 +469,17 @@ msgstr "Kategoria"
#. module: crm
#: view:crm.lead.report:0
msgid "#Opportunities"
msgstr ""
msgstr "#Szans"
#. module: crm
#: model:crm.case.resource.type,name:crm.type_oppor2
msgid "Campaign 1"
msgstr ""
msgstr "Kampania 1"
#. module: crm
#: model:crm.case.resource.type,name:crm.type_oppor1
msgid "Campaign 2"
msgstr ""
msgstr "Kampania 2"
#. module: crm
#: view:crm.meeting:0
@ -489,12 +489,12 @@ msgstr "Prywatność"
#. module: crm
#: view:crm.lead.report:0
msgid "Opportunity Analysis"
msgstr ""
msgstr "Analiza szans"
#. module: crm
#: help:crm.meeting,location:0
msgid "Location of Event"
msgstr ""
msgstr "Miejsce zdarzenia"
#. module: crm
#: field:crm.meeting,rrule:0
@ -504,7 +504,7 @@ msgstr "Reguła rekurencyjna"
#. module: crm
#: help:crm.installer,fetchmail:0
msgid "Allows you to receive E-Mails from POP/IMAP server."
msgstr ""
msgstr "Pozwala otrzymywać maile z serwera PO/IMAP."
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
@ -514,7 +514,7 @@ msgstr "Spotkanie albo rozmowa telefoniczna w sprawie szansy"
#. module: crm
#: model:process.node,note:crm.process_node_leads0
msgid "Very first contact with new prospect"
msgstr "Pierwszy kontakt z tą okazją"
msgstr "Pierwszy kontakt z nowym potencjalnym klientem"
#. module: crm
#: code:addons/crm/crm_lead.py:0
@ -564,7 +564,7 @@ msgstr "Nie uruchomiony"
#: view:crm.send.mail:0
#: model:ir.actions.act_window,name:crm.action_crm_reply_mail
msgid "Reply to last Mail"
msgstr ""
msgstr "Odpowiedz na ostatni mail"
#. module: crm
#: field:crm.lead,email:0
@ -584,7 +584,7 @@ msgstr ""
#. module: crm
#: field:crm.meeting,count:0
msgid "Count"
msgstr ""
msgstr "Liczba"
#. module: crm
#: selection:crm.lead.report,month:0
@ -608,7 +608,7 @@ msgstr "Ci ludzie otrzymają wiadomość"
#: view:crm.meeting:0
#: field:crm.meeting,name:0
msgid "Summary"
msgstr ""
msgstr "Podsumowanie"
#. module: crm
#: view:crm.segmentation:0
@ -629,6 +629,8 @@ msgid ""
"Allows you to link your e-mail to OpenERP's documents. You can attach it to "
"any existing one in OpenERP or create a new one."
msgstr ""
"Pozwala połączyć twoje wiadomości z dokumentami OpenERP. Możesz połączyć je "
"z dowolnym istniejącym dokumentem lub utworzyć nowy dokument."
#. module: crm
#: view:crm.case.categ:0
@ -648,12 +650,12 @@ msgstr ""
#. module: crm
#: view:crm.segmentation:0
msgid "Profiling Options"
msgstr ""
msgstr "Opcje profilowania"
#. module: crm
#: view:crm.phonecall.report:0
msgid "#Phone calls"
msgstr ""
msgstr "# telefonów"
#. module: crm
#: view:crm.lead:0
@ -666,13 +668,13 @@ msgid ""
"The channels represent the different communication "
"modes available with the customer. With each commercial opportunity, you can "
"indicate the canall which is this opportunity source."
msgstr ""
msgstr "Kanały są różnymi sposobami komunikowania się z klientem."
#. module: crm
#: code:addons/crm/crm_meeting.py:0
#, python-format
msgid "The meeting '%s' has been confirmed."
msgstr ""
msgstr "Spotkanie '%s' zostało potwierdzone."
#. module: crm
#: field:crm.case.section,user_id:0

View File

@ -6,16 +6,21 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-09-29 10:27+0000\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 19:14+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: 2010-09-30 04:43+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
#: view:crm_profiling.questionnaire:0
msgid "Questions List"
msgstr "Опросный лист"
#. module: crm_profiling
#: constraint:ir.model:0
msgid ""
@ -24,6 +29,11 @@ msgstr ""
"Название объекта должно начинаться с x_ и не должно содержать специальных "
"символов !"
#. module: crm_profiling
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: crm_profiling
#: field:crm_profiling.answer,question_id:0
#: field:crm_profiling.question,name:0
@ -42,14 +52,14 @@ msgid "Child Profiles"
msgstr "Подчиненные профили"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
msgid "crm_profiling management"
msgstr "Управление профилями CRM"
#: view:crm.segmentation:0
msgid "Partner Segmentations"
msgstr "Сегментация партнеров"
#. module: crm_profiling
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Ошибка ! Нельзя создать зацикленные меню."
#. module: crm_profiling
#: field:crm_profiling.answer,name:0
@ -57,12 +67,23 @@ msgstr "Недопустимое имя модели в определении
msgid "Answer"
msgstr "Ответ"
#. module: crm_profiling
#: model:ir.model,name:crm_profiling.model_crm_segmentation
msgid "Partner Segmentation"
msgstr ""
#. module: crm_profiling
#: view:res.partner:0
msgid "Profiling"
msgstr "Профилирование"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
msgid "Crm Profiling management - To Perform Segmentation within Partners"
msgstr ""
#. module: crm_profiling
#: view:crm_profiling.questionnaire:0
#: field:crm_profiling.questionnaire,description:0
msgid "Description"
msgstr "Описание"
@ -102,11 +123,12 @@ msgid "Questionnaires"
msgstr "Опросники"
#. module: crm_profiling
#: field:crm_profiling.questionnaire,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_questionnaire
#: wizard_view:open_questionnaire,init:0
msgid "Questionnaire"
msgstr "Опросник"
#: help:crm.segmentation,profiling_active:0
msgid ""
"Check this box if you want to use this tab as "
"part of the segmentation rule. If not checked, "
"the criteria beneath will be ignored"
msgstr ""
#. module: crm_profiling
#: constraint:crm.segmentation:0
@ -129,13 +151,6 @@ msgstr "Доступные ответы"
msgid "Included Answers"
msgstr "Включенные Ответы"
#. module: crm_profiling
#: help:crm.segmentation,profiling_active:0
msgid ""
"Check this box if you want to use this tab as part of the segmentation rule. "
"If not checked, the criteria beneath will be ignored"
msgstr ""
#. module: crm_profiling
#: view:crm_profiling.question:0
#: field:crm_profiling.questionnaire,questions_ids:0
@ -156,9 +171,18 @@ msgid "Cancel"
msgstr "Отмена"
#. module: crm_profiling
#: view:crm.segmentation:0
msgid "Partner Segmentations"
msgstr "Сегментация партнеров"
#: model:ir.model,name:crm_profiling.model_res_partner
msgid "Partner"
msgstr "Партнёр"
#. module: crm_profiling
#: code:addons/crm_profiling/crm_profiling.py:0
#: field:crm_profiling.questionnaire,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_questionnaire
#: wizard_view:open_questionnaire,init:0
#, python-format
msgid "Questionnaire"
msgstr "Опросник"
#. module: crm_profiling
#: model:ir.actions.wizard,name:crm_profiling.wizard_open_questionnaire
@ -169,3 +193,6 @@ msgstr "Используя опросник"
#: wizard_button:open_questionnaire,open,compute:0
msgid "Save Data"
msgstr "Сохранить данные"
#~ msgid "crm_profiling management"
#~ msgstr "Управление профилями CRM"

View File

@ -6,16 +6,367 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-10-16 09:49+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 19:23+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: 2010-10-17 04:53+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Ref."
msgstr "Ссылка заказа"
#. module: delivery
#: model:product.template,name:delivery.delivery_product_product_template
msgid "Delivery by Poste"
msgstr "Доставка почтой"
#. module: delivery
#: view:delivery.grid:0
msgid "Destination"
msgstr "Место назначения"
#. module: delivery
#: field:stock.move,weight_net:0
msgid "Net weight"
msgstr "Вес нетто"
#. module: delivery
#: code:addons/delivery/delivery.py:0
#, python-format
msgid "No price available !"
msgstr "Нет каталога !"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery Grid Line"
msgstr ""
#. module: delivery
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: delivery
#: view:delivery.grid:0
msgid "Delivery grids"
msgstr "Расценки на доставку"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
msgstr "Объем"
#. module: delivery
#: field:delivery.grid,line_ids:0
msgid "Grid Line"
msgstr "Разделяемая строка"
#. module: delivery
#: model:ir.actions.report.xml,name:delivery.report_shipping
msgid "Delivery order"
msgstr "Заказ на доставку"
#. module: delivery
#: view:res.partner:0
msgid "Deliveries Properties"
msgstr "Свойства доставки"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
msgid "Picking to be invoiced"
msgstr ""
#. module: delivery
#: help:delivery.grid,sequence:0
msgid "Gives the sequence order when displaying a list of delivery grid."
msgstr ""
#. module: delivery
#: view:delivery.grid:0
#: field:delivery.grid,country_ids:0
msgid "Countries"
msgstr "Страны"
#. module: delivery
#: report:sale.shipping:0
msgid "Delivery Order :"
msgstr "Заказ на доставку:"
#. module: delivery
#: model:ir.model,name:delivery.model_sale_order
msgid "Sale Order"
msgstr "Заказ на продажу"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
msgid "Variable Factor"
msgstr "Переменный фактор"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
msgid "Fixed"
msgstr "Фиксированный"
#. module: delivery
#: view:delivery.sale.order:0
#: field:delivery.sale.order,carrier_id:0
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form
#: field:res.partner,property_delivery_carrier:0
msgid "Delivery Method"
msgstr "Метод доставки"
#. module: delivery
#: help:delivery.grid,active:0
msgid ""
"If the active field is set to true, it will allow you to hide the delivery "
"grid without removing it."
msgstr ""
#. module: delivery
#: model:ir.model,name:delivery.model_stock_move
msgid "Stock Move"
msgstr "Движение ТМЦ"
#. module: delivery
#: code:addons/delivery/delivery.py:0
#, python-format
msgid "No line matched this order in the choosed delivery grids !"
msgstr ""
#. module: delivery
#: field:stock.picking,carrier_tracking_ref:0
msgid "Carrier Tracking Ref"
msgstr ""
#. module: delivery
#: field:stock.picking,weight_net:0
msgid "Net Weight"
msgstr "Вес нетто"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
msgstr "Разделяемые строки"
#. module: delivery
#: view:delivery.grid:0
msgid "Grid definition"
msgstr "Определение разделения"
#. module: delivery
#: view:delivery.sale.order:0
msgid "_Cancel"
msgstr "_Отмена"
#. module: delivery
#: field:delivery.grid.line,operator:0
msgid "Operator"
msgstr "Оператор"
#. module: delivery
#: model:ir.model,name:delivery.model_res_partner
msgid "Partner"
msgstr "Партнёр"
#. module: delivery
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Ошибка ! Нельзя создать зацикленные меню."
#. module: delivery
#: report:sale.shipping:0
msgid "Invoiced to"
msgstr "счет-фактура"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_picking
msgid "Picking List"
msgstr "Комплектовочный лист"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_sale_order
msgid "Make Delievery"
msgstr "Сделать доставку"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
msgid ""
"Allows you to add delivery methods in sale orders and picking.\n"
" You can define your own carrier and delivery grids for prices.\n"
" When creating invoices from picking, OpenERP is able to add and compute "
"the shipping line.\n"
"\n"
" "
msgstr ""
#. module: delivery
#: code:addons/delivery/stock.py:0
#, python-format
msgid "Warning"
msgstr "Внимание"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
msgid "Grid"
msgstr "Разделение"
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
msgstr "Почтовый индекс получателя"
#. module: delivery
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра архитектуры!"
#. module: delivery
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
"Ошибка. Единицы продажи и единицы измерения должны принадлежать к разным "
"категориям."
#. module: delivery
#: report:sale.shipping:0
msgid "Order Date"
msgstr "Дата заказа"
#. module: delivery
#: field:delivery.grid,name:0
msgid "Grid Name"
msgstr "Имя разделения"
#. module: delivery
#: view:stock.move:0
msgid "Weights"
msgstr "Вес"
#. module: delivery
#: field:stock.picking,number_of_packages:0
msgid "Number of Packages"
msgstr "Количество упаковок"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: report:sale.shipping:0
#: field:stock.move,weight:0
#: field:stock.picking,weight:0
msgid "Weight"
msgstr "Вес"
#. module: delivery
#: field:sale.order,carrier_id:0
msgid "Delivery method"
msgstr "Метод доставки"
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:0
#, python-format
msgid "No grid available !"
msgstr ""
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid ">="
msgstr ">="
#. module: delivery
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
"Ошибка. ЕИМ по умолчанию и закупочная ЕИМ должны иметь одинаковую категорию."
#. module: delivery
#: code:addons/delivery/wizard/delivery_sale_order.py:0
#, python-format
msgid "Order not in draft state !"
msgstr "Заказ не в состоянии \"Черновик\" !"
#. module: delivery
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
msgstr "Ошибка! Вы не можете создать рекурсивных связанных участников."
#. module: delivery
#: report:sale.shipping:0
msgid "Lot"
msgstr "Партия"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
msgid "Delivery Grid"
msgstr "Расценки на доставку"
#. module: delivery
#: field:delivery.carrier,active:0
#: field:delivery.grid,active:0
msgid "Active"
msgstr "Активен"
#. module: delivery
#: report:sale.shipping:0
msgid "Shipping Date"
msgstr "Дата отгрузки"
#. module: delivery
#: field:delivery.carrier,product_id:0
msgid "Delivery Product"
msgstr "Услуга или изделие, соответствующее доставке"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Condition"
msgstr "Условие"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
msgid "Cost Price"
msgstr "Себестоимость"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
#: field:delivery.grid.line,type:0
msgid "Variable"
msgstr "Переменная"
#. module: delivery
#: help:res.partner,property_delivery_carrier:0
msgid "This delivery method will be used when invoicing from picking."
msgstr ""
#. module: delivery
#: field:delivery.grid.line,max_value:0
msgid "Maximum Value"
msgstr "Максимальное значение"
#. module: delivery
#: report:sale.shipping:0
msgid "Quantity"
msgstr "Количество"
#. module: delivery
#: field:delivery.grid,zip_from:0
msgid "Start Zip"
msgstr "Почтовый индекс отправителя"
#. module: delivery
#: help:sale.order,carrier_id:0
msgid ""
"Complete this field if you plan to invoice the shipping based on picking."
msgstr ""
#. module: delivery
#: constraint:ir.model:0
msgid ""
@ -25,9 +376,9 @@ msgstr ""
"символов !"
#. module: delivery
#: selection:delivery.grid.line,operator:0
msgid ">="
msgstr ">="
#: field:delivery.carrier,partner_id:0
msgid "Carrier Partner"
msgstr "Партнер по доставке"
#. module: delivery
#: view:res.partner:0
@ -35,61 +386,20 @@ msgid "Sales & Purchases"
msgstr "Продажи и закупки"
#. module: delivery
#: view:delivery.grid:0
msgid "Destination"
msgstr "Место назначения"
#: view:delivery.sale.order:0
msgid "Create Deliveries"
msgstr "Создать доставки"
#. module: delivery
#: model:product.template,name:delivery.delivery_product_product_template
msgid "Delivery by Poste"
msgstr "Доставка почтой"
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
#: view:sale.order:0
msgid "Delivery Costs"
msgstr "Стоимость поставки"
#. module: delivery
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра архитектуры!"
#. module: delivery
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
msgstr "Ошибка! Вы не можете создать рекурсивных связанных участников."
#. module: delivery
#: field:delivery.grid,state_ids:0
msgid "States"
msgstr "Cостояния"
#. module: delivery
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: delivery
#: help:res.partner,property_delivery_carrier:0
msgid "This delivery method will be used when invoicing from packing."
msgstr ""
"Этот метод доставки должен использоваться при фактурировании на основании "
"данных упаковки."
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
msgid "Delivery Grid"
msgstr "Расценки на доставку"
#. module: delivery
#: field:delivery.grid,zip_from:0
msgid "Start Zip"
msgstr "Почтовый индекс отправителя"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
msgid "Fixed"
msgstr "Фиксированный"
#. module: delivery
#: field:delivery.grid,line_ids:0
msgid "Grid Line"
msgstr "Разделяемая строка"
#: report:sale.shipping:0
msgid "Description"
msgstr "Описание"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
@ -98,47 +408,23 @@ msgid "Delivery Pricelist"
msgstr "Каталог доставки"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree5
#: model:ir.ui.menu,name:delivery.menu_action_picking_tree5
msgid "Generate Draft Invoices On Receptions"
msgstr "Генерировать черновики счетов при получении"
#: field:delivery.carrier,price:0
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Price"
msgstr "Цена"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery line of grid"
msgstr "Разделяемая строка поставки"
#: code:addons/delivery/wizard/delivery_sale_order.py:0
#, python-format
msgid "No grid matching for this carrier !"
msgstr ""
#. module: delivery
#: model:ir.ui.menu,name:delivery.menu_delivery
msgid "Delivery"
msgstr "Доставка"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
msgstr "Разделяемые строки"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
msgid "Grid"
msgstr "Разделение"
#. module: delivery
#: view:res.partner:0
msgid "Deliveries Properties"
msgstr "Свойства доставки"
#. module: delivery
#: field:delivery.carrier,active:0
#: field:delivery.grid,active:0
msgid "Active"
msgstr "Активен"
#. module: delivery
#: view:delivery.grid:0
msgid "Grid definition"
msgstr "Определение разделения"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
@ -151,24 +437,10 @@ msgid "="
msgstr "="
#. module: delivery
#: field:delivery.carrier,product_id:0
msgid "Delivery Product"
msgstr "Услуга или изделие, соответствующее доставке"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Condition"
msgstr "Условие"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_carrier
msgid "Carrier and delivery grids"
msgstr "Разделение поставки и перевозчика"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
msgid "Cost Price"
msgstr "Себестоимость"
#: code:addons/delivery/stock.py:0
#, python-format
msgid "The carrier %s (id: %d) has no delivery grid!"
msgstr ""
#. module: delivery
#: field:delivery.grid.line,name:0
@ -176,77 +448,26 @@ msgid "Name"
msgstr "Название"
#. module: delivery
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
"Ошибка. Единицы продажи и единицы измерения должны принадлежать к разным "
"категориям."
#. module: delivery
#: field:delivery.grid,country_ids:0
msgid "Countries"
msgstr "Страны"
#. module: delivery
#: constraint:product.template:0
#: help:delivery.carrier,active:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
"If the active field is set to true, it will allow you to hide the delivery "
"carrier without removing it."
msgstr ""
"Ошибка. ЕИМ по умолчанию и закупочная ЕИМ должны иметь одинаковую категорию."
#. module: delivery
#: view:sale.order:0
msgid "Notes"
msgstr "Примечания"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
msgid "Variable Factor"
msgstr "Переменный фактор"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
#: field:delivery.grid.line,type:0
msgid "Variable"
msgstr "Переменная"
#. module: delivery
#: field:delivery.grid,name:0
msgid "Grid Name"
msgstr "Имя разделения"
#. module: delivery
#: view:delivery.carrier:0
#: field:delivery.carrier,name:0
#: field:delivery.grid,carrier_id:0
#: model:ir.model,name:delivery.model_delivery_carrier
#: report:sale.shipping:0
#: field:stock.picking,carrier_id:0
msgid "Carrier"
msgstr "Доставка"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
msgstr "Объем"
#. module: delivery
#: field:delivery.grid.line,max_value:0
msgid "Maximum Value"
msgstr "Максимальное значение"
#. module: delivery
#: wizard_button:delivery.sale.order,init,delivery:0
msgid "Add Delivery Costs"
msgstr "Добавить стоимость доставки"
#. module: delivery
#: wizard_field:delivery.sale.order,init,carrier_id:0
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form
#: field:res.partner,property_delivery_carrier:0
msgid "Delivery Method"
msgstr "Метод доставки"
#: view:delivery.sale.order:0
msgid "_Apply"
msgstr "_Применить"
#. module: delivery
#: field:sale.order,id:0
@ -254,9 +475,11 @@ msgid "ID"
msgstr "Идентификатор"
#. module: delivery
#: field:delivery.grid.line,operator:0
msgid "Operator"
msgstr "Оператор"
#: code:addons/delivery/wizard/delivery_sale_order.py:0
#, python-format
msgid "The order state have to be draft to add delivery lines."
msgstr ""
"Состояние заказа должно быть \"Черновик\" для добавления позиций доставки."
#. module: delivery
#: model:ir.module.module,shortdesc:delivery.module_meta_information
@ -268,96 +491,72 @@ msgstr "Перевозчики и поставки"
msgid "Delivery Grids"
msgstr "Разделение поставки"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,weight:0
msgid "Weight"
msgstr "Вес"
#. module: delivery
#: field:delivery.grid,sequence:0
msgid "Sequence"
msgstr "Последовательность"
#. module: delivery
#: field:delivery.carrier,partner_id:0
msgid "Carrier Partner"
msgstr "Партнер по доставке"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
msgid ""
"Allows you to add delivery methods in sales orders and packing. You can "
"define your own carrier and delivery grids for prices. When creating "
"invoices from picking, Open ERP is able to add and compute the shipping line."
msgstr ""
"Позволяет добавить методы доставки в заказы на продажу и упаковку. Вы можете "
"определить своего собственного перевозчика и выполнить разделение поставка "
"для определения стоимости. При создании счета-фактуры на основании упаковки, "
"Open ERP имеет возможность добавлять и вычислить строки доставки."
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
msgstr "Почтовый индекс получателя"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
#: model:ir.ui.menu,name:delivery.menu_action_picking_tree3
msgid "Packing to be invoiced"
msgstr "Фактурирование по упаковке"
#. module: delivery
#: help:sale.order,carrier_id:0
msgid ""
"Complete this field if you plan to invoice the shipping based on packing."
msgstr ""
"Заполните это поле, если вы планируете счет доставки основанный на упаковке."
#. module: delivery
#: model:ir.actions.wizard,name:delivery.wizard_deliver_line_add
msgid "Delivery Costs"
msgstr "Стоимость поставки"
#. module: delivery
#: field:delivery.grid.line,list_price:0
msgid "Sale Price"
msgstr "Цена продажи"
#. module: delivery
#: view:delivery.grid:0
#: field:delivery.grid,state_ids:0
msgid "States"
msgstr "Cостояния"
#. module: delivery
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Ошибка: Неправильный штрих-код"
#. module: delivery
#: view:delivery.grid:0
msgid "Delivery grids"
msgstr "Расценки на доставку"
#. module: delivery
#: wizard_button:delivery.sale.order,init,end:0
msgid "Cancel"
msgstr "Отмена"
#. module: delivery
#: field:sale.order,carrier_id:0
msgid "Delivery method"
msgstr "Метод доставки"
#. module: delivery
#: field:delivery.carrier,price:0
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Price"
msgstr "Цена"
#. module: delivery
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr "НДС выглядит неправильно"
#. module: delivery
#: field:delivery.grid.line,price_type:0
msgid "Price Type"
msgstr "Тип цены"
#~ msgid "Generate Draft Invoices On Receptions"
#~ msgstr "Генерировать черновики счетов при получении"
#~ msgid "Notes"
#~ msgstr "Примечания"
#~ msgid "Cancel"
#~ msgstr "Отмена"
#~ msgid "The VAT doesn't seem to be correct."
#~ msgstr "НДС выглядит неправильно"
#~ msgid "Delivery line of grid"
#~ msgstr "Разделяемая строка поставки"
#~ msgid "Carrier and delivery grids"
#~ msgstr "Разделение поставки и перевозчика"
#~ msgid "Add Delivery Costs"
#~ msgstr "Добавить стоимость доставки"
#~ msgid "Packing to be invoiced"
#~ msgstr "Фактурирование по упаковке"
#~ msgid ""
#~ "Complete this field if you plan to invoice the shipping based on packing."
#~ msgstr ""
#~ "Заполните это поле, если вы планируете счет доставки основанный на упаковке."
#~ msgid ""
#~ "Allows you to add delivery methods in sales orders and packing. You can "
#~ "define your own carrier and delivery grids for prices. When creating "
#~ "invoices from picking, Open ERP is able to add and compute the shipping line."
#~ msgstr ""
#~ "Позволяет добавить методы доставки в заказы на продажу и упаковку. Вы можете "
#~ "определить своего собственного перевозчика и выполнить разделение поставка "
#~ "для определения стоимости. При создании счета-фактуры на основании упаковки, "
#~ "Open ERP имеет возможность добавлять и вычислить строки доставки."
#~ msgid "This delivery method will be used when invoicing from packing."
#~ msgstr ""
#~ "Этот метод доставки должен использоваться при фактурировании на основании "
#~ "данных упаковки."

View File

@ -179,8 +179,8 @@
<field name="register_min"/>
<field name="register_current"/>
<field name="section_id" invisible="context.get('invisible_section', True)"/>
<field name="state"/>
<field name="user_id"/>
<field name="state"/>
<button string="Confirm Event" help="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
<button string="Cancel Event" help="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
<button string="Event Done" help="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
@ -280,7 +280,7 @@
res_model="event.registration"
src_model="event.event"
view_mode="tree,form,calendar,graph"
context="{'search_default_event_id': active_id}"
domain="[('event_id','=',active_id)]"
view_type="form"/>
<act_window

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 12:13+0000\n"
"PO-Revision-Date: 2010-10-25 18:28+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
@ -357,7 +357,7 @@ msgstr "Kategoria nadrzędna"
#. module: hr
#: constraint:hr.employee.category:0
msgid "Error ! You cannot create recursive Categories."
msgstr ""
msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych kategorii."
#. module: hr
#: view:hr.department:0
@ -376,7 +376,7 @@ msgstr "Kontakt do pracownika"
#. module: hr
#: view:board.board:0
msgid "My Board"
msgstr ""
msgstr "Moja konsola"
#. module: hr
#: selection:hr.employee,gender:0
@ -398,19 +398,19 @@ msgstr "Kategoria pracownika"
#. module: hr
#: field:hr.installer,config_logo:0
msgid "Image"
msgstr ""
msgstr "Obraz"
#. module: hr
#: model:process.process,name:hr.process_process_employeecontractprocess0
msgid "Employee Contract"
msgstr ""
msgstr "Umowa pracownika"
#. module: hr
#: help:hr.installer,hr_evaluation:0
msgid ""
"Lets you create and manage the periodic evaluation and performance review of "
"employees."
msgstr ""
msgstr "Pozwala ci zarządzać okresowymi ocenami i osiągnięciami pracowników."
#. module: hr
#: model:ir.model,name:hr.model_hr_department
@ -420,12 +420,12 @@ msgstr ""
#. module: hr
#: help:hr.employee,parent_id:0
msgid "It is linked with manager of Department"
msgstr ""
msgstr "Jest związane z szefem departamentu"
#. module: hr
#: field:hr.installer,hr_recruitment:0
msgid "Recruitment Process"
msgstr ""
msgstr "Proces rekrutacji"
#. module: hr
#: field:hr.employee,category_ids:0
@ -436,7 +436,7 @@ msgstr "Kategoria"
#. module: hr
#: help:hr.employee,bank_account_id:0
msgid "Employee bank salary account"
msgstr ""
msgstr "Konto bankowe pracownika dla płacy"
#. module: hr
#: field:hr.department,note:0
@ -451,12 +451,12 @@ msgstr "Informacje kontaktowe"
#. module: hr
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr ""
msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych menu."
#. module: hr
#: model:ir.actions.act_window,name:hr.open_board_hr_manager
msgid "HR Manager Dashboard"
msgstr ""
msgstr "Konsola Dyrektora kadr"
#. module: hr
#: view:hr.employee:0

View File

@ -200,14 +200,12 @@ class hr_evaluation(osv.osv):
for employee in employee_obj.browse(cr, uid, [employee_id], context=context):
if employee and employee.evaluation_plan_id and employee.evaluation_plan_id.id:
evaluation_plan_id=employee.evaluation_plan_id.id
employee_ids=employee_obj.search(cr, uid, [('parent_id','=',employee.id)], context=context)
return {'value': {'plan_id':evaluation_plan_id}}
def button_plan_in_progress(self, cr, uid, ids, context=None):
hr_eval_inter_obj = self.pool.get('hr.evaluation.interview')
if context is None:
context = {}
apprai_id = []
for evaluation in self.browse(cr, uid, ids, context=context):
wait = False
for phase in evaluation.plan_id.phase_ids:

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 13:12+0000\n"
"PO-Revision-Date: 2010-10-25 18:31+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
@ -355,12 +355,12 @@ msgstr "Pozostało dni urlopu"
#: view:hr.holidays:0
#: field:hr.holidays,state:0
msgid "State"
msgstr ""
msgstr "Stan"
#. module: hr_holidays
#: model:ir.model,name:hr_holidays.model_hr_holidays_remaining_leaves_user
msgid "Total holidays by type"
msgstr ""
msgstr "Syma urlopów wg typów"
#. module: hr_holidays
#: view:available.holidays.report:0
@ -384,7 +384,7 @@ msgstr "Ogólne"
#: view:available.holidays.report:0
#: view:hr.holidays:0
msgid "Type"
msgstr ""
msgstr "Typ"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
@ -394,7 +394,7 @@ msgstr "Czerwony"
#. module: hr_holidays
#: view:hr.holidays.remaining.leaves.user:0
msgid "Leaves by Type"
msgstr ""
msgstr "Nieobecności wg typów"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
@ -416,17 +416,17 @@ msgstr "Liczba dni"
#. module: hr_holidays
#: help:hr.holidays,category_id:0
msgid "Category Of employee"
msgstr ""
msgstr "Kategoria pracownika"
#. module: hr_holidays
#: view:board.board:0
msgid "Remaining Leave by Type and User"
msgstr ""
msgstr "Urlop do wykorzystania wg Typu i Użytkowników"
#. module: hr_holidays
#: selection:available.holidays.report,month:0
msgid "July"
msgstr ""
msgstr "Lipiec"
#. module: hr_holidays
#: constraint:ir.ui.view:0
@ -439,11 +439,13 @@ msgid ""
"If its True then its Allocation/Request have to be validated by second "
"validator"
msgstr ""
"Jeśli to jest prawda, to Wniosek musi być zatwierdzony przez jeszcze jednego "
"zatiwerdzającego"
#. module: hr_holidays
#: selection:hr.holidays,state:0
msgid "Waiting Approval"
msgstr ""
msgstr "Oczekuje na aprobatę"
#. module: hr_holidays
#: field:hr.holidays.summary.employee,emp:0
@ -453,7 +455,7 @@ msgstr "Pracowników"
#. module: hr_holidays
#: view:available.holidays.report:0
msgid " Month "
msgstr ""
msgstr " Miesiąc "
#. module: hr_holidays
#: help:hr.holidays.status,categ_id:0
@ -462,11 +464,14 @@ msgid ""
"synchronize each leave asked with a case in this category, to display it in "
"the company shared calendar for example."
msgstr ""
"Jeśli połączysz ten typ nieobecności z kategorią w CRM, to uzyskasz "
"synchronizację wniosków ze sprawami w danej kategorii, aby na przykład "
"wyświetlać je we współdzielonym kalendarzu."
#. module: hr_holidays
#: field:hr.holidays,parent_id:0
msgid "Parent"
msgstr ""
msgstr "Nadrzędny"
#. module: hr_holidays
#: help:hr.holidays,manager_id2:0
@ -474,21 +479,24 @@ msgid ""
"This area is automaticly filled by the user who validate the leave with "
"second level (If Leave type need second validation)"
msgstr ""
"Ta część jest automatycznie wypełniana przez użytkownika, który zatwierdza "
"nieobecność na drugim poziomie (jeśli typ nieobecności wymaga drugiego "
"zatwierdzania)"
#. module: hr_holidays
#: selection:available.holidays.report,month:0
msgid "September"
msgstr ""
msgstr "Wrzesień"
#. module: hr_holidays
#: selection:available.holidays.report,month:0
msgid "December"
msgstr ""
msgstr "Grudzień"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_remaining_leaves_empoloyee_all
msgid "Remaining Leaves by User"
msgstr ""
msgstr "Pozostałe urlopy wg użytkowników"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
@ -499,24 +507,24 @@ msgstr "Lawendowy"
#: view:available.holidays.report:0
#: field:available.holidays.report,month:0
msgid "Month"
msgstr ""
msgstr "Miesiąc"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.open_ask_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new
msgid "Leave Requests"
msgstr ""
msgstr "Wniosek urlopowy"
#. module: hr_holidays
#: field:hr.holidays.status,limit:0
msgid "Allow to Override Limit"
msgstr ""
msgstr "Pozwala przekroczyć limit"
#. module: hr_holidays
#: view:hr.holidays.summary.employee:0
#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_employee
msgid "Employee's Holidays"
msgstr ""
msgstr "Urlopy pracowników"
#. module: hr_holidays
#: view:available.holidays.report:0

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 21:35+0000\n"
"Last-Translator: Magnus Brandt, Aspirix AB <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:13+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"Language-Team: Swedish <sv@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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_payroll

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 23:10+0000\n"
"Last-Translator: Nicola Riolini - Micronaet <Unknown>\n"
"PO-Revision-Date: 2010-10-25 07:15+0000\n"
"Last-Translator: OpenERP Administrators <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: 2010-10-25 04:39+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet

View File

@ -261,7 +261,7 @@ class hr_timesheet_sheet(osv.osv):
raise osv.except_osv(_('Error !'), _('You can not sign in from an other date than today'))
emp_ids = emp_obj.search(cr, uid, [('user_id', '=', uid)], context=context)
context['sheet_id']=ids[0]
success = emp_obj.attendance_action_change(cr, uid, emp_ids, type='sign_in', context=context,)
emp_obj.attendance_action_change(cr, uid, emp_ids, type='sign_in', context=context,)
return True
def sign_out(self, cr, uid, ids, context=None):
@ -272,7 +272,7 @@ class hr_timesheet_sheet(osv.osv):
raise osv.except_osv(_('Error !'), _('You can not sign out from an other date than today'))
emp_ids = emp_obj.search(cr, uid, [('user_id', '=', uid)])
context['sheet_id']=ids[0]
success = emp_obj.attendance_action_change(cr, uid, emp_ids, type='sign_out', context=context,)
emp_obj.attendance_action_change(cr, uid, emp_ids, type='sign_out', context=context,)
return True
_columns = {

View File

@ -1,11 +1,24 @@
-
In order to test the PDF reports defined on a l10n_ch, we will create a invoice record
-
!record {model: account.invoice, id: test_invoice_1}:
currency_id: base.EUR
company_id: base.main_company
address_invoice_id: base.res_partner_address_tang
partner_id: base.res_partner_asus
state: draft
type: out_invoice
account_id: account.a_recv
name: Test invoice 1
address_contact_id: base.res_partner_address_tang
-
In order to test the PDF reports defined on a l10n_ch, we will print BVR Report
-
!python {model: account.invoice}: |
import netsvc, tools, os
run_str = 'cp ' + tools.config['addons_path'] + '/l10n_ch/report/ocrbb.ttf' + ' ' + '/tmp/ocrbb.ttf'
run_str = 'cp ' + tools.config['addons_path'] + '/l10n_ch/report/ocrbb.ttf' + ' ' + '/tmp/ocrbb.ttf'
os.system(run_str)
(data, format) = netsvc.LocalService('report.l10n_ch.bvr').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
(data, format) = netsvc.LocalService('report.l10n_ch.bvr').create(cr, uid, [ref('test_invoice_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'l10ch-bvr_report.'+format), 'wb+').write(data)
@ -14,6 +27,6 @@
-
!python {model: account.invoice}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.l10n_ch.invoice.bvr').create(cr, uid, [ref('account.test_invoice_1')], {}, {})
(data, format) = netsvc.LocalService('report.l10n_ch.invoice.bvr').create(cr, uid, [ref('test_invoice_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'l10ch-bvr_invoice_report.'+format), 'wb+').write(data)

View File

@ -12,3 +12,5 @@
(data, format) = netsvc.LocalService('report.l10n_lu.tax.report.print').create(cr, uid, [], {'model':'ir.ui.menu', 'form':{'tax_code_id': ref('account_tax_code_id_r1'), 'period_id': ref('account.period_1')}}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'l10n_lu-vat_report.'+format), 'wb+').write(data)

View File

@ -49,13 +49,21 @@ STATE_PRIOR = {
class membership_line(osv.osv):
'''Member line'''
def _get_partners(self, cr, uid, ids, context=None):
list_membership_line = []
member_line_obj = self.pool.get('membership.membership_line')
for partner in self.pool.get('res.partner').browse(cr, uid, ids, context=context):
if partner.member_lines:
list_membership_line += member_line_obj.search(cr, uid, [('id', 'in', [ l.id for l in partner.member_lines])], context=context)
return list_membership_line
def _get_membership_lines(self, cr, uid, ids, context=None):
list_membership_line = []
member_line_obj = self.pool.get('membership.membership_line')
for invoice in self.pool.get('account.invoice').browse(cr, uid, ids, context=context):
if invoice.invoice_line:
list_membership_line += member_line_obj.search(cr, uid, [('account_invoice_line', 'in', [ l.id for l in invoice.invoice_line])], context=context)
return list_membership_line
list_membership_line = []
member_line_obj = self.pool.get('membership.membership_line')
for invoice in self.pool.get('account.invoice').browse(cr, uid, ids, context=context):
if invoice.invoice_line:
list_membership_line += member_line_obj.search(cr, uid, [('account_invoice_line', 'in', [ l.id for l in invoice.invoice_line])], context=context)
return list_membership_line
def _check_membership_date(self, cr, uid, ids, context=None):
"""Check if membership product is not in the past
@ -74,7 +82,7 @@ class membership_line(osv.osv):
)
JOIN account_invoice ai ON (
ai.id = ail.invoice_id)
WHERE ml.id IN %s''',(tuple(ids),))
WHERE ml.id IN %s''', (tuple(ids),))
res = cr.fetchall()
for r in res:
if r[0] and r[0] < 0:
@ -138,16 +146,22 @@ class membership_line(osv.osv):
'date_from': fields.date('From', readonly=True),
'date_to': fields.date('To', readonly=True),
'date_cancel': fields.date('Cancel date'),
'date': fields.date('Join Date'),
'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True),
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
'state': fields.function(
_state, method=True,
'state': fields.function(_state, method=True,
string='Membership State', type='selection',
selection=STATE, store = {
'account.invoice':(_get_membership_lines, ['state'], 10),
}),
'account.invoice': (_get_membership_lines, ['state'], 10),
'res.partner': (_get_partners, ['membership_state'], 12),
}, help="""It indicates the membership state.
-Non Member: A member who has not applied for any membership.
-Cancelled Member: A member who has cancelled his membership.
-Old Member: A member whose membership date has expired.
-Waiting Member: A member who has applied for the membership and whose invoice is going to be created.
-Invoiced Member: A member whose invoice has been created.
-Paid Member: A member who has paid the membership amount."""),
'company_id': fields.related('account_invoice_line', 'invoice_id', 'company_id', type="many2one", relation="res.company", string="Company", readonly=True, store=True)
}
_rec_name = 'partner'
@ -172,7 +186,7 @@ class Partner(osv.osv):
list_partner.append(data.partner.id)
ids2 = list_partner
while ids2:
ids2 = res_obj.search(cr, uid, [('associate_member','in',ids2)], context=context)
ids2 = res_obj.search(cr, uid, [('associate_member', 'in', ids2)], context=context)
list_partner += ids2
return list_partner
@ -185,7 +199,7 @@ class Partner(osv.osv):
list_partner.append(data.partner_id.id)
ids2 = list_partner
while ids2:
ids2 = res_obj.search(cr, uid, [('associate_member','in',ids2)], context=context)
ids2 = res_obj.search(cr, uid, [('associate_member', 'in', ids2)], context=context)
list_partner += ids2
return list_partner
@ -232,7 +246,7 @@ class Partner(osv.osv):
s = 3
if s==4:
for mline in partner_data.member_lines:
if mline.date_from < today and mline.date_to < today and mline.date_from<=mline.date_to and (mline.account_invoice_line and mline.account_invoice_line.invoice_id.state) == 'paid':
if mline.date_from < today and mline.date_to < today and mline.date_from <= mline.date_to and (mline.account_invoice_line and mline.account_invoice_line.invoice_id.state) == 'paid':
s = 5
else:
s = 6
@ -294,7 +308,7 @@ class Partner(osv.osv):
def _get_partners(self, cr, uid, ids, context=None):
ids2 = ids
while ids2:
ids2 = self.search(cr, uid, [('associate_member','in',ids2)], context=context)
ids2 = self.search(cr, uid, [('associate_member', 'in', ids2)], context=context)
ids += ids2
return ids
@ -302,45 +316,51 @@ class Partner(osv.osv):
return self._membership_state(*args, **kwargs)
_columns = {
'associate_member': fields.many2one('res.partner', 'Associate member'),
'associate_member': fields.many2one('res.partner', 'Associate member',help="A member with whom you want to associate your membership.It will consider the membership state of the associated member."),
'member_lines': fields.one2many('membership.membership_line', 'partner', 'Membership'),
'free_member': fields.boolean('Free member'),
'free_member': fields.boolean('Free member', help = "Select if you want to give membership free of cost."),
'membership_amount': fields.float(
'Membership amount', digits=(16, 2),
help = 'The price negociated by the partner'),
help = 'The price negotiated by the partner'),
'membership_state': fields.function(
__get_membership_state, method = True,
__get_membership_state, method=True,
string = 'Current Membership State', type = 'selection',
selection = STATE,
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
'membership.membership_line': (_get_partner_id, ['state'], 10),
'res.partner': (_get_partners, ['free_member', 'membership_state', 'associate_member'], 10)
}),
}, help="""It indicates the membership state.
-Non Member: A member who has not applied for any membership.
-Cancelled Member: A member who has cancelled his membership.
-Old Member: A member whose membership date has expired.
-Waiting Member: A member who has applied for the membership and whose invoice is going to be created.
-Invoiced Member: A member whose invoice has been created.
-Paid Member: A member who has paid the membership amount."""),
'membership_start': fields.function(
_membership_date, method = True, multi = 'membeship_start',
_membership_date, method=True, multi = 'membeship_start',
string = 'Start membership date', type = 'date',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
'membership.membership_line': (_get_partner_id, ['state'], 10, ),
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
}),
}, help="Date from which membership becomes active."),
'membership_stop': fields.function(
_membership_date, method = True,
string = 'Stop membership date', type = 'date', multi='membership_stop',
_membership_date, method=True,
string = 'Stop membership date', type='date', multi='membership_stop',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
'membership.membership_line': (_get_partner_id, ['state'], 10),
'res.partner': (lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)
}),
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
}, help="Date until which membership remains active."),
'membership_cancel': fields.function(
_membership_date, method = True,
_membership_date, method=True,
string = 'Cancel membership date', type='date', multi='membership_cancel',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 11),
'membership.membership_line': (_get_partner_id, ['state'], 10),
'res.partner': (lambda self,cr,uid,ids,c={}:ids, ['free_member'], 10)
}),
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
}, help="Date on which membership has been cancelled"),
}
_defaults = {
'free_member': False,
@ -375,17 +395,17 @@ class Partner(osv.osv):
def create_membership_invoice(self, cr, uid, ids, product_id=None, datas=None, context=None):
""" Create Customer Invoice of Membership for partners.
@param datas: datas has dictionary value which consist Id of Membership product and Cost Amount of Membership.
datas = {'membership_product_id': None, 'amount':None}
datas = {'membership_product_id': None, 'amount': None}
"""
invoice_obj = self.pool.get('account.invoice')
invoice_line_obj = self.pool.get('account.invoice.line')
invoice_tax_obj = self.pool.get('account.invoice.tax')
product_id = product_id or datas.get('membership_product_id',False)
product_id = product_id or datas.get('membership_product_id', False)
amount = datas.get('amount', 0.0)
if not context:
context={}
invoice_list = []
if type(ids) in (int,long,):
if type(ids) in (int, long,):
ids = [ids]
for partner in self.browse(cr, uid, ids, context=context):
account_id = partner.property_account_receivable and partner.property_account_receivable.id or False
@ -432,7 +452,7 @@ Partner()
class product_template(osv.osv):
_inherit = 'product.template'
_columns = {
'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')),
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')),
}
product_template()
@ -442,7 +462,7 @@ class Product(osv.osv):
model_obj = self.pool.get('ir.model.data')
if ('product' in context) and (context['product']=='membership_product'):
model_data_ids_form = model_obj.search(cr, user, [('model','=','ir.ui.view'), ('name','in',['membership_products_form', 'membership_products_tree'])], context=context)
model_data_ids_form = model_obj.search(cr, user, [('model','=','ir.ui.view'), ('name', 'in', ['membership_products_form', 'membership_products_tree'])], context=context)
resource_id_form = model_obj.read(cr, user, model_data_ids_form, fields=['res_id', 'name'], context=context)
dict_model = {}
for i in resource_id_form:
@ -456,13 +476,13 @@ class Product(osv.osv):
'''Product'''
_inherit = 'product.product'
_columns = {
'membership': fields.boolean('Membership', help='Specify if this product is a membership product'),
'membership_date_from': fields.date('Date from', help='Active Membership since this date'),
'membership_date_to': fields.date('Date to', help='Expired date of Membership'),
'membership': fields.boolean('Membership', help='Select if a product is a membership product.'),
'membership_date_from': fields.date('Date from', help='Date from which membership becomes active.'),
'membership_date_to': fields.date('Date to', help='Date until which membership remains active.'),
}
_defaults = {
'membership': False
'membership': False,
}
Product()
@ -477,8 +497,8 @@ class Invoice(osv.osv):
today = time.strftime('%Y-%m-%d')
for invoice in self.browse(cr, uid, ids):
mlines = member_line_obj.search(cr, uid,
[('account_invoice_line','in',
[ l.id for l in invoice.invoice_line])])
[('account_invoice_line', 'in',
[l.id for l in invoice.invoice_line])])
member_line_obj.write(cr, uid, mlines, {'date_cancel': today})
return super(Invoice, self).action_cancel(cr, uid, ids)
Invoice()
@ -495,7 +515,7 @@ class account_invoice_line(osv.osv):
member_line_obj = self.pool.get('membership.membership_line')
for line in self.browse(cr, uid, ids, context=context):
if line.invoice_id.type == 'out_invoice':
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line','=',line.id)], context=context)
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line', '=', line.id)], context=context)
if line.product_id and line.product_id.membership and not ml_ids:
# Product line has changed to a membership product
date_from = line.product_id.membership_date_from
@ -523,7 +543,7 @@ class account_invoice_line(osv.osv):
context={}
member_line_obj = self.pool.get('membership.membership_line')
for id in ids:
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line','=',id)], context=context)
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line', '=', id)], context=context)
member_line_obj.unlink(cr, uid, ml_ids, context=context)
return super(account_invoice_line, self).unlink(cr, uid, ids, context=context)
@ -534,7 +554,7 @@ class account_invoice_line(osv.osv):
line = self.browse(cr, uid, result, context=context)
member_line_obj = self.pool.get('membership.membership_line')
if line.invoice_id.type == 'out_invoice':
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line','=',line.id)], context=context)
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line', '=', line.id)], context=context)
if line.product_id and line.product_id.membership and not ml_ids:
# Product line is a membership product
date_from = line.product_id.membership_date_from

View File

@ -71,7 +71,7 @@
<separator string="Categorization" colspan="2"/>
<field name="list_price" string="Membership Fee"/>
<field name="type" />
<field name="property_account_income"/>
<field name="property_account_income" domain="[('type', '!=', 'view')]"/>
<field name="categ_id"/>
<separator string="Sale Taxes" colspan="2"/>
<newline/>

View File

@ -20,3 +20,4 @@
##############################################################################
import report_membership
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -44,7 +44,7 @@ class report_membership(osv.osv):
_rec_name = 'year'
_columns = {
'year': fields.char('Year', size=4, readonly=True, select=1),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
'month': fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
('07', 'July'), ('08', 'August'),\

View File

@ -9,7 +9,7 @@
<field name="model">report.membership</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('draft');black:state in ('open','free');gray:state in ('done','cancel') " string="Membership">
<tree colors="blue:membership_state in ('draft');black:membership_state in ('open','free');gray:membership_state in ('done','cancel') " string="Membership">
<field name="partner_id"/>
<field name="membership_state"/>
<field name="associate_member_id" invisible="1"/>
@ -78,11 +78,10 @@
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Membership" type="bar">
<field name="year"/>
<field name="canceled_number"/>
<field name="waiting_number"/>
<field name="invoiced_number"/>
<field name="paid_number"/>
<field name="year" />
<field name="num_waiting" operator="+"/>
<field name="num_invoiced" operator="+"/>
<field name="num_paid" operator="+"/>
</graph>
</field>
</record>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-24 13:13+0000\n"
"PO-Revision-Date: 2010-10-25 18:33+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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: 2010-10-25 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@ -340,37 +340,37 @@ msgstr "Odnośnik do pozycji w planie zewnętrznym"
#. module: mrp
#: selection:mrp.production.order,month:0
msgid "August"
msgstr ""
msgstr "Sierpień"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_order
msgid "Production Order Report"
msgstr ""
msgstr "Raport zamówień produkcji"
#. module: mrp
#: selection:mrp.production.order,month:0
msgid "June"
msgstr ""
msgstr "Czerwiec"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_produce
msgid "Product Produce"
msgstr ""
msgstr "Produkcja produktu"
#. module: mrp
#: selection:mrp.production.order,month:0
msgid "October"
msgstr ""
msgstr "Październik"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procurestockableproduct0
msgid "Procurement of stockable Product"
msgstr ""
msgstr "Zapotrzebowanie na produkt rejestrowany"
#. module: mrp
#: view:mrp.bom:0
msgid "Default UOM"
msgstr ""
msgstr "Domyślna JM"
#. module: mrp
#: code:addons/mrp/report/price.py:0
@ -385,7 +385,7 @@ msgstr "Ilość"
#. module: mrp
#: field:mrp.production.workcenter.line,hour:0
msgid "Nbr of hours"
msgstr ""
msgstr "Liczba godzin"
#. module: mrp
#: view:mrp.production:0
@ -398,6 +398,8 @@ msgid ""
"The system creates an order (production or purchased) depending on the sold "
"quantity and the products parameters."
msgstr ""
"System utworzy zamówienie (produkcji lub zakupu) zależnie od sprzedanej "
"ilości i parametrów produktu."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
@ -409,12 +411,12 @@ msgstr ""
#. module: mrp
#: field:mrp.installer,mrp_repair:0
msgid "Repairs"
msgstr ""
msgstr "Naprawy"
#. module: mrp
#: field:mrp.installer,stock_location:0
msgid "Advanced Routes"
msgstr ""
msgstr "Zaawansowane marszruty"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree
@ -427,6 +429,8 @@ msgid ""
"Enables warranty and repair management (and their impact on stocks and "
"invoicing)."
msgstr ""
"Włącza zarządzanie gwarancjami i naprawą (i jego wpływ na zapasy i "
"fakturowanie)."
#. module: mrp
#: field:mrp.production,date_planned_date:0
@ -454,7 +458,7 @@ msgstr ""
#. module: mrp
#: view:board.board:0
msgid "Stock Value Variation"
msgstr ""
msgstr "Odchylenia wartości zapasów"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action2
@ -464,23 +468,23 @@ msgstr "Struktura zestawień materiałowych"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
msgid "Product type is service"
msgstr ""
msgstr "Typ produktu jest serwis"
#. module: mrp
#: code:addons/mrp/report/price.py:0
#, python-format
msgid "of "
msgstr ""
msgstr "z "
#. module: mrp
#: model:process.transition,name:mrp.process_transition_bom0
msgid "Manufacturing decomposition"
msgstr ""
msgstr "Dekompozycja produkcji"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "For Services."
msgstr ""
msgstr "Do usług."
#. module: mrp
#: field:mrp.bom.revision,date:0

View File

@ -7,46 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-08-03 08:13+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"POT-Creation-Date: 2010-10-18 17:46+0000\n"
"PO-Revision-Date: 2010-10-25 16:09+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@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: 2010-09-29 05:16+0000\n"
"X-Launchpad-Export-Date: 2010-10-26 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
#: help:multi_company.default,object_id:0
msgid "Object affect by this rules"
msgstr "Объект затрагивает эти правила"
#. module: multi_company
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Название объекта должно начинаться с x_ и не должно содержать специальных "
"символов !"
#. module: multi_company
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
"Ошибка. ЕИМ по умолчанию и закупочная ЕИМ должны иметь одинаковую категорию."
#. module: multi_company
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr "НДС выглядит неправильно"
#. module: multi_company
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия"
#. module: multi_company
#: model:res.company,overdue_msg:multi_company.res_company_odoo
#: model:res.company,overdue_msg:multi_company.res_company_oerp_be
@ -54,59 +24,41 @@ msgstr "Недопустимое имя модели в определении
#: model:res.company,overdue_msg:multi_company.res_company_oerp_in
#: model:res.company,overdue_msg:multi_company.res_company_oerp_us
msgid ""
"Would your payment have been carried out after this mail was sent, please "
"consider the present one as void. Do not hesitate to contact our accounting "
"department"
"\n"
"Date: %(date)s\n"
"\n"
"Dear %(partner_name)s,\n"
"\n"
"Please find in attachment a reminder of all your unpaid invoices, for a "
"total amount due of:\n"
"\n"
"%(followup_amount).2f %(company_currency)s\n"
"\n"
"Thanks,\n"
"--\n"
"%(user_signature)s\n"
"%(company_name)s\n"
" "
msgstr ""
"\n"
"Дата: %(date)s\n"
"\n"
"Уважаемый / уважаемая %(partner_name)s,\n"
"\n"
"Пожалуйста, просмотрите в приложении напоминание о всех не оплаченных вами "
"счетах.\n"
"Всего на сумму: %(followup_amount).2f %(company_currency)s\n"
"\n"
"Спасибо,\n"
"--\n"
"%(user_signature)s\n"
"%(company_name)s\n"
" "
#. module: multi_company
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
msgstr "Компания по умолчанию"
#. module: multi_company
#: field:multi_company.default,object_id:0
msgid "Object"
msgstr "Объект"
#. module: multi_company
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr "Концерн"
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
msgid ""
"This module add the possibility to easily manage \n"
" the default value for each object\n"
" "
msgstr ""
#. module: multi_company
#: field:multi_company.default,company_id:0
msgid "Main Company"
msgstr "Головная компания"
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
msgstr "Условие"
#. module: multi_company
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
#. module: multi_company
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Некорректный формат XML структуры для просмотра."
#. module: multi_company
#: field:multi_company.default,name:0
msgid "Name"
msgstr "Имя"
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия"
#. module: multi_company
#: constraint:product.template:0
@ -119,77 +71,124 @@ msgid "Odoo Offers"
msgstr "Предложения Odoo"
#. module: multi_company
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr "Ошибка! Невозможно создать рекурсивную компанию."
#. module: multi_company
#: help:multi_company.default,name:0
msgid "Name it to easily find a record"
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
msgid "Multi company"
msgstr "Концерн"
#. module: multi_company
#: model:ir.model,name:multi_company.model_multi_company_default
msgid "multi_company.default"
msgstr ""
#. module: multi_company
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
msgstr "Компании, в составе которых находиться пользователь"
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
msgid "Default Company per Object"
msgstr "Компании по умолчанию для объекта"
#. module: multi_company
#: field:multi_company.default,expression:0
msgid "Expression"
msgstr "Выражение"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
msgid "Odoo Offer"
msgstr "Предложение Odoo"
#. module: multi_company
#: field:multi_company.default,sequence:0
msgid "Sequence"
msgstr "Последовательность"
"Ошибка. ЕИМ по умолчанию и закупочная ЕИМ должны иметь одинаковую категорию."
#. module: multi_company
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
msgstr "Ошибка ! Невозможно создать рекурсивную категорию."
#. module: multi_company
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr "Ошибка! Невозможно создать рекурсивную компанию."
#. module: multi_company
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Некорректный формат XML структуры для просмотра."
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
msgid "Multi-Companies"
msgstr ""
#. module: multi_company
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr "Концерн"
#. module: multi_company
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
msgstr "Ошибка! Вы не можете создать рекурсивных связанных участников."
#. module: multi_company
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Ошибка: Неправильный штрих-код"
#. module: multi_company
#: help:multi_company.default,expression:0
msgid "Expression, must be True to match"
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
"Выбранной компании нет в разрешенных компаниях для этого пользователя"
#. module: multi_company
#: constraint:ir.ui.menu:0
msgid "Error ! You can not create recursive Menu."
msgstr "Ошибка ! Нельзя создать зацикленные меню."
#. module: multi_company
#: view:multi_company.default:0
msgid "Returning"
msgstr "Возвращаемое"
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default company per Object"
msgstr "Компания по умолчанию для объекта"
#. module: multi_company
#: code:addons/multi_company/multi_company.py:0
#, python-format
msgid " (copy)"
msgstr " (копия)"
msgid "Default Company per Object"
msgstr "Компании по умолчанию для объекта"
#. module: multi_company
#: view:multi_company.default:0
msgid "Matching"
msgstr "Сопоставление"
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
msgstr "Условие"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
msgid "Odoo Offer"
msgstr "Предложение Odoo"
#~ msgid "Object"
#~ msgstr "Объект"
#~ msgid "The VAT doesn't seem to be correct."
#~ msgstr "НДС выглядит неправильно"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Название объекта должно начинаться с x_ и не должно содержать специальных "
#~ "символов !"
#~ msgid "Multi company"
#~ msgstr "Концерн"
#~ msgid "Main Company"
#~ msgstr "Головная компания"
#~ msgid "Name"
#~ msgstr "Имя"
#~ msgid "Sequence"
#~ msgstr "Последовательность"
#~ msgid "Expression"
#~ msgstr "Выражение"
#, python-format
#~ msgid " (copy)"
#~ msgstr " (копия)"
#~ msgid "Object affect by this rules"
#~ msgstr "Объект затрагивает эти правила"
#~ msgid "Default Company"
#~ msgstr "Компания по умолчанию"
#~ msgid "Company where the user is connected"
#~ msgstr "Компании, в составе которых находиться пользователь"
#~ msgid "Default company per Object"
#~ msgstr "Компания по умолчанию для объекта"

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