[Merge] : branch merged with lp:openobject-addons

bzr revid: mso@mso-20100519134757-ya5ypsrrn9k9dyx9
bzr revid: mso@mso-20100519141310-w3yplzus8x8lit4y
bzr revid: mso@mso-20100520061727-56aj2nrxouve1qpa
This commit is contained in:
mso 2010-05-20 11:47:27 +05:30
commit 035cfdc75f
228 changed files with 5265 additions and 1328 deletions

View File

@ -231,9 +231,9 @@ class account_account(osv.osv):
aml_query = self.pool.get('account.move.line')._query_get(cr, uid, context=context)
wheres = [""]
if query:
if query.strip():
wheres.append(query.strip())
if aml_query:
if aml_query.strip():
wheres.append(aml_query.strip())
query = " AND ".join(wheres)
@ -251,6 +251,7 @@ class account_account(osv.osv):
# consolidate accounts with direct children
ids2.reverse()
brs = list(self.browse(cr, uid, ids2, context=context))
sums = {}
while brs:
@ -270,8 +271,9 @@ class account_account(osv.osv):
if current.child_id:
sums[current.id][fn] += sum(sums[child.id][fn] for child in current.child_id)
res = {}
null_result = dict((fn, 0.0) for fn in field_names)
for id in ids:
res[id] = sums[id]
res[id] = sums.get(id, null_result)
return res
def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
@ -313,7 +315,7 @@ class account_account(osv.osv):
'user_type': fields.many2one('account.account.type', 'Account Type', required=True,
help="These types are defined according to your country. The type contains more information "\
"about the account and its specificities."),
'parent_id': fields.many2one('account.account', 'Parent', ondelete='cascade'),
'parent_id': fields.many2one('account.account', 'Parent', ondelete='cascade', domain=[('type','=','view')]),
'child_parent_ids': fields.one2many('account.account','parent_id','Children'),
'child_consol_ids': fields.many2many('account.account', 'account_account_consol_rel', 'child_id', 'parent_id', 'Consolidated Children'),
'child_id': fields.function(_get_child_ids, method=True, type='many2many', relation="account.account", string="Child Accounts"),
@ -450,18 +452,42 @@ class account_account(osv.osv):
def _check_moves(self, cr, uid, ids, method, context):
line_obj = self.pool.get('account.move.line')
account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
if method == 'write':
raise osv.except_osv(_('Error !'), _('You cannot deactivate an account that contains account moves.'))
elif method == 'unlink':
raise osv.except_osv(_('Error !'), _('You cannot remove an account which has account entries!. '))
#Checking whether the account is set as a property to any Partner or not
value = 'account.account,' + str(ids[0])
partner_prop_acc = self.pool.get('ir.property').search(cr, uid, [('value_reference','=',value)], context=context)
if partner_prop_acc:
raise osv.except_osv(_('Warning !'), _('You cannot remove/deactivate an account which is set as a property to any Partner.'))
return True
def _check_allow_type_change(self, cr, uid, ids, new_type, context):
group1 = ['payable', 'receivable', 'other']
group2 = ['consolidation','view']
line_obj = self.pool.get('account.move.line')
for account in self.browse(cr, uid, ids, context=context):
old_type = account.type
account_ids = self.search(cr, uid, [('id', 'child_of', [account.id])])
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
#Check for 'Closed' type
if old_type == 'closed' and new_type !='closed':
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from 'Closed' to any other type which contains account entries!"))
#Check for change From group1 to group2 and vice versa
if (old_type in group1 and new_type in group2) or (old_type in group2 and new_type in group1):
raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from '%s' to '%s' type as it contains account entries!") % (old_type,new_type,))
return True
def write(self, cr, uid, ids, vals, context=None):
if not context:
if context is None:
context = {}
if 'active' in vals and not vals['active']:
self._check_moves(cr, uid, ids, "write", context)
if 'type' in vals.keys():
self._check_allow_type_change(cr, uid, ids, vals['type'], context=context)
return super(account_account, self).write(cr, uid, ids, vals, context=context)
def unlink(self, cr, uid, ids, context={}):
@ -557,15 +583,16 @@ class account_journal(osv.osv):
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
if not context:
context={}
args = []
if context is None:
context = {}
ids = []
if name:
ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit)
ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit, context=context)
if not ids:
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
return self.name_get(cr, user, ids, context=context)
account_journal()
class account_fiscalyear(osv.osv):
@ -631,6 +658,19 @@ class account_fiscalyear(osv.osv):
else:
return False
return ids[0]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
if args is None:
args = []
if context is None:
context = {}
ids = []
if name:
ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit)
if not ids:
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
return self.name_get(cr, user, ids, context=context)
account_fiscalyear()
class account_period(osv.osv):
@ -706,12 +746,24 @@ class account_period(osv.osv):
cr.execute('update account_journal_period set state=%s where period_id=%s', (mode, id))
cr.execute('update account_period set state=%s where id=%s', (mode, id))
return True
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
if args is None:
args = []
if context is None:
context = {}
ids = []
if name:
ids = self.search(cr, user, [('code','ilike',name)]+ args, limit=limit)
if not ids:
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
return self.name_get(cr, user, ids, context=context)
account_period()
class account_journal_period(osv.osv):
_name = "account.journal.period"
_description = "Journal - Period"
_description = "Journal Period"
def _icon_get(self, cr, uid, ids, field_name, arg=None, context={}):
result = {}.fromkeys(ids, 'STOCK_NEW')
@ -950,7 +1002,6 @@ class account_move(osv.osv):
l[2]['period_id'] = default_period
context['period_id'] = default_period
accnt_journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'])
if 'line_id' in vals:
c = context.copy()
c['novalidate'] = True
@ -1248,7 +1299,7 @@ class account_tax_code(osv.osv):
_description = 'Tax Code'
_rec_name = 'code'
_columns = {
'name': fields.char('Tax Case Name', size=64, required=True),
'name': fields.char('Tax Case Name', size=64, required=True, translate=True),
'code': fields.char('Case Code', size=64),
'info': fields.text('Description'),
'sum': fields.function(_sum_year, method=True, string="Year Sum"),
@ -1262,6 +1313,15 @@ class account_tax_code(osv.osv):
}
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
if not args:
args = []
if context is None:
context = {}
ids = self.search(cr, user, ['|',('name',operator,name),('code',operator,name)] + args, limit=limit, context=context)
return self.name_get(cr, user, ids, context)
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
@ -1290,7 +1350,15 @@ class account_tax_code(osv.osv):
return False
level -= 1
return True
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default = default.copy()
default.update({'line_ids': []})
return super(account_tax_code, self).copy(cr, uid, id, default, context)
_constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
]

View File

@ -30,7 +30,7 @@ from tools import config
class account_analytic_line(osv.osv):
_inherit = 'account.analytic.line'
_description = 'Analytic lines'
_description = 'Analytic Line'
_columns = {
'product_uom_id' : fields.many2one('product.uom', 'UoM'),
'product_id' : fields.many2one('product.product', 'Product'),
@ -42,7 +42,7 @@ class account_analytic_line(osv.osv):
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', c),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c),
}
_order = 'date'
@ -118,7 +118,7 @@ account_analytic_line()
class timesheet_invoice(osv.osv):
_name = "report.hr.timesheet.invoice.journal"
_description = "Analytic account costs and revenues"
_description = "Analytic Account Costs and Revenues"
_auto = False
_columns = {
'name': fields.char('Year',size=64,required=False, readonly=True),

View File

@ -387,7 +387,7 @@ account_bank_statement()
class account_bank_statement_reconcile(osv.osv):
_name = "account.bank.statement.reconcile"
_description = "Statement reconcile"
_description = "Statement Reconcile"
def _total_entry(self, cursor, user, ids, name, attr, context=None):
result = {}
@ -558,35 +558,40 @@ class account_bank_statement_line(osv.osv):
def onchange_partner_id(self, cursor, user, line_id, partner_id, type, currency_id,
context={}):
res = {'value': {}}
if not partner_id:
return {}
res_currency_obj = self.pool.get('res.currency')
res_users_obj = self.pool.get('res.users')
company_currency_id = res_users_obj.browse(cursor, user, user,
context=context).company_id.currency_id.id
if not currency_id:
currency_id = company_currency_id
part = self.pool.get('res.partner').browse(cursor, user, partner_id,
return res
line = self.browse(cursor, user, line_id)
if not line or (line and not line[0].account_id):
part = self.pool.get('res.partner').browse(cursor, user, partner_id,
context=context)
if type == 'supplier':
account_id = part.property_account_payable.id
else:
account_id = part.property_account_receivable.id
if type == 'supplier':
account_id = part.property_account_payable.id
else:
account_id = part.property_account_receivable.id
res['value']['account_id'] = account_id
cursor.execute('SELECT sum(debit-credit) \
if not line or (line and not line[0].amount):
res_users_obj = self.pool.get('res.users')
res_currency_obj = self.pool.get('res.currency')
company_currency_id = res_users_obj.browse(cursor, user, user,
context=context).company_id.currency_id.id
if not currency_id:
currency_id = company_currency_id
cursor.execute('SELECT sum(debit-credit) \
FROM account_move_line \
WHERE (reconcile_id is null) \
AND partner_id = %s \
AND account_id=%s', (partner_id, account_id))
res = cursor.fetchone()
balance = res and res[0] or 0.0
pgres = cursor.fetchone()
balance = pgres and pgres[0] or 0.0
balance = res_currency_obj.compute(cursor, user, company_currency_id,
balance = res_currency_obj.compute(cursor, user, company_currency_id,
currency_id, balance, context=context)
return {'value': {'amount': balance, 'account_id': account_id}}
res['value']['amount'] = balance
return res
def _reconcile_amount(self, cursor, user, ids, name, args, context=None):
if not ids:
@ -633,7 +638,7 @@ class account_bank_statement_line(osv.osv):
'note': fields.text('Notes'),
'reconcile_amount': fields.function(_reconcile_amount,
string='Amount reconciled', method=True, type='float'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of bank statement line."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of bank statement lines."),
}
_defaults = {
'name': lambda self,cr,uid,context={}: self.pool.get('ir.sequence').get(cr, uid, 'account.bank.statement.line'),

View File

@ -478,9 +478,11 @@
<act_window domain="[('journal_id','=',active_id),('state','!=','draft'),('reconciled','=',False)]" id="act_account_journal_2_account_invoice_opened" name="Unpaid invoices" res_model="account.invoice" src_model="account.journal"/>
<act_window domain="[('account_analytic_id', '=', active_id)]" id="act_account_analytic_account_2_account_invoice_line" name="Invoice lines" res_model="account.invoice.line" src_model="account.analytic.account"/>
<!-- Partners inherited form -->
<act_window domain="[('partner_id', '=', partner_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_invoice_account_move_unreconciled" name="Unreconciled Receivables &amp; Payables" res_model="account.move.line" src_model="account.invoice"/>
<!-- Partners inherited form -->
<record id="view_invoice_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.invoice.info.inherit</field>
<field name="model">res.partner</field>

View File

@ -50,7 +50,7 @@ write({'state':'open'})</field>
<field name="wkf_id" ref="wkf"/>
<field name="name">paid</field>
<!--<field name="flow_stop">True</field>-->
<field name="action">write({'state':'paid'})</field>
<field name="action">confirm_paid()</field>
<field name="kind">function</field>
<field name="signal_send">subflow.paid</field>
</record>

View File

@ -30,7 +30,7 @@ import tools
class account_move_line(osv.osv):
_name = "account.move.line"
_description = "Entry lines"
_description = "Entry Lines"
def _query_get(self, cr, uid, obj='l', context={}):
fiscalyear_obj = self.pool.get('account.fiscalyear')
@ -577,11 +577,12 @@ class account_move_line(osv.osv):
merges_rec = []
for line in self.browse(cr, uid, ids, context):
if line.reconcile_id:
raise osv.except_osv(_('Already Reconciled'), _('Already Reconciled'))
raise osv.except_osv(_('Warning'), _('Already Reconciled!'))
if line.reconcile_partial_id:
for line2 in line.reconcile_partial_id.line_partial_ids:
if not line2.reconcile_id:
merges.append(line2.id)
if line2.id not in merges:
merges.append(line2.id)
total += (line2.debit or 0.0) - (line2.credit or 0.0)
merges_rec.append(line.reconcile_partial_id.id)
else:
@ -774,6 +775,17 @@ class account_move_line(osv.osv):
result['fields'] = self.fields_get(cr, uid, fields, context)
return result
def _check_moves(self, cr, uid, context):
# use the first move ever created for this journal and period
cr.execute('select id, state, name from account_move where journal_id=%s and period_id=%s order by id limit 1', (context['journal_id'],context['period_id']))
res = cr.fetchone()
if res:
if res[1] != 'draft':
raise osv.except_osv(_('UserError'),
_('The account move (%s) for centralisation ' \
'has been confirmed!') % res[2])
return res
def unlink(self, cr, uid, ids, context={}, check=True):
self._update_check(cr, uid, ids, context)
result = False
@ -809,7 +821,7 @@ class account_move_line(osv.osv):
return True
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
if not context:
if context is None:
context={}
if vals.get('account_tax_id', False):
raise osv.except_osv(_('Unable to change tax !'), _('You can not change the tax, you should remove and recreate lines !'))
@ -825,6 +837,24 @@ class account_move_line(osv.osv):
if vals.get('date', False):
todo_date = vals['date']
del vals['date']
for line in self.browse(cr, uid, ids,context=context):
ctx = context.copy()
if ('journal_id' not in ctx):
if line.move_id:
ctx['journal_id'] = line.move_id.journal_id.id
else:
ctx['journal_id'] = line.journal_id.id
if ('period_id' not in ctx):
if line.move_id:
ctx['period_id'] = line.move_id.period_id.id
else:
ctx['period_id'] = line.period_id.id
#Check for centralisation
journal = self.pool.get('account.journal').browse(cr, uid, ctx['journal_id'], context=ctx)
if journal.centralisation:
self._check_moves(cr, uid, context=ctx)
result = super(account_move_line, self).write(cr, uid, ids, vals, context)
if check:
@ -891,14 +921,9 @@ class account_move_line(osv.osv):
is_new_move = False
if not move_id:
if journal.centralisation:
# use the first move ever created for this journal and period
cr.execute('select id, state, name from account_move where journal_id=%s and period_id=%s order by id limit 1', (context['journal_id'],context['period_id']))
res = cr.fetchone()
#Check for centralisation
res = self._check_moves(cr, uid, context)
if res:
if res[1] != 'draft':
raise osv.except_osv(_('UserError'),
_('The Ledger Posting (%s) for centralisation ' \
'has been confirmed!') % res[2])
vals['move_id'] = res[0]
if not vals.get('move_id', False):
@ -926,7 +951,7 @@ class account_move_line(osv.osv):
break
if journal.account_control_ids and not ok:
for a in journal.account_control_ids:
if a.id==vals['account_id']:
if a.id == vals['account_id']:
ok = True
break
if (account.currency_id) and 'amount_currency' not in vals and account.currency_id.id <> company_currency:
@ -941,7 +966,7 @@ class account_move_line(osv.osv):
if not ok:
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal !'))
if 'analytic_account_id' in vals and vals['analytic_account_id']:
if vals.get('analytic_account_id',False):
if journal.analytic_journal_id:
vals['analytic_lines'] = [(0,0, {
'name': vals['name'],
@ -961,8 +986,8 @@ class account_move_line(osv.osv):
result = super(osv.osv, self).create(cr, uid, vals, context)
# CREATE Taxes
if 'account_tax_id' in vals and vals['account_tax_id']:
tax_id=tax_obj.browse(cr,uid,vals['account_tax_id'])
if vals.get('account_tax_id',False):
tax_id = tax_obj.browse(cr, uid, vals['account_tax_id'])
total = vals['debit'] - vals['credit']
if journal.refund_journal:
base_code = 'ref_base_code_id'
@ -978,7 +1003,7 @@ class account_move_line(osv.osv):
tax_sign = 'tax_sign'
tmp_cnt = 0
for tax in tax_obj.compute(cr,uid,[tax_id],total,1.00):
for tax in tax_obj.compute(cr, uid, [tax_id], total, 1.00):
#create the base movement
if tmp_cnt == 0:
if tax[base_code]:
@ -1031,7 +1056,7 @@ class account_move_line(osv.osv):
# if context and ('__last_update' in context):
# del context['__last_update']
# self.pool.get('account.move').write(cr, uid, [move_id], {'date':vals['date']}, context=context)
if check and not context.get('no_store_function'):
if check and ((not context.get('no_store_function')) or journal.entry_posted):
tmp = self.pool.get('account.move').validate(cr, uid, [vals['move_id']], context)
if journal.entry_posted and tmp:
self.pool.get('account.move').button_validate(cr,uid, [vals['move_id']],context)

View File

@ -531,7 +531,10 @@
<field name="create_date" select="1"/>
<field name="type" select="1"/>
</group>
<separator colspan="4" string="Reconcile Entries"/>
<field colspan="4" name="line_id" nolabel="1"/>
<separator colspan="4" string="Partial Reconcile Entries"/>
<field colspan="4" name="line_partial_ids" nolabel="1"/>
</form>
</field>
</record>
@ -551,6 +554,7 @@
<field name="code"/>
<field name="sum"/>
<field name="sum_period"/>
<field name="company_id"/>
</tree>
</field>
</record>
@ -562,7 +566,7 @@
<form string="Account Tax Code">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" select="1"/>
<field name="notprintable"/>
<field name="parent_id" select="1"/>
<field name="sign"/>
@ -648,9 +652,9 @@
</page>
<page groups="base.group_extended" string="Special Computation">
<separator colspan="4" string="Compute Code (if type=code)"/>
<field colspan="4" name="python_compute" nolabel="1" attrs="{'readonly':[('type','!=','code')]}"/>
<field colspan="4" name="python_compute" nolabel="1" attrs="{'readonly':[('type','!=','code')],'required':[('type','=','code')]}"/>
<separator colspan="4" string="Applicable Code (if type=code)"/>
<field colspan="4" name="python_applicable" nolabel="1" attrs="{'readonly':[('applicable_type','=','true')]}"/>
<field colspan="4" name="python_applicable" nolabel="1" attrs="{'readonly':[('applicable_type','=','true')], 'required':[('applicable_type','=','code')]}"/>
</page>
</notebook>
</form>
@ -1453,9 +1457,11 @@
<act_window domain="[('journal_id', '=', active_id)]" id="act_account_journal_2_account_move_line" name="Entry lines" res_model="account.move.line" src_model="account.journal"/>
<act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_partner_account_move_unreconciled" name="Receivables &amp; Payables" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_partner_account_move_unreconciled" name="Unreconciled Receivables &amp; Payables" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="All account entries" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable'])]" id="act_account_partner_account_move_all" name="Receivables &amp; Payables" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="All Account Entries" res_model="account.move.line" src_model="res.partner"/>
<record id="view_account_addtmpl_wizard_form" model="ir.ui.view">
<field name="name">Account Add wizard</field>

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-05-18 05:15+0000\n"
"X-Launchpad-Export-Date: 2010-05-19 05:12+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-03-13 10:33+0000\n"
"Last-Translator: Cédric VALMARY (Per Tot en òc) <cvalmary@yahoo.fr>\n"
"PO-Revision-Date: 2010-05-18 08:45+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-04-17 04:07+0000\n"
"X-Launchpad-Export-Date: 2010-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@ -175,7 +175,7 @@ msgstr ""
#. module: account
#: view:account.move:0
msgid "Total Credit"
msgstr "Total crrdit"
msgstr "Credit Total"
#. module: account
#: field:account.config.wizard,charts:0
@ -255,7 +255,7 @@ msgstr "Taxas provesidors"
#. module: account
#: view:account.move:0
msgid "Total Debit"
msgstr "Total debit"
msgstr "Debit Total"
#. module: account
#: rml:account.tax.code.entries:0
@ -808,7 +808,6 @@ msgstr ""
msgid "Move Lines"
msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.report_account_analytic_journal_tree
#: model:ir.ui.menu,name:account.report_account_analytic_journal_print
@ -2136,7 +2135,8 @@ msgid "Analytic Entry"
msgstr ""
#. module: account
#: view:res.company:0 field:res.company,overdue_msg:0
#: view:res.company:0
#: field:res.company,overdue_msg:0
msgid "Overdue Payments Message"
msgstr ""

View File

@ -23,8 +23,8 @@ import time
import decimal_precision as dp
import netsvc
from osv import fields, osv, orm
import ir
import pooler
from tools import config
from tools.translate import _
@ -217,6 +217,7 @@ class account_invoice(osv.osv):
_name = "account.invoice"
_description = 'Invoice'
_order = "number"
_log_create = True
_columns = {
'name': fields.char('Description', size=64, select=True,readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice."),
@ -333,7 +334,14 @@ class account_invoice(osv.osv):
raise orm.except_orm(_('Configuration Error!'),
_('There is no Accounting Journal of type Sale/Purchase defined!'))
else:
raise
raise orm.except_orm(_('UnknownError'), str(e))
def confirm_paid(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'paid'}, context=context)
for (id,name) in self.name_get(cr, uid, ids):
message = _('Document ') + " '" + name + "' "+ _("has been paid.")
self.log(cr, uid, id, message)
return True
def unlink(self, cr, uid, ids, context=None):
invoices = self.read(cr, uid, ids, ['state'])
@ -350,7 +358,7 @@ class account_invoice(osv.osv):
# res = self.pool.get('res.partner').address_get(cr, uid, [part], ['invoice'])
# return [{}]
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
date_invoice=False, payment_term=False, partner_bank=False, company_id=False):
invoice_addr_id = False
contact_addr_id = False
partner_payment_term = False
@ -415,7 +423,7 @@ class account_invoice(osv.osv):
else:
result['value']['date_due'] = False
if partner_bank_id != bank_id:
if partner_bank != bank_id:
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
result['value'].update(to_update['value'])
return result
@ -450,7 +458,7 @@ class account_invoice(osv.osv):
def onchange_invoice_line(self, cr, uid, ids, lines):
return {}
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id):
def onchange_partner_bank(self, cursor, user, ids, partner_bank):
return {'value': {}}
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id):
@ -650,6 +658,16 @@ class account_invoice(osv.osv):
self.write(cr, uid, [inv.id], res['value'])
return True
def finalize_invoice_move_lines(self, cr, uid, invoice_browse, move_lines):
"""finalize_invoice_move_lines(cr, uid, invoice, move_lines) -> move_lines
Hook method to be overridden in additional modules to verify and possibly alter the
move lines to be created by an invoice, for special cases.
:param invoice_browse: browsable record of the invoice that is generating the move lines
:param move_lines: list of dictionaries with the account.move.lines (as for create())
:return: the (possibly updated) final move_lines to create for this invoice
"""
return move_lines
def check_tax_lines(self, cr, uid, inv, compute_taxes, ait_obj):
if not inv.tax_line:
for tax in compute_taxes.values():
@ -912,7 +930,12 @@ class account_invoice(osv.osv):
# will be automatically deleted too
account_move_obj.unlink(cr, uid, [i['move_id'][0]])
if i['payment_ids']:
self.pool.get('account.move.line').write(cr, uid, i['payment_ids'], {'reconcile_partial_id': False})
account_move_line_obj = self.pool.get('account.move.line')
pay_ids = account_move_line_obj.browse(cr, uid , i['payment_ids'])
for move_line in pay_ids:
if move_line.reconcile_partial_id and move_line.reconcile_partial_id.line_partial_ids:
raise osv.except_osv(_('Error !'), _('You cannot cancel the Invoice which is Partially Paid! You need to unreconcile concerned payment entries!'))
self.write(cr, uid, ids, {'state':'cancel', 'move_id':False})
self._log_event(cr, uid, ids,-1.0, 'Cancel Invoice')
return True
@ -1147,14 +1170,14 @@ class account_invoice_line(osv.osv):
t = t - (p * l[2].get('quantity'))
taxes = l[2].get('invoice_line_tax_id')
if len(taxes[0]) >= 3 and taxes[0][2]:
taxes=tax_obj.browse(cr, uid, taxes[0][2])
taxes = tax_obj.browse(cr, uid, taxes[0][2])
for tax in tax_obj.compute(cr, uid, taxes, p,l[2].get('quantity'), context.get('address_invoice_id', False), l[2].get('product_id', False), context.get('partner_id', False)):
t = t - tax['amount']
return t
return 0
_name = "account.invoice.line"
_description = "Invoice line"
_description = "Invoice Line"
_columns = {
'name': fields.char('Description', size=256, required=True),
'origin': fields.char('Origin', size=256, help="Reference of the document that produced this invoice."),
@ -1200,8 +1223,8 @@ class account_invoice_line(osv.osv):
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
fpos = fposition_id and self.pool.get('account.fiscal.position').browse(cr, uid, fposition_id) or False
lang=part.lang
context.update({'lang': lang})
if part.lang:
context.update({'lang': part.lang})
result = {}
res = self.pool.get('product.product').browse(cr, uid, product, context=context)

View File

@ -113,6 +113,7 @@
</form>
<tree string="Bank Details">
<field name="state"/>
<field name="bank"/>
<field name="owner_name"/>
<field name="acc_number"/>
</tree>

View File

@ -25,13 +25,13 @@
<field name="arch" type="xml">
<search string="Analytic Account">
<group col="8" colspan="4">
<filter icon="gtk-execute" string="My Accounts" domain="[('user_id','=',uid)]" help="My Analytic Accounts"/>
<filter icon="gtk-execute" string="Current" domain="[('state','=','open')]" help="Current Accounts"/>
<filter icon="gtk-execute" string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="partner_id" select="1"/>
<field name="user_id" widget="selection"/>
</group>
</search>
</field>
@ -97,6 +97,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,graph,form</field>
<field name="view_id" ref="view_account_analytic_account_tree"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="account.view_account_analytic_account_search"/>
</record>
<!--<menuitem id="menu_analytic_account" name="Analytic Accounts" parent="account.menu_analytic_accounting"/>-->
@ -188,11 +189,11 @@
<field name="arch" type="xml">
<search string="Search Analytic Lines">
<group col='6' colspan='4'>
<filter icon="gtk-execute" string="My" domain="[('user_id','=',uid)]" help="My Analytic Entries"/>
<field name="name" select="1"/>
<field name="journal_id" select="1"/>
<field name="account_id" select="1"/>
<field name="date" select="1"/>
<field name="user_id" widget="selection"/>
</group>
</search>
</field>
@ -202,6 +203,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.analytic.line</field>
<field name="view_type">form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="view_id" ref="view_account_analytic_line_tree"/>
</record>
<wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Entries by Line"/>

View File

@ -54,12 +54,12 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
self.cr.execute("SELECT abs(sum(amount)) AS balance \
FROM account_analytic_line \
WHERE date>=%s AND date<=%s AND amount>0 AND general_account_id = %s", (date1, date2, a['id']))
WHERE date>=%s AND date<=%s AND amount<0 AND general_account_id = %s", (date1, date2, a['id']))
(ad,) = self.cr.fetchone()
ad = ad or 0.0
self.cr.execute("SELECT abs(sum(amount)) AS balance \
FROM account_analytic_line \
WHERE date>=%s AND date<=%s AND amount<0 AND general_account_id = %s", (date1, date2, a['id']))
WHERE date>=%s AND date<=%s AND amount>0 AND general_account_id = %s", (date1, date2, a['id']))
(ac,) = self.cr.fetchone()
ac = ac or 0.0

View File

@ -44,12 +44,7 @@
<filter string="End" icon="terp-account" domain="[('date_end','=',time.strftime('%%Y/%%m/%%d'))]"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="user_id" widget="selection">
<filter icon="terp-account"
string="My Accounts"
name="User"
domain="[('user_id','=',uid)]"/>
</field>
<field name="user_id" widget="selection"/>
<field name="partner_id"/>
</group>
<newline/>

View File

@ -79,10 +79,6 @@
<field name="product_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-account"
string="My Invoices"
help = "My Invoices"
domain="[('user_id','=',uid)]" />
<filter icon="terp-account"
string="Invoices Non Users"
help="Invoices Non Users"
@ -141,7 +137,7 @@
<field name="res_model">account.invoice.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}</field>
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[],'search_default_user_id':uid}</field>
<field name="search_view_id" ref="view_account_invoice_report_search"/>
</record>

View File

@ -84,8 +84,8 @@
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<images/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
<para style="terp_default_8">[[ setLang(o.lang) ]]</para>
@ -177,16 +177,16 @@
<para style="terp_default_Centre_9">[[ line['ref'] ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ line['date_maturity'] ]]</para>
<para style="terp_default_Centre_9">[[ line['date_maturity'] and formatLang(line['date_maturity'],date=True) or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(line['debit']) and formatLang(line['debit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) ]]</para>
<para style="terp_default_Right_9">[[ (line['account_id']['type'] == 'receivable' and formatLang(line['debit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['credit'] * -1) or ' ') ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(line['credit']) and formatLang(line['credit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) ]]</para>
<para style="terp_default_Right_9">[[ (line['account_id']['type'] == 'receivable' and formatLang(line['credit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['debit'] * -1) or 0) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang((line['date_maturity'] &lt; time.strftime('%Y-%m-%d')) and ((line['debit'] - line['credit']) * (line['account_id']['type'] == 'payable' and -1 or 1))) ]]</para>
<para style="terp_default_Right_9">[[ formatLang((line['date_maturity'] &lt; time.strftime('%Y-%m-%d'))) and (line['debit'] - line['credit']) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ line['blocked'] and 'X' or '' ]]</para>
@ -205,13 +205,13 @@
<para style="terp_default_Bold_9">Sub-Total : </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x + (y['debit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0))) ]]</para>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x + ((y['account_id']['type'] == 'receivable' and y['debit'] or 0) or (y['account_id']['type'] == 'payable' and y['credit'] * -1 or 0)), getLines(o), 0))) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x ,y: x + (y['credit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0))) ]] </para>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x + ((y['account_id']['type'] == 'receivable' and y['credit'] or 0) or (y['account_id']['type'] == 'payable' and y['debit'] * -1 or 0)), getLines(o), 0))) ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), filter(lambda x: x['date_maturity'] &lt; time.strftime('%Y-%m-%d'), getLines(o)), 0))) ]]</para>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x + (y['debit'] - y['credit']), filter(lambda x: x['date_maturity'] &lt; time.strftime('%Y-%m-%d'), getLines(o)), 0))) ]]</para>
</td>
<td>
<para style="terp_default_9">
@ -229,7 +229,7 @@
<para style="terp_default_Bold_9">Balance : </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x +((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0))) ]]</para>
<para style="terp_default_Right_9">[[ formatLang((reduce(lambda x, y: x +(y['debit'] - y['credit']), getLines(o), 0))) ]]</para>
</td>
<td>
<para style="terp_default_9">
@ -248,9 +248,9 @@
</td>
</tr>
</blockTable>
<para style="terp_default_9">Total amount due: [[ formatLang((reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0))) ]] [[ company.currency_id.name ]].</para>
<para style="terp_default_9">Total amount due: [[ formatLang((reduce(lambda x, y: x + (y['debit'] - y['credit']), getLines(o), 0))) ]] [[ company.currency_id.name ]].</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</story>
</document>
</document>

View File

@ -15,8 +15,8 @@
"access_account_move","account.move","model_account_move","account.group_account_user",1,1,1,1
"access_account_move_line","account.move.line","model_account_move_line","account.group_account_user",1,1,1,1
"access_account_move_reconcile","account.move.reconcile","model_account_move_reconcile","account.group_account_user",1,1,1,1
"access_account_tax_code","account.tax.code","model_account_tax_code",,1,0,0,0
"access_account_tax","account.tax","model_account_tax",,1,0,0,0
"access_account_tax_code","account.tax.code","model_account_tax_code","account.group_account_invoice",1,0,0,0
"access_account_tax","account.tax","model_account_tax","account.group_account_invoice",1,0,0,0
"access_account_model","account.model","model_account_model","account.group_account_user",1,1,1,1
"access_account_model_line","account.model.line","model_account_model_line","account.group_account_user",1,1,1,1
"access_account_subscription","account.subscription","model_account_subscription","account.group_account_user",1,1,1,1
@ -93,3 +93,13 @@
"access_report_account_type_sales","report.account_type.sales","model_report_account_type_sales","account.group_account_manager",1,0,0,0
"access_report_account_sales","report.account.sales","model_report_account_sales","account.group_account_manager",1,0,0,0
"access_account_invoice_report","account.invoice.report","model_account_invoice_report","account.group_account_manager",1,0,0,0
"access_project_account_analytic_line","project.account.analytic.line","model_project_account_analytic_line","account.group_account_manager",1,1,1,1
"access_account_move_line_reconcile_select","account.move.line.reconcile.select","model_account_move_line_reconcile_select","account.group_account_manager",1,1,1,1
"access_account_move_line_unreconcile_select","account.move.line.unreconcile.select","model_account_move_line_unreconcile_select","account.group_account_manager",1,1,1,1
"access_account_invoice_refund","account.invoice.refund","model_account_invoice_refund","account.group_account_manager",1,1,1,1
"access_account_move_journal","account.move.journal","model_account_move_journal","account.group_account_manager",1,1,1,1
"access_account_move_bank_reconcile","account.move.bank.reconcile","model_account_move_bank_reconcile","account.group_account_manager",1,1,1,1
"access_account_subscription_generate","account.subscription.generate","model_account_subscription_generate","account.group_account_manager",1,1,1,1
"access_account_period_close","account.period.close","model_account_period_close","account.group_account_manager",1,1,1,1
"access_account_fiscalyear_close_state","account.fiscalyear.close.state","model_account_fiscalyear_close_state","account.group_account_manager",1,1,1,1
"access_account_chart","account.chart","model_account_chart","account.group_account_manager",1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
15 access_account_move account.move model_account_move account.group_account_user 1 1 1 1
16 access_account_move_line account.move.line model_account_move_line account.group_account_user 1 1 1 1
17 access_account_move_reconcile account.move.reconcile model_account_move_reconcile account.group_account_user 1 1 1 1
18 access_account_tax_code account.tax.code model_account_tax_code account.group_account_invoice 1 0 0 0
19 access_account_tax account.tax model_account_tax account.group_account_invoice 1 0 0 0
20 access_account_model account.model model_account_model account.group_account_user 1 1 1 1
21 access_account_model_line account.model.line model_account_model_line account.group_account_user 1 1 1 1
22 access_account_subscription account.subscription model_account_subscription account.group_account_user 1 1 1 1
93 access_report_account_type_sales report.account_type.sales model_report_account_type_sales account.group_account_manager 1 0 0 0
94 access_report_account_sales report.account.sales model_report_account_sales account.group_account_manager 1 0 0 0
95 access_account_invoice_report account.invoice.report model_account_invoice_report account.group_account_manager 1 0 0 0
96 access_project_account_analytic_line project.account.analytic.line model_project_account_analytic_line account.group_account_manager 1 1 1 1
97 access_account_move_line_reconcile_select account.move.line.reconcile.select model_account_move_line_reconcile_select account.group_account_manager 1 1 1 1
98 access_account_move_line_unreconcile_select account.move.line.unreconcile.select model_account_move_line_unreconcile_select account.group_account_manager 1 1 1 1
99 access_account_invoice_refund account.invoice.refund model_account_invoice_refund account.group_account_manager 1 1 1 1
100 access_account_move_journal account.move.journal model_account_move_journal account.group_account_manager 1 1 1 1
101 access_account_move_bank_reconcile account.move.bank.reconcile model_account_move_bank_reconcile account.group_account_manager 1 1 1 1
102 access_account_subscription_generate account.subscription.generate model_account_subscription_generate account.group_account_manager 1 1 1 1
103 access_account_period_close account.period.close model_account_period_close account.group_account_manager 1 1 1 1
104 access_account_fiscalyear_close_state account.fiscalyear.close.state model_account_fiscalyear_close_state account.group_account_manager 1 1 1 1
105 access_account_chart account.chart model_account_chart account.group_account_manager 1 1 1 1

View File

@ -42,7 +42,7 @@ class ir_sequence(osv.osv):
_columns = {
'fiscal_ids' : fields.one2many('account.sequence.fiscalyear', 'sequence_main_id', 'Sequences')
}
def get_id(self, cr, uid, sequence_id, test='id', context={}):
def get_id(self, cr, uid, sequence_id, test='id', context={}):
cr.execute('select id from ir_sequence where '+test+'=%s and active=%s', (sequence_id, True,))
res = cr.dictfetchone()
if res:

View File

@ -21,6 +21,7 @@
from osv import fields, osv
from tools.translate import _
import netsvc
import time
class account_invoice_refund(osv.osv_memory):
@ -29,10 +30,14 @@ class account_invoice_refund(osv.osv_memory):
_name = "account.invoice.refund"
_description = "Invoice Refund"
_columns = {
'date': fields.date('Operation date', required=False),
'date': fields.date('Operation date', required=False, help='This date will be used as the invoice date for Refund Invoice and Period will be chosen accordingly!'),
'period': fields.many2one('account.period', 'Force period', required=False),
'description': fields.char('Description', size=150, required=True),
}
}
_defaults = {
'date': time.strftime('%Y-%m-%d'),
}
def compute_refund(self, cr, uid, ids, mode, context=None):
"""
@ -167,7 +172,7 @@ class account_invoice_refund(osv.osv_memory):
xml_id = 'action_invoice_tree1'
elif inv.type == 'in_invoice':
xml_id = 'action_invoice_tree2'
elif type == 'out_refund':
elif inv.type == 'out_refund':
xml_id = 'action_invoice_tree3'
else:
xml_id = 'action_invoice_tree4'

View File

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

View File

@ -29,11 +29,17 @@ class account_unreconcile(osv.osv_memory):
obj_move_reconcile = self.pool.get('account.move.reconcile')
if context is None:
context = {}
recs = obj_move_line.read(cr, uid, context['active_ids'], ['reconcile_id',])
recs = filter(lambda x: x['reconcile_id'], recs)
rec_ids = [rec['reconcile_id'][0] for rec in recs]
if len(rec_ids):
obj_move_reconcile.unlink(cr, uid, rec_ids)
recs = pool.get('account.move.line').read(cr, uid, data['ids'], ['reconcile_id','reconcile_partial_id'])
unlink_ids = []
full_recs = filter(lambda x: x['reconcile_id'], recs)
rec_ids = [rec['reconcile_id'][0] for rec in full_recs]
part_recs = filter(lambda x: x['reconcile_partial_id'], recs)
part_rec_ids = [rec['reconcile_partial_id'][0] for rec in part_recs]
unlink_ids += rec_ids
unlink_ids += part_rec_ids
if len(unlink_ids):
pooler.get_pool(cr.dbname).get('account.move.reconcile').unlink(cr, uid, unlink_ids)
return {}
account_unreconcile()
@ -44,10 +50,11 @@ class account_unreconcile_reconcile(osv.osv_memory):
def trans_unrec_reconcile(self, cr, uid, ids, context=None):
obj_move_reconcile = self.pool.get('account.move.reconcile')
rec_ids = context['active_ids']
if context is None:
context = {}
if len(rec_ids):
obj_move_reconcile.unlink(cr, uid, context['active_ids'])
obj_move_reconcile.unlink(cr, uid, rec_ids)
return {}
account_unreconcile_reconcile()

View File

@ -393,7 +393,7 @@ account_analytic_account()
class account_analytic_account_summary_user(osv.osv):
_name = "account_analytic_analysis.summary.user"
_description = "Hours summary by user"
_description = "Hours Summary by User"
_order='user'
_auto = False
_rec_name = 'user'

View File

@ -25,7 +25,7 @@ import time
class account_analytic_default(osv.osv):
_name = 'account.analytic.default'
_description = 'Analytic Distributions'
_description = 'Analytic Distribution'
_rec_name = 'analytic_id'
_order = 'sequence'
_columns = {
@ -69,7 +69,7 @@ account_analytic_default()
class account_invoice_line(osv.osv):
_inherit = 'account.invoice.line'
_description = 'account invoice line'
_description = 'Invoice Line'
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition=False, price_unit=False, address_invoice_id=False, currency_id=False, context={}):
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition, price_unit, address_invoice_id, currency_id=currency_id, context=context)
@ -103,6 +103,8 @@ class sale_order_line(osv.osv):
# Method overridden to set the analytic account by default on criterion match
def invoice_line_create(self, cr, uid, ids, context={}):
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
if not ids:
return create_ids
sale_line_obj = self.browse(cr, uid, ids[0], context)
pool_inv_line = self.pool.get('account.invoice.line')

View File

@ -54,7 +54,7 @@ class one2many_mod2(fields.one2many):
class account_analytic_plan(osv.osv):
_name = "account.analytic.plan"
_description = "Analytic Plans"
_description = "Analytic Plan"
_columns = {
'name': fields.char('Analytic Plan', size=64, required=True, select=True,),
'plan_ids': fields.one2many('account.analytic.plan.line','plan_id','Analytic Plans'),
@ -63,7 +63,7 @@ account_analytic_plan()
class account_analytic_plan_line(osv.osv):
_name = "account.analytic.plan.line"
_description = "Analytic Plan Lines"
_description = "Analytic Plan Line"
_columns = {
'plan_id':fields.many2one('account.analytic.plan','Analytic Plan'),
'name': fields.char('Plan Name', size=64, required=True, select=True),
@ -297,14 +297,15 @@ class account_move_line(osv.osv):
def create_analytic_lines(self, cr, uid, ids, context={}):
super(account_move_line, self).create_analytic_lines(cr, uid, ids, context)
analytic_line_obj = self.pool.get('account.analytic.line')
for line in self.browse(cr, uid, ids, context):
if line.analytics_id:
if not line.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (line.journal_id.name,))
toremove = self.pool.get('account.analytic.line').search(cr, uid, [('move_id','=',line.id)], context=context)
toremove = analytic_line_obj.search(cr, uid, [('move_id','=',line.id)], context=context)
if toremove:
line.unlink(cr, uid, toremove, context=context)
analytic_line_obj.unlink(cr, uid, toremove, context=context)
for line2 in line.analytics_id.account_ids:
val = (line.credit or 0.0) - (line.debit or 0.0)
amt=val * (line2.rate/100)
@ -321,7 +322,7 @@ class account_move_line(osv.osv):
'journal_id': line.journal_id.analytic_journal_id.id,
'ref': line.ref,
}
ali_id=self.pool.get('account.analytic.line').create(cr,uid,al_vals)
ali_id=analytic_line_obj.create(cr, uid, al_vals, context=context)
return True
account_move_line()

View File

@ -24,7 +24,7 @@ from osv import fields, osv
class purchase_order(osv.osv):
_name = "purchase.order"
_inherit = "purchase.order"
_description = "Purchase order"
_description = "Purchase Order"
def inv_line_create(self, cr, uid, a, ol):
line = super(purchase_order, self).inv_line_create(cr, uid, a, ol)
@ -37,5 +37,4 @@ class purchase_order(osv.osv):
a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, oa)
line[2].update({'account_id': a})
return line
purchase_order()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
purchase_order()

View File

@ -239,7 +239,7 @@ class crossovered_budget_lines(osv.osv):
res[line.id]=0.00
return res
_name="crossovered.budget.lines"
_description = "Budget Lines"
_description = "Budget Line"
_columns = {
'crossovered_budget_id': fields.many2one('crossovered.budget', 'Budget', ondelete='cascade', select=True, required=True),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account',required=True),

View File

@ -0,0 +1,486 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:42+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_budget
#: field:crossovered.budget,creating_user_id:0
msgid "Responsible User"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "% performance"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
msgid "Budgetary Positions"
msgstr ""
#. module: account_budget
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Printed at:"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
msgid "Confirm"
msgstr "Confirmar"
#. module: account_budget
#: field:crossovered.budget,validating_user_id:0
msgid "Validate User"
msgstr ""
#. module: account_budget
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Confirmed"
msgstr ""
#. module: account_budget
#: field:account.budget.post.dotation,period_id:0
msgid "Period"
msgstr "Periòde"
#. module: account_budget
#: wizard_field:account.budget.report,init,date2:0
#: wizard_field:wizard.analytic.account.budget.report,init,date_to:0
#: wizard_field:wizard.crossovered.budget,init,date_to:0
#: wizard_field:wizard.crossovered.budget.summary,init,date_to:0
msgid "End of period"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "Printing date:"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Draft"
msgstr "Borrolhon"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "at"
msgstr "a"
#. module: account_budget
#: view:account.budget.post:0
msgid "Dotations"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "Performance"
msgstr "Performància"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "Currency:"
msgstr "Devisa :"
#. module: account_budget
#: rml:account.budget:0
msgid "From"
msgstr "De"
#. module: account_budget
#: field:crossovered.budget.lines,percentage:0
msgid "Percentage"
msgstr "Percentatge"
#. module: account_budget
#: rml:account.budget:0
msgid "Results"
msgstr "Resultats"
#. module: account_budget
#: field:crossovered.budget,state:0
msgid "Status"
msgstr "Estat"
#. module: account_budget
#: model:ir.module.module,description:account_budget.module_meta_information
msgid ""
"This module allows accountants to manage analytic and crossovered budgets.\n"
"\n"
"Once the Master Budgets and the Budgets defined (in Financial\n"
"Management/Budgets/), the Project Managers can set the planned amount on "
"each\n"
"Analytic Account.\n"
"\n"
"The accountant has the possibility to see the total of amount planned for "
"each\n"
"Budget and Master Budget in order to ensure the total planned is not\n"
"greater/lower than what he planned for this Budget/Master Budget. Each list "
"of\n"
"record can also be switched to a graphical view of it.\n"
"\n"
"Three reports are available:\n"
" 1. The first is available from a list of Budgets. It gives the "
"spreading, for these Budgets, of the Analytic Accounts per Master Budgets.\n"
"\n"
" 2. The second is a summary of the previous one, it only gives the "
"spreading, for the selected Budgets, of the Analytic Accounts.\n"
"\n"
" 3. The last one is available from the Analytic Chart of Accounts. It "
"gives the spreading, for the selected Analytic Accounts, of the Master "
"Budgets per Budgets.\n"
"\n"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "%"
msgstr "%"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Description"
msgstr "Descripcion"
#. module: account_budget
#: rml:account.analytic.account.budget:0
msgid "Analytic Account :"
msgstr "Compte Analitic :"
#. module: account_budget
#: wizard_button:account.budget.report,init,report:0
#: wizard_button:wizard.analytic.account.budget.report,init,report:0
#: wizard_button:wizard.crossovered.budget,init,report:0
#: wizard_button:wizard.crossovered.budget.summary,init,report:0
msgid "Print"
msgstr "Estampar"
#. module: account_budget
#: rml:account.budget:0
msgid "A/c No."
msgstr ""
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "to"
msgstr "a"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "Total :"
msgstr "Total :"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: field:crossovered.budget.lines,planned_amount:0
#: rml:crossovered.budget.report:0
msgid "Planned Amount"
msgstr ""
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Perc(%)"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "Period Budget"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "Budget Analysis"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
#: selection:crossovered.budget,state:0
msgid "Done"
msgstr "Acabat"
#. module: account_budget
#: view:crossovered.budget:0
msgid "Validate"
msgstr "Validar"
#. module: account_budget
#: wizard_view:wizard.crossovered.budget,init:0
#: wizard_view:wizard.crossovered.budget.summary,init:0
msgid "Select Options"
msgstr ""
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: field:crossovered.budget.lines,practical_amount:0
#: rml:crossovered.budget.report:0
msgid "Practical Amount"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,date_to:0
#: field:crossovered.budget.lines,date_to:0
msgid "End Date"
msgstr "Data de fin"
#. module: account_budget
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: account_budget
#: field:crossovered.budget.lines,theoritical_amount:0
msgid "Theoritical Amount"
msgstr ""
#. module: account_budget
#: field:account.budget.post,name:0
#: field:account.budget.post.dotation,name:0
#: field:crossovered.budget,name:0
msgid "Name"
msgstr "Nom"
#. module: account_budget
#: model:ir.actions.wizard,name:account_budget.wizard_crossovered_budget_menu_1
msgid "Print Summary of Budgets"
msgstr ""
#. module: account_budget
#: model:ir.actions.wizard,name:account_budget.wizard_budget_spread
msgid "Spread amount"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
#: view:account.budget.post:0
msgid "Lines"
msgstr "Linhas"
#. module: account_budget
#: rml:account.budget:0
#: view:crossovered.budget:0
#: field:crossovered.budget.lines,crossovered_budget_id:0
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view
#: model:ir.actions.wizard,name:account_budget.wizard_budget_report
#: model:ir.model,name:account_budget.model_crossovered_budget
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_view
msgid "Budget"
msgstr "Budgèt"
#. module: account_budget
#: field:account.budget.post.dotation,post_id:0
msgid "Item"
msgstr "Element"
#. module: account_budget
#: field:account.budget.post.dotation,amount:0
#: wizard_field:account.budget.spread,init,amount:0
msgid "Amount"
msgstr "Soma"
#. module: account_budget
#: field:crossovered.budget.lines,paid_date:0
msgid "Paid Date"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.action_account_budget_post_tree
#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
#: model:ir.ui.menu,name:account_budget.next_id_31
msgid "Budgets"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Cancelled"
msgstr "Anullat"
#. module: account_budget
#: view:account.budget.post.dotation:0
#: model:ir.model,name:account_budget.model_account_budget_post_dotation
msgid "Budget Dotation"
msgstr ""
#. module: account_budget
#: view:account.budget.post.dotation:0
msgid "Budget Dotations"
msgstr ""
#. module: account_budget
#: rml:account.budget:0
msgid "Budget Item Detail"
msgstr ""
#. module: account_budget
#: view:account.budget.post:0
#: field:crossovered.budget.lines,general_budget_id:0
#: model:ir.model,name:account_budget.model_account_budget_post
msgid "Budgetary Position"
msgstr ""
#. module: account_budget
#: wizard_field:account.budget.report,init,date1:0
#: wizard_field:wizard.analytic.account.budget.report,init,date_from:0
#: wizard_field:wizard.crossovered.budget,init,date_from:0
#: wizard_field:wizard.crossovered.budget.summary,init,date_from:0
msgid "Start of period"
msgstr ""
#. module: account_budget
#: model:ir.actions.report.xml,name:account_budget.account_analytic_account_budget
#: model:ir.actions.report.xml,name:account_budget.report_crossovered_budget
#: model:ir.actions.wizard,name:account_budget.account_analytic_account_budget_report
#: model:ir.actions.wizard,name:account_budget.wizard_crossovered_budget_menu
msgid "Print Budgets"
msgstr ""
#. module: account_budget
#: field:account.budget.post,code:0
#: field:crossovered.budget,code:0
msgid "Code"
msgstr "Còde"
#. module: account_budget
#: field:account.budget.post.dotation,tot_planned:0
msgid "Total Planned Amount"
msgstr ""
#. module: account_budget
#: wizard_view:wizard.analytic.account.budget.report,init:0
msgid "Select Dates Period"
msgstr ""
#. module: account_budget
#: field:account.budget.post,dotation_ids:0
msgid "Spreading"
msgstr ""
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Theoretical Amount"
msgstr ""
#. module: account_budget
#: wizard_field:account.budget.spread,init,fiscalyear:0
msgid "Fiscal Year"
msgstr ""
#. module: account_budget
#: field:crossovered.budget.lines,analytic_account_id:0
msgid "Analytic Account"
msgstr "Compte Analitic"
#. module: account_budget
#: rml:crossovered.budget.report:0
msgid "Budget :"
msgstr "Budgèt :"
#. module: account_budget
#: rml:account.budget:0
#: view:account.budget.post:0
#: wizard_view:account.budget.spread,init:0
#: wizard_button:account.budget.spread,init,spread:0
msgid "Spread"
msgstr "Difusir"
#. module: account_budget
#: view:account.budget.post:0
#: field:account.budget.post,account_ids:0
msgid "Accounts"
msgstr "Comptes"
#. module: account_budget
#: model:ir.actions.report.xml,name:account_budget.account_budget
msgid "Print Budget"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
#: field:account.analytic.account,crossovered_budget_line:0
#: view:account.budget.post:0
#: field:account.budget.post,crossovered_budget_line:0
#: view:crossovered.budget:0
#: field:crossovered.budget,crossovered_budget_line:0
#: view:crossovered.budget.lines:0
#: model:ir.actions.act_window,name:account_budget.act_account_analytic_account_cb_lines
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_lines_view
#: model:ir.model,name:account_budget.model_crossovered_budget_lines
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_lines_view
msgid "Budget Lines"
msgstr ""
#. module: account_budget
#: wizard_button:account.budget.report,init,end:0
#: wizard_button:account.budget.spread,init,end:0
#: view:crossovered.budget:0
#: wizard_button:wizard.analytic.account.budget.report,init,end:0
#: wizard_button:wizard.crossovered.budget,init,end:0
#: wizard_button:wizard.crossovered.budget.summary,init,end:0
msgid "Cancel"
msgstr "Anullar"
#. module: account_budget
#: model:ir.module.module,shortdesc:account_budget.module_meta_information
msgid "Budget Management"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,date_from:0
#: field:crossovered.budget.lines,date_from:0
msgid "Start Date"
msgstr "Data de començament"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Analysis from"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Validated"
msgstr ""
#. module: account_budget
#: wizard_view:account.budget.report,init:0
msgid "Select period"
msgstr "Seleccionatz un periòde"

View File

@ -0,0 +1,23 @@
# Thai translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-20 04:33+0000\n"
"Last-Translator: Songpon Phusing <p.songpon@gmail.com>\n"
"Language-Team: Thai <th@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-05-20 05:23+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
#: model:ir.module.module,description:account_chart.module_meta_information
msgid "Remove minimal account chart"
msgstr "ทำการลบตัวอย่างผังบัญชีแบบง่าย"

View File

@ -23,7 +23,7 @@ from osv import fields, osv
class followup(osv.osv):
_name = 'account_followup.followup'
_description = 'Follow-Ups'
_description = 'Follow-Up'
_columns = {
'name': fields.char('Name', size=64, required=True),
'description': fields.text('Description'),
@ -34,7 +34,7 @@ followup()
class followup_line(osv.osv):
_name = 'account_followup.followup.line'
_description = 'Follow-Ups Criteria'
_description = 'Follow-Up Criteria'
_columns = {
'name': fields.char('Name', size=64, required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of follow-up lines."),

View File

@ -30,7 +30,7 @@ def _code_get(self, cr, uid, context={}):
class account_followup_stat(osv.osv):
_name = "account_followup.stat"
_description = "Followup statistics"
_description = "Followup Statistics"
_auto = False
_columns = {
'name': fields.many2one('res.partner', 'Partner', readonly=True),

View File

@ -124,7 +124,7 @@
</field>
</record>
<act_window domain="[('partner_id', '=', active_id),('reconcile_id','=',False),('account_id.reconcile', '=', True)]" id="account.act_account_partner_account_move_unreconciled" name="Receivables &amp; Payables" res_model="account.move.line" view="account_move_line_partner_tree"/>
<act_window domain="[('partner_id', '=', active_id),('reconcile_id','=',False),('account_id.reconcile', '=', True),('account_id.type', 'in', ['receivable', 'payable'])]" id="account.act_account_partner_account_move_unreconciled" name="Receivables &amp; Payables" res_model="account.move.line" view="account_move_line_partner_tree"/>
<act_window domain="[('reconcile_id', '=', False),('account_id.type','=','receivable')]" id="act_account_partner_account_move_all" name="All receivable entries" res_model="account.move.line" src_model="" view="account_move_line_partner_tree"/>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-01-07 13:19+0000\n"
"Last-Translator: opix <inur.opix@gmail.com>\n"
"PO-Revision-Date: 2010-05-18 11:05+0000\n"
"Last-Translator: Pandu Pradana <p4ndupr4d4n4@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-04-17 04:12+0000\n"
"X-Launchpad-Export-Date: 2010-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_invoice_layout
@ -35,7 +35,7 @@ msgstr ""
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Cancelled Invoice"
msgstr ""
msgstr "Pembatalan Tagihan"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
@ -56,7 +56,7 @@ msgstr "Potongan (%)"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "(Incl. taxes):"
msgstr ""
msgstr "(Termasuk pajak):"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
@ -132,7 +132,7 @@ msgstr "Harga"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "/ ("
msgstr ""
msgstr "/ ("
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@ -147,7 +147,7 @@ msgstr "Rekening Asal"
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
msgid "Write Messages"
msgstr ""
msgstr "Tulis Pesan"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@ -212,7 +212,7 @@ msgstr "Invoice dengan Layout"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description / Taxes"
msgstr ""
msgstr "Penjelasan / Pajak"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@ -222,7 +222,7 @@ msgstr "Jumlah"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Description/Taxes"
msgstr ""
msgstr "Penjelasan/Pajak"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@ -262,7 +262,7 @@ msgstr "Faktur Pembelian"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Note :"
msgstr ""
msgstr "Catatan :"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
@ -272,12 +272,12 @@ msgstr "Pajak"
#. module: account_invoice_layout
#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
msgid "account_invoice_layout"
msgstr ""
msgstr "Tatanan_tagihan_akun"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0
msgid "Total (Excl. taxes):"
msgstr ""
msgstr "Jumlah (Tidak termasuk pajak):"
#. module: account_invoice_layout
#: rml:account.invoice.layout:0

View File

@ -28,7 +28,7 @@ import pooler
class payment_type(osv.osv):
_name= 'payment.type'
_description= 'Payment type'
_description= 'Payment Type'
_columns= {
'name': fields.char('Name', size=64, required=True,help='Payment Type'),
'code': fields.char('Code', size=64, required=True,help='Specifies the Code for Payment Type'),
@ -43,7 +43,7 @@ payment_type()
class payment_mode(osv.osv):
_name= 'payment.mode'
_description= 'Payment mode'
_description= 'Payment Mode'
_columns= {
'name': fields.char('Name', size=64, required=True,help='Mode of Payment'),
'bank_id': fields.many2one('res.partner.bank', "Bank account",

View File

@ -25,6 +25,8 @@
<field name="partner_id"/>
<field name="ref"/>
<field name="name"/>
<field name="journal_id"/>
<field name="account_id"/>
<field name="date_maturity"/>
<field name="date"/>
<field name="debit" sum="Total debit"/>
@ -279,7 +281,6 @@
<field name="currency"/>
<field name="bank_id" domain="[('partner_id', '=', partner_id)]"/>
<field name="move_line_id" on_change="onchange_move_line(move_line_id,parent.mode)"/>
<field domain="[('partner_id', '=', partner_id)]" name="bank_id"/>
<field name="create_date"/>
<field name="name"/>
</tree>

View File

@ -104,7 +104,7 @@ class payment_order_create(osv.osv_memory):
# 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 = 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)

View File

@ -106,5 +106,3 @@ class account_payment_populate_statement(osv.osv_memory):
return {'type' : 'ir.actions.act_window_close'}
account_payment_populate_statement()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -32,7 +32,7 @@ from mx.DateTime import RelativeDateTime, now, DateTime, localtime
class account_report(osv.osv):
_name = "account.report.report"
_description = "Account reporting"
_description = "Account Reporting"
# _color = [
# ('', ''),
# ('green','Green'),

View File

@ -0,0 +1,532 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:43+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_report
#: field:account.report.history,name:0
#: selection:account.report.report,type:0
#: model:ir.model,name:account_report.model_account_report_history
msgid "Indicator"
msgstr ""
#. module: account_report
#: wizard_field:print.indicators.pdf,init,file:0
msgid "Select a PDF File"
msgstr ""
#. module: account_report
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: account_report
#: view:account.report.report:0
msgid "Operators:"
msgstr ""
#. module: account_report
#: field:account.report.report,parent_id:0
msgid "Parent"
msgstr "Parent"
#. module: account_report
#: field:account.report.report,disp_graph:0
msgid "Display As Graph"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Account Debit:"
msgstr ""
#. module: account_report
#: selection:account.report.report,type:0
msgid "Others"
msgstr "Autres"
#. module: account_report
#: view:account.report.report:0
msgid "balance(['ACCOUNT_CODE',],fiscalyear)"
msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid "Tabular Summary"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Notes"
msgstr "Nòtas"
#. module: account_report
#: view:account.report.report:0
msgid "= Goodness Indicator Limit:"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Very bad"
msgstr ""
#. module: account_report
#: field:account.report.history,val:0
#: field:account.report.report,amount:0
msgid "Value"
msgstr "Valor"
#. module: account_report
#: view:account.report.report:0
msgid "= Badness Indicator Limit:"
msgstr ""
#. module: account_report
#: view:account.report.report:0
#: selection:account.report.report,status:0
msgid "Bad"
msgstr ""
#. module: account_report
#: wizard_view:print.indicators.pdf,init:0
msgid "Select the PDF file on which Indicators will be printed."
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "> Goodness Indicator Limit:"
msgstr ""
#. module: account_report
#: field:account.report.report,badness_limit:0
msgid "Badness Indicator Limit"
msgstr ""
#. module: account_report
#: selection:account.report.report,status:0
msgid "Very Bad"
msgstr ""
#. module: account_report
#: model:ir.actions.act_window,name:account_report.account_report_history_record_structure
msgid "Indicator history"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "credit(['ACCOUNT_CODE',],fiscalyear)"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Report Amount:"
msgstr ""
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.fiscal_statements
msgid "Fiscal Statements"
msgstr ""
#. module: account_report
#: wizard_button:print.indicators,init,next:0
msgid "Next"
msgstr "Seguent"
#. module: account_report
#: model:ir.module.module,shortdesc:account_report.module_meta_information
msgid "Reporting for accounting"
msgstr ""
#. module: account_report
#: wizard_button:print.indicators,next,print:0
#: wizard_button:print.indicators.pdf,init,print:0
msgid "Print"
msgstr "Estampar"
#. module: account_report
#: field:account.report.report,type:0
msgid "Type"
msgstr "Tipe"
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.report_indicator_pdf
msgid "Print Indicators in PDF"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Account Tax Code:"
msgstr ""
#. module: account_report
#: view:account.report.report:0
#: selection:account.report.report,status:0
msgid "Good"
msgstr "Bon"
#. module: account_report
#: view:account.report.history:0
msgid "Account Report History"
msgstr ""
#. module: account_report
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: account_report
#: help:account.report.report,badness_limit:0
msgid "This Value sets the limit of badness."
msgstr ""
#. module: account_report
#: wizard_field:print.indicators,init,select_base:0
msgid "Choose Criteria"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "debit(['ACCOUNT_CODE',],fiscalyear)"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Account Credit:"
msgstr ""
#. module: account_report
#: wizard_view:print.indicators,init:0
msgid "Select the criteria based on which Indicators will be printed."
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "< Badness Indicator Limit:"
msgstr ""
#. module: account_report
#: view:account.report.report:0
#: selection:account.report.report,status:0
msgid "Very Good"
msgstr ""
#. module: account_report
#: field:account.report.report,note:0
msgid "Note"
msgstr "Nòta"
#. module: account_report
#: rml:accounting.report:0
#: rml:print.indicators:0
msgid "Currency:"
msgstr "Devisa :"
#. module: account_report
#: field:account.report.report,status:0
msgid "Status"
msgstr "Estat"
#. module: account_report
#: help:account.report.report,disp_tree:0
msgid ""
"When the indicators are printed, if one indicator is set with this field to "
"True, then it will display one more graphs with all its children in tree"
msgstr ""
#. module: account_report
#: selection:account.report.report,status:0
msgid "Normal"
msgstr "Normala"
#. module: account_report
#: view:account.report.report:0
msgid "Example: (balance(['6','45'],-1) - credit(['7'])) / report('RPT1')"
msgstr ""
#. module: account_report
#: field:account.report.report,active:0
msgid "Active"
msgstr "Actiu"
#. module: account_report
#: field:account.report.report,disp_tree:0
msgid "Display Tree"
msgstr ""
#. module: account_report
#: selection:print.indicators,init,select_base:0
msgid "Based On Fiscal Years"
msgstr ""
#. module: account_report
#: model:ir.model,name:account_report.model_account_report_report
msgid "Account reporting"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Account Balance:"
msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid "Expression :"
msgstr "Expression :"
#. module: account_report
#: view:account.report.report:0
msgid "report('REPORT_CODE')"
msgstr ""
#. module: account_report
#: field:account.report.report,expression:0
msgid "Expression"
msgstr "Expression"
#. module: account_report
#: view:account.report.report:0
msgid "Accounting reporting"
msgstr ""
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_form
#: model:ir.ui.menu,name:account_report.menu_action_account_report_form
msgid "New Reporting Item Formula"
msgstr ""
#. module: account_report
#: field:account.report.report,code:0
#: rml:accounting.report:0
msgid "Code"
msgstr "Còde"
#. module: account_report
#: field:account.report.history,tmp:0
msgid "temp"
msgstr ""
#. module: account_report
#: field:account.report.history,period_id:0
msgid "Period"
msgstr "Periòde"
#. module: account_report
#: view:account.report.report:0
msgid "General"
msgstr "General"
#. module: account_report
#: view:account.report.report:0
msgid "Legend of operators"
msgstr ""
#. module: account_report
#: wizard_button:print.indicators,init,end:0
#: wizard_button:print.indicators,next,end:0
#: wizard_button:print.indicators.pdf,init,end:0
msgid "Cancel"
msgstr "Anullar"
#. module: account_report
#: field:account.report.report,child_ids:0
msgid "Children"
msgstr "Enfants"
#. module: account_report
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: account_report
#: help:account.report.report,goodness_limit:0
msgid "This Value sets the limit of goodness."
msgstr ""
#. module: account_report
#: model:ir.actions.wizard,name:account_report.wizard_print_indicators
#: model:ir.ui.menu,name:account_report.menu_wizard_print_indicators
#: wizard_view:print.indicators,init:0
#: wizard_view:print.indicators,next:0
msgid "Print Indicators"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "+ - * / ( )"
msgstr "+ - * / ( )"
#. module: account_report
#: rml:accounting.report:0
#: rml:print.indicators:0
msgid "Printing date:"
msgstr ""
#. module: account_report
#: model:ir.actions.wizard,name:account_report.wizard_indicators_with_pdf
msgid "Indicators in PDF"
msgstr ""
#. module: account_report
#: rml:accounting.report:0
#: rml:print.indicators:0
msgid "at"
msgstr "a"
#. module: account_report
#: rml:accounting.report:0
msgid "Accounting Report"
msgstr ""
#. module: account_report
#: field:account.report.report,goodness_limit:0
msgid "Goodness Indicator Limit"
msgstr ""
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view_other
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_view_other
msgid "Other reports"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid ""
"Note: The second arguement 'fiscalyear' and 'period' are optional "
"arguements.If the value is -1,previous fiscalyear or period is considered."
msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid ")"
msgstr ")"
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view_fiscal
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_view_fiscal
msgid "Fiscal Statements reporting"
msgstr ""
#. module: account_report
#: selection:print.indicators,init,select_base:0
msgid "Based on Fiscal Periods"
msgstr ""
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.report_print_indicators
#: rml:print.indicators:0
msgid "Indicators"
msgstr "Indicadors"
#. module: account_report
#: wizard_view:print.indicators.pdf,init:0
msgid "Print Indicators with PDF"
msgstr ""
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view_indicator
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_view_indicator
msgid "Indicators reporting"
msgstr ""
#. module: account_report
#: field:account.report.report,name:0
#: rml:accounting.report:0
#: rml:print.indicators:0
msgid "Name"
msgstr "Nom"
#. module: account_report
#: wizard_field:print.indicators,next,base_selection:0
msgid "Select Criteria"
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "tax_code(['ACCOUNT_TAX_CODE',],period)"
msgstr ""
#. module: account_report
#: field:account.report.history,fiscalyear_id:0
msgid "Fiscal Year"
msgstr ""
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_define
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_view
msgid "Custom reporting"
msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid "Page"
msgstr "Pagina"
#. module: account_report
#: selection:account.report.report,type:0
msgid "View"
msgstr "Afichatge"
#. module: account_report
#: rml:print.indicators:0
msgid "Indicators -"
msgstr ""
#. module: account_report
#: help:account.report.report,disp_graph:0
msgid ""
"If the field is set to True, information will be printed as a Graph, "
"otherwise as an array."
msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Return value for status"
msgstr ""
#. module: account_report
#: field:account.report.report,sequence:0
msgid "Sequence"
msgstr "Sequéncia"
#. module: account_report
#: rml:accounting.report:0
msgid "Amount"
msgstr "Soma"
#. module: account_report
#: rml:print.indicators:0
msgid "1cm 27.7cm 20cm 27.7cm"
msgstr "1cm 27.7cm 20cm 27.7cm"
#. module: account_report
#: model:ir.module.module,description:account_report.module_meta_information
msgid ""
"Financial and accounting reporting\n"
" Fiscal statements\n"
" Indicators\n"
" "
msgstr ""
#. module: account_report
#: selection:account.report.report,type:0
msgid "Fiscal Statement"
msgstr ""

View File

@ -30,7 +30,7 @@ from mx.DateTime import RelativeDateTime, now, DateTime, localtime
class color_rml(osv.osv):
_name = "color.rml"
_description = "Rml Colors"
_description = "Rml Color"
_columns = {
'name': fields.char('Name', size=64, required=True),
'code': fields.char('code',size=64,required=True),

View File

@ -0,0 +1,246 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:40+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
#: field:color.rml,code:0
msgid "code"
msgstr "còde"
#. module: account_reporting
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Helvetica-Bold"
msgstr "Helvetica-Gras"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Helvetica"
msgstr "Helvetica"
#. module: account_reporting
#: field:account.report.bs,note:0
msgid "Note"
msgstr "Nòta"
#. module: account_reporting
#: field:account.report.bs,report_type:0
msgid "Report Type"
msgstr ""
#. module: account_reporting
#: model:ir.ui.menu,name:account_reporting.action_account_report_bs_form
#: model:ir.ui.menu,name:account_reporting.menu_finan_config_BSheet
msgid "Balance Sheet Report"
msgstr ""
#. module: account_reporting
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier-BoldOblique"
msgstr ""
#. module: account_reporting
#: wizard_button:account.account.balancesheet.report,init,report:0
msgid "Print BalanceSheet"
msgstr ""
#. module: account_reporting
#: help:account.account.balancesheet.report,init,periods:0
msgid "All periods if empty"
msgstr ""
#. module: account_reporting
#: field:account.report.bs,color_font:0
msgid "Font Color"
msgstr "Color de la poliça"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects With Accounts and child of Accounts"
msgstr ""
#. module: account_reporting
#: model:ir.module.module,description:account_reporting.module_meta_information
msgid ""
"Financial and accounting reporting\n"
" Balance Sheet Report"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects With Accounts"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier-Oblique"
msgstr ""
#. module: account_reporting
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: account_reporting
#: field:account.report.bs,name:0
#: field:color.rml,name:0
msgid "Name"
msgstr "Nom"
#. module: account_reporting
#: view:account.report.bs:0
msgid "Account reporting"
msgstr ""
#. module: account_reporting
#: model:ir.ui.menu,name:account_reporting.bs_report_action_form
msgid "Balance Sheet Report Form"
msgstr ""
#. module: account_reporting
#: view:account.report.bs:0
msgid "Notes"
msgstr "Nòtas"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-BoldItalic"
msgstr ""
#. module: account_reporting
#: model:ir.model,name:account_reporting.model_account_report_bs
msgid "Account reporting for Balance Sheet"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Courier-Bold"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-Italic"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects Only"
msgstr ""
#. module: account_reporting
#: model:ir.model,name:account_reporting.model_color_rml
msgid "Rml Colors"
msgstr ""
#. module: account_reporting
#: model:ir.module.module,shortdesc:account_reporting.module_meta_information
msgid "Reporting of Balancesheet for accounting"
msgstr ""
#. module: account_reporting
#: field:account.report.bs,code:0
msgid "Code"
msgstr "Còde"
#. module: account_reporting
#: field:account.report.bs,parent_id:0
msgid "Parent"
msgstr "Parent"
#. module: account_reporting
#: field:account.report.bs,sequence:0
msgid "Sequence"
msgstr "Sequéncia"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-Bold"
msgstr ""
#. module: account_reporting
#: view:account.report.bs:0
msgid "General"
msgstr "General"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,fiscalyear:0
msgid "Fiscal year"
msgstr "Exercici fiscal"
#. module: account_reporting
#: view:account.report.bs:0
#: field:account.report.bs,account_id:0
msgid "Accounts"
msgstr "Comptes"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,periods:0
msgid "Periods"
msgstr "Periòdes"
#. module: account_reporting
#: field:account.report.bs,color_back:0
msgid "Back Color"
msgstr ""
#. module: account_reporting
#: field:account.report.bs,child_id:0
msgid "Children"
msgstr "Enfants"
#. module: account_reporting
#: wizard_button:account.account.balancesheet.report,init,end:0
msgid "Cancel"
msgstr "Anullar"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Times-Roman"
msgstr ""
#. module: account_reporting
#: selection:account.report.bs,font_style:0
msgid "Helvetica-Oblique"
msgstr ""
#. module: account_reporting
#: field:account.report.bs,font_style:0
msgid "Font"
msgstr "Poliça de caractèr"
#. module: account_reporting
#: wizard_view:account.account.balancesheet.report,init:0
msgid "Customize Report"
msgstr ""

View File

@ -0,0 +1,601 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:57+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.act_account_acount_move_line_open1
msgid "Opening Balance Entry"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_receipt_bakreceipt_voucher_list
msgid "Bank Receipts"
msgstr "Recebuts bancaris"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Particulars"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "State :"
msgstr "Estat :"
#. module: account_voucher
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Ref. :"
msgstr "Ref. :"
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_cont_voucher_form
#: model:ir.ui.menu,name:account_voucher.menu_action_view_cont_voucher_form
msgid "Contra Voucher"
msgstr ""
#. module: account_voucher
#: field:account.voucher,company_id:0
msgid "Company"
msgstr "Entrepresa"
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_jour_voucher_form
#: model:ir.ui.menu,name:account_voucher.menu_action_view_jour_voucher_form
msgid "Journal Voucher"
msgstr "Jornal dels chèques"
#. module: account_voucher
#: rml:voucher.cash_receipt.drcr:0
msgid ","
msgstr ","
#. module: account_voucher
#: view:account.voucher:0
msgid "Set to Draft"
msgstr "Metre en Borrolhon"
#. module: account_voucher
#: wizard_button:account.voucher.open,init,open:0
msgid "Open Voucher Entries"
msgstr ""
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_voucher_line
msgid "Voucher Line"
msgstr ""
#. module: account_voucher
#: view:account.move:0
msgid "Total Credit"
msgstr "Credit Total"
#. module: account_voucher
#: field:account.voucher,account_id:0
#: field:account.voucher.line,account_id:0
msgid "Account"
msgstr "Compte"
#. module: account_voucher
#: rml:voucher.cash_amount:0
msgid "D"
msgstr "D"
#. module: account_voucher
#: field:account.account,level:0
msgid "Level"
msgstr "Nivèl"
#. module: account_voucher
#: view:account.move:0
msgid "Account Entry Line"
msgstr "Linha d'escritura comptabla"
#. module: account_voucher
#: view:account.move:0
msgid "Total Debit"
msgstr "Debit Total"
#. module: account_voucher
#: field:account.voucher,amount:0
#: field:account.voucher.line,amount:0
#: rml:voucher.cash_amount:0
msgid "Amount"
msgstr "Soma"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Receiver's Signature"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "No."
msgstr "N°"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Amount (in words) :"
msgstr ""
#. module: account_voucher
#: field:account.voucher.line,account_analytic_id:0
msgid "Analytic Account"
msgstr "Compte Analitic"
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_jour_sale_voucher_form
#: model:ir.ui.menu,name:account_voucher.menu_action_view_jour_sale_voucher_form
msgid "Journal Sale Voucher"
msgstr ""
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_receipt_vou_voucher_list
#: model:ir.ui.menu,name:account_voucher.menu_action_receipt_vou_voucher_list
msgid "Receipt Vouchers"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
msgid "Account :"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "On Account of :"
msgstr ""
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_payments_bankpay_voucher_list
#: model:ir.actions.act_window,name:account_voucher.action_payments_cashpay_voucher_list
#: model:ir.actions.act_window,name:account_voucher.action_payments_voucher_list
#: model:ir.ui.menu,name:account_voucher.menu_action_payments_voucher_list
msgid "Payment Vouchers"
msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Create"
msgstr "Crear"
#. module: account_voucher
#: selection:account.account,type1:0
#: selection:account.account.template,type1:0
msgid "None"
msgstr "Pas cap"
#. module: account_voucher
#: field:account.voucher,number:0
msgid "Number"
msgstr "Numèro"
#. module: account_voucher
#: view:account.move:0
#: field:account.voucher,state:0
#: wizard_field:account.voucher.open,init,state:0
msgid "State"
msgstr "Estat"
#. module: account_voucher
#: selection:account.account,type1:0
#: selection:account.account.template,type1:0
#: selection:account.voucher.line,type:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Debit"
msgstr "Debit"
#. module: account_voucher
#: field:account.voucher,type:0
#: field:account.voucher.line,type:0
msgid "Type"
msgstr "Tipe"
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_voucher_list
msgid "Voucher Entries"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Authorised Signatory"
msgstr ""
#. module: account_voucher
#: view:account.voucher:0
#: model:ir.actions.act_window,name:account_voucher.action_voucher_list
msgid "Vouchers"
msgstr ""
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher.line,voucher_id:0
#: model:res.request.link,name:account_voucher.req_link_voucher
msgid "Voucher"
msgstr ""
#. module: account_voucher
#: wizard_view:account.voucher.open,init:0
#: model:ir.ui.menu,name:account_voucher.menu_wizard_account_voucher_open
msgid "Open Vouchers"
msgstr ""
#. module: account_voucher
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Dated :"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_receipt_cashreceipt_voucher_list
msgid "Cash Receipts"
msgstr ""
#. module: account_voucher
#: field:account.voucher,partner_id:0
#: field:account.voucher.line,partner_id:0
msgid "Partner"
msgstr "Partenari"
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_view_bank_pay_voucher_form
msgid "New Bank Payment"
msgstr ""
#. module: account_voucher
#: view:account.voucher:0
#: field:account.voucher,payment_ids:0
msgid "Voucher Lines"
msgstr ""
#. module: account_voucher
#: field:account.voucher,currency_id:0
msgid "Currency"
msgstr "Devisa"
#. module: account_voucher
#: view:account.move:0
#: field:account.move,narration:0
#: view:account.voucher:0
#: field:account.voucher,narration:0
msgid "Narration"
msgstr ""
#. module: account_voucher
#: field:account.voucher,reference:0
msgid "Voucher Reference"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_view_cash_rec_voucher_form
msgid "New Cash Receipt"
msgstr ""
#. module: account_voucher
#: model:ir.actions.report.xml,name:account_voucher.report_account_voucher_amt
msgid "Voucher Report"
msgstr ""
#. module: account_voucher
#: field:account.account,open_bal:0
msgid "Opening Balance"
msgstr ""
#. module: account_voucher
#: selection:account.voucher,state:0
#: selection:account.voucher.open,init,state:0
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Draft"
msgstr "Borrolhon"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "PRO-FORMA"
msgstr "PRO-FORMA"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_receipt_cashreceipt_voucher_list
msgid "Cash Receipt"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_view_cash_pay_voucher_form
msgid "New Cash Payment"
msgstr ""
#. module: account_voucher
#: view:account.move:0
msgid "Optional Information"
msgstr "Entresenhas opcionalas"
#. module: account_voucher
#: view:account.voucher:0
msgid "General Entries"
msgstr ""
#. module: account_voucher
#: field:account.voucher,date:0
msgid "Date"
msgstr "Data"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid ":"
msgstr ":"
#. module: account_voucher
#: field:account.account,type1:0
#: field:account.account.template,type1:0
msgid "Dr/Cr"
msgstr ""
#. module: account_voucher
#: model:ir.actions.report.xml,name:account_voucher.report_account_voucher
msgid "Voucher Report (Cr/Dr)"
msgstr ""
#. module: account_voucher
#: field:account.move,voucher_type:0
#: wizard_field:account.voucher.open,init,type:0
msgid "Voucher Type"
msgstr ""
#. module: account_voucher
#: selection:account.account,type1:0
#: selection:account.account.template,type1:0
#: selection:account.voucher.line,type:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Credit"
msgstr "Credit"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Through :"
msgstr ""
#. module: account_voucher
#: field:account.voucher,reference_type:0
msgid "Reference Type"
msgstr ""
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_voucher
msgid "Accounting Voucher"
msgstr ""
#. module: account_voucher
#: field:account.voucher,period_id:0
msgid "Period"
msgstr "Periòde"
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_payments_bankpay_voucher_list
msgid "Bank Payments"
msgstr ""
#. module: account_voucher
#: view:account.move:0
msgid "General Information"
msgstr "Informacions generalas"
#. module: account_voucher
#: wizard_field:account.voucher.open,init,period_ids:0
msgid "Periods"
msgstr "Periòdes"
#. module: account_voucher
#: view:account.voucher:0
#: selection:account.voucher,state:0
#: wizard_button:account.voucher.open,init,end:0
#: selection:account.voucher.open,init,state:0
msgid "Cancel"
msgstr "Anullar"
#. module: account_voucher
#: view:account.voucher:0
#: selection:account.voucher,state:0
#: selection:account.voucher.open,init,state:0
msgid "Pro-forma"
msgstr "Pro-forma"
#. module: account_voucher
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: account_voucher
#: view:account.voucher:0
msgid "Other Info"
msgstr ""
#. module: account_voucher
#: model:ir.module.module,shortdesc:account_voucher.module_meta_information
msgid "Accounting Voucher Entries"
msgstr ""
#. module: account_voucher
#: field:res.currency,sub_name:0
msgid "Sub Currency"
msgstr ""
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_other_voucher_list
#: model:ir.ui.menu,name:account_voucher.menu_action_other_voucher_list
msgid "Other Vouchers"
msgstr ""
#. module: account_voucher
#: field:account.voucher.line,name:0
msgid "Description"
msgstr "Descripcion"
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Canceled"
msgstr "Anullat"
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_cash_pay_voucher_form
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Cash Payment Voucher"
msgstr ""
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_receipt_bakreceipt_voucher_list
msgid "Bank Receipt"
msgstr ""
#. module: account_voucher
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "-"
msgstr "-"
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_jour_pur_voucher_form
#: model:ir.ui.menu,name:account_voucher.menu_action_view_jour_pur_voucher_form
msgid "Journal Purchase Voucher"
msgstr ""
#. module: account_voucher
#: view:account.account:0
msgid "Closing Balance"
msgstr ""
#. module: account_voucher
#: field:account.voucher.line,ref:0
msgid "Ref."
msgstr "Ref."
#. module: account_voucher
#: selection:account.voucher,state:0
#: selection:account.voucher.open,init,state:0
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Posted"
msgstr ""
#. module: account_voucher
#: field:account.voucher,name:0
msgid "Name"
msgstr "Nom"
#. module: account_voucher
#: field:account.voucher,move_ids:0
msgid "Real Entry"
msgstr ""
#. module: account_voucher
#: model:ir.actions.wizard,name:account_voucher.wizard_account_voucher_open
msgid "Open a Voucher Entry"
msgstr ""
#. module: account_voucher
#: field:account.voucher,move_id:0
msgid "Account Entry"
msgstr ""
#. module: account_voucher
#: view:account.voucher:0
msgid "Entry Lines"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_view_bank_rec_voucher_form
msgid "New Bank Receipt"
msgstr ""
#. module: account_voucher
#: model:ir.ui.menu,name:account_voucher.menu_action_payments_cashpay_voucher_list
msgid "Cash Payments"
msgstr ""
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_cash_rec_voucher_form
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Cash Receipt Voucher"
msgstr ""
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_bank_pay_voucher_form
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Bank Payment Voucher"
msgstr ""
#. module: account_voucher
#: selection:account.move,voucher_type:0
#: selection:account.voucher,type:0
#: selection:account.voucher.open,init,type:0
#: model:ir.actions.act_window,name:account_voucher.action_view_bank_rec_voucher_form
#: rml:voucher.cash_amount:0
#: rml:voucher.cash_receipt.drcr:0
msgid "Bank Receipt Voucher"
msgstr ""
#. module: account_voucher
#: field:account.account,journal_id:0
#: field:account.voucher,journal_id:0
msgid "Journal"
msgstr "Jornal"

View File

@ -103,7 +103,7 @@ class account_voucher(osv.osv):
],'Type', readonly=True, select=True , size=128),
'date':fields.date('Date', readonly=True, states={'draft':[('readonly',False)]}),
'journal_id':fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'account_id':fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'account_id':fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}, domain=[('type','<>','view')]),
'payment_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=False, states={'proforma':[('readonly',True)]}),
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'narration':fields.text('Narration', readonly=True, states={'draft':[('readonly',False)]}, required=True),
@ -167,15 +167,14 @@ class account_voucher(osv.osv):
return {'value':{'account_id':account_id.id}}
def open_voucher(self, cr, uid, ids, context={}):
obj=self.pool.get('account.voucher').browse(cr,uid,ids)
total=0
obj = self.pool.get('account.voucher').browse(cr,uid,ids)
total = 0
for i in obj[0].payment_ids:
total+=i.amount
if total!=0:
self.write(cr,uid,ids,{'amount':total})
self.write(cr, uid, ids, {'state':'proforma'})
total += i.amount
if total != 0:
self.write(cr, uid, ids, {'amount':total, 'state':'proforma'})
else:
raise osv.except_osv('Invalid action !', 'You can not post to Pro-Forma a voucher with Total amount = 0')
raise osv.except_osv('Invalid action !', 'You cannot post to Pro-Forma a voucher with Total amount = 0 !')
return True
def proforma_voucher(self, cr, uid, ids, context={}):
@ -302,9 +301,9 @@ class account_voucher(osv.osv):
name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
move = {
'name': name,
'name' : name,
'journal_id': journal_id,
'voucher_type':inv.type,
'type' : inv.type,
'narration' : inv.narration
}
if inv.period_id:
@ -487,7 +486,7 @@ class account_voucher_line(osv.osv):
_columns = {
'voucher_id':fields.many2one('account.voucher', 'Voucher'),
'name':fields.char('Description', size=256, required=True),
'account_id':fields.many2one('account.account','Account', required=True),
'account_id':fields.many2one('account.account','Account', required=True, domain=[('type','<>','view')]),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True),
'amount':fields.float('Amount'),
'type':fields.selection([('dr','Debit'),('cr','Credit')], 'Type'),

View File

@ -31,7 +31,7 @@ import decimal_precision as dp
class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
_description = 'Analytic Accounts'
_description = 'Analytic Account'
def _compute_currency_for_level_tree(self, cr, uid, ids, ids2, res, acc_set, context={}):
# Handle multi-currency on each level of analytic account
@ -285,7 +285,7 @@ account_analytic_account()
class account_analytic_line(osv.osv):
_name = 'account.analytic.line'
_description = 'Analytic lines'
_description = 'Analytic Line'
def _amount_currency(self, cr, uid, ids, field_name, arg, context={}):
result = {}
for rec in self.browse(cr, uid, ids, context):
@ -343,7 +343,7 @@ class account_analytic_line(osv.osv):
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', c),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c),
}
_order = 'date'
account_analytic_line()

View File

@ -0,0 +1,66 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:44+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_journal_billing_rate
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Jornal analitic"
#. module: analytic_journal_billing_rate
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
msgid "Analytic Account"
msgstr "Compte Analitic"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
msgid "Analytic Journal Billing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""

View File

@ -100,7 +100,7 @@ class hr_analytic_timesheet(osv.osv):
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
amount_unit=self.on_change_unit_amount(cr, uid, ids,
amount_unit = self.on_change_unit_amount(cr, uid, ids,
r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
amount = unit_amount * amount_unit
@ -136,7 +136,7 @@ class hr_analytic_timesheet(osv.osv):
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
amount_unit=self.on_change_unit_amount(cr, uid, ids,
amount_unit = self.on_change_unit_amount(cr, uid, ids,
r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
amount = unit_amount * amount_unit

View File

@ -32,3 +32,5 @@
"acess_auction_payer","auction.payer","model_auction_payer","base.group_user",1,0,0,0
"access_auction_pay_sel","auction.pay.sel","model_auction_payer_sel","base.group_user",1,0,0,0
"acess_auction_taken","auction.taken","model_auction_taken","base.group_user",1,0,0,0
"access_auction_catalog_flagey","auction.catalog.flagey","model_auction_catalog_flagey","base.group_user",1,0,0,0
"access_auction_lots_buyer_map_user","auction_lots_buyer_map_user","model_auction_lots_buyer_map","base.group_user",1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
32 acess_auction_payer auction.payer model_auction_payer base.group_user 1 0 0 0
33 access_auction_pay_sel auction.pay.sel model_auction_payer_sel base.group_user 1 0 0 0
34 acess_auction_taken auction.taken model_auction_taken base.group_user 1 0 0 0
35 access_auction_catalog_flagey auction.catalog.flagey model_auction_catalog_flagey base.group_user 1 0 0 0
36 access_auction_lots_buyer_map_user auction_lots_buyer_map_user model_auction_lots_buyer_map base.group_user 1 0 0 0

View File

@ -0,0 +1,311 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:49+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
#: model:ir.module.module,shortdesc:audittrail.module_meta_information
msgid "Audit Trail"
msgstr ""
#. module: audittrail
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: audittrail
#: field:audittrail.log.line,log_id:0
msgid "Log"
msgstr "Jornal"
#. module: audittrail
#: selection:audittrail.rule,state:0
msgid "Subscribed"
msgstr "Abonat"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value : "
msgstr ""
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Create"
msgstr "Crear"
#. module: audittrail
#: wizard_view:audittrail.view.log,init:0
msgid "Audit Logs"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,state:0
msgid "State"
msgstr "Estat"
#. module: audittrail
#: selection:audittrail.rule,state:0
msgid "Draft"
msgstr "Borrolhon"
#. module: audittrail
#: field:audittrail.log.line,old_value:0
msgid "Old Value"
msgstr ""
#. module: audittrail
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: audittrail
#: model:ir.actions.wizard,name:audittrail.wizard_audittrail_log
msgid "View log"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "audittrail.log.line"
msgstr ""
#. module: audittrail
#: field:audittrail.log,method:0
msgid "Method"
msgstr "Metòde"
#. module: audittrail
#: wizard_field:audittrail.view.log,init,from:0
msgid "Log From"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,log:0
msgid "Log ID"
msgstr ""
#. module: audittrail
#: field:audittrail.log,res_id:0
msgid "Resource Id"
msgstr ""
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Write"
msgstr "Escriure"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail
msgid "Audittrails"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "Subscribe"
msgstr "S'abonar"
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Read"
msgstr "Legir"
#. module: audittrail
#: field:audittrail.log,object_id:0
#: field:audittrail.rule,object_id:0
msgid "Object"
msgstr "Objècte"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rule"
msgstr ""
#. module: audittrail
#: wizard_field:audittrail.view.log,init,to:0
msgid "Log To"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value Text: "
msgstr ""
#. module: audittrail
#: model:ir.module.module,description:audittrail.module_meta_information
msgid ""
"Allows the administrator to track every user operations on all objects of "
"the system.\n"
" Subscribe Rules for read, write, create and delete on objects and check "
"logs"
msgstr ""
#. module: audittrail
#: field:audittrail.log,timestamp:0
msgid "Date"
msgstr "Data"
#. module: audittrail
#: field:audittrail.log,user_id:0
msgid "User"
msgstr "Utilizaire"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value Text : "
msgstr ""
#. module: audittrail
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Name"
msgstr "Nom"
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
msgstr ""
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree_sub
msgid "Subscribed Rules"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,field_id:0
msgid "Fields"
msgstr "Camps"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "audittrail.rule"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log writes"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "audittrail.log"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
msgstr ""
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Delete"
msgstr "Suprimir"
#. module: audittrail
#: wizard_button:audittrail.view.log,init,open:0
msgid "Open Logs"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,name:0
msgid "Rule Name"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log reads"
msgstr ""
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree
msgid "Logs"
msgstr "Jornals"
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
msgstr ""
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_log_tree2
msgid "View Logs"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log creates"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
msgstr ""
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Rules"
msgstr "Règlas"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
msgstr ""
#. module: audittrail
#: field:audittrail.rule,user_id:0
msgid "Users"
msgstr "Utilizaires"
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
msgstr ""
#. module: audittrail
#: wizard_button:audittrail.view.log,init,end:0
msgid "Cancel"
msgstr "Anullar"
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log deletes"
msgstr ""

View File

@ -1618,15 +1618,14 @@ class ir_model(osv.osv):
@param context: A standard dictionary for contextual values
"""
if isinstance(ids, (str, int, long)):
ids = [ids]
new_ids = isinstance(ids, (str, int, long)) and [ids] or ids
data = super(ir_model, self).read(cr, uid, ids, fields=fields, \
data = super(ir_model, self).read(cr, uid, new_ids, fields=fields, \
context=context, load=load)
if data:
for val in data:
val['id'] = base_calendar_id2real_id(val['id'])
return data
return isinstance(ids, (str, int, long)) and data[0] or data
ir_model()

View File

@ -19,14 +19,13 @@
#
##############################################################################
import netsvc
from osv import fields, osv
class res_partner_contact(osv.osv):
""" Partner Contact """
_name = "res.partner.contact"
_description = "res.partner.contact"
_description = "Contact"
def _title_get(self,cr, user, context={}):
"""
@ -116,22 +115,6 @@ res_partner_contact()
class res_partner_address(osv.osv):
def search(self, cr, user, args, offset=0, limit=None, order=None,
context=None, count=False):
""" search parnter address
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current user
@param args: list of tuples of form [(name_of_the_field, operator, value), ...].
@param offset: The Number of Results to Pass
@param limit: The Number of Results to Return
@param context: A standard dictionary for contextual values
"""
if context and context.has_key('address_partner_id' ) and context['address_partner_id']:
args.append(('partner_id', '=', context['address_partner_id']))
return super(res_partner_address, self).search(cr, user, args, offset, limit, order, context, count)
#overriding of the name_get defined in base in order to remove the old contact name
def name_get(self, cr, user, ids, context={}):
"""
@ -208,6 +191,8 @@ class res_partner_job(osv.osv):
if arg[2] and not count:
search_arg = ['|', ('first_name', 'ilike', arg[2]), ('name', 'ilike', arg[2])]
contact_ids = contact_obj.search(cr, user, search_arg, offset=offset, limit=limit, order=order, context=context, count=count)
if not contact_ids:
continue
contacts = contact_obj.browse(cr, user, contact_ids, context=context)
for contact in contacts:
job_ids.extend([item.id for item in contact.job_ids])
@ -224,10 +209,10 @@ class res_partner_job(osv.osv):
_order = 'sequence_contact'
_columns = {
'name': fields.related('address_id','partner_id', type='many2one',\
'name': fields.related('address_id', 'partner_id', type='many2one',\
relation='res.partner', string='Partner', help="You may\
enter Address first,Partner will be linked automatically if any."),
'address_id': fields.many2one('res.partner.address','Address', \
'address_id': fields.many2one('res.partner.address', 'Address', domain=[('partner_id', '=', name)], \
help='Address which is linked to the Partner'),
'contact_id': fields.many2one('res.partner.contact','Contact', required=True, ondelete='cascade'),
'function_id': fields.many2one('res.partner.function','Partner Function', \
@ -251,7 +236,34 @@ class res_partner_job(osv.osv):
'sequence_contact' : lambda *a: 0,
'state': lambda *a: 'current',
}
def onchange_partner(self, cr, uid, _, partner_id, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@partner_id : ID of the Partner selected,
@param context: A standard dictionary for contextual values
"""
return {'value': {'address_id': False}}
def onchange_address(self, cr, uid, _, address_id, context=None):
"""
@@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@address_id : ID of the Address selected,
@param context: A standard dictionary for contextual values
"""
partner_id = False
if address_id:
address = self.pool.get('res.partner.address')\
.browse(cr, uid, address_id, context)
partner_id = address.partner_id.id
return {'value': {'name': partner_id}}
res_partner_job()

View File

@ -52,7 +52,7 @@
<form string="Functions and Addresses">
<group string="Partner" colspan="2" col="4">
<field name="function_id"/>
<field name="address_id" context="{'address_partner_id': name}"/>
<field name="address_id"/>
<field name="name"/>
<field name="date_start" />
<field name="date_stop" />
@ -357,23 +357,19 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Contact Functions">
<notebook>
<page string="General">
<field name="name" select="1"/>
<field name="address_id" select="1" context="{'address_partner_id': name}"/>
<field name="contact_id" select="1"/>
<field name="function_id" select="1"/>
<field name="email" widget="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="sequence_contact" groups="base.group_user"/>
<field name="sequence_partner" groups="base.group_user"/>
<field name="date_start" groups="base.group_user"/>
<field name="date_stop" groups="base.group_user"/>
<field name="state" />
</page>
</notebook>
<field name="name" select="1" on_change="onchange_partner(name)"/>
<field name="address_id" select="1" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(address_id)"/>
<field name="contact_id" select="1"/>
<field name="function_id" select="1"/>
<field name="email" widget="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="sequence_contact" groups="base.group_user"/>
<field name="sequence_partner" groups="base.group_user"/>
<field name="date_start" groups="base.group_user"/>
<field name="date_stop" groups="base.group_user"/>
<field name="state" />
</form>
</field>
</record>

View File

@ -0,0 +1,357 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:57+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
msgstr "Seq. del contacte"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
msgid "res.partner.contact"
msgstr ""
#. module: base_contact
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
"especials !"
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
msgstr "Foncion del partenari"
#. 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 "Contactes"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
msgstr "Seq. del partenari"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
msgstr "Actual"
#. module: base_contact
#: field:res.partner.contact,first_name:0
msgid "First Name"
msgstr "Pichon nom"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
msgid "Contact Partner Function"
msgstr "Foncion del contacte del partenari"
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
msgstr "Autre"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
msgstr "Contacte cap a foncion"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
msgstr "Partenari cap a adreça"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
msgstr "# de contactes"
#. 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 "Foncion"
#. module: base_contact
#: field:res.partner.job,fax:0
msgid "Fax"
msgstr "Fax"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
msgid "Language"
msgstr "Lenga"
#. module: base_contact
#: field:res.partner.job,phone:0
msgid "Phone"
msgstr "Telefòn"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
msgstr "Definir los contactes e lors foncions"
#. module: base_contact
#: field:res.partner.contact,title:0
msgid "Title"
msgstr "Títol"
#. module: base_contact
#: view:res.partner.job:0
msgid "Contact Functions"
msgstr "Foncions del contacte"
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
msgid "Base Contact"
msgstr "Basa Contacte"
#. 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 "Corrièr electronic"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
msgstr "Data de fin d'emplec"
#. module: base_contact
#: view:res.partner:0
#: field:res.partner.job,address_id:0
msgid "Address"
msgstr "Adreça"
#. 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 "Foncions dels contactes"
#. module: base_contact
#: field:res.partner.contact,country_id:0
msgid "Nationality"
msgstr "Nacionalitat"
#. 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 "Emplec principal"
#. module: base_contact
#: view:res.partner:0
msgid "Categories"
msgstr "Categorias"
#. module: base_contact
#: field:res.partner.contact,function_id:0
msgid "Main Function"
msgstr "Foncion principala"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
msgstr ""
#. module: base_contact
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: base_contact
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact Process"
msgstr "Tractar los contactes de basa"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
msgstr "Seq."
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
msgstr "Extension"
#. module: base_contact
#: field:res.partner.contact,mobile:0
msgid "Mobile"
msgstr "Telefonet"
#. 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 "Informacion suplementària"
#. module: base_contact
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
msgstr "Foncions e adreças"
#. module: base_contact
#: field:res.partner.contact,active:0
msgid "Active"
msgstr "Actiu"
#. module: base_contact
#: field:res.partner.job,contact_id:0
msgid "Contact"
msgstr "Contacte"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
msgstr ""
#. module: base_contact
#: field:res.partner.contact,partner_id:0
msgid "Main Employer"
msgstr "Emplegaire principal"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
msgstr "Foncion cap a adreça"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Partner Contacts"
msgstr "Contactes del partenari"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Partner Contact"
msgstr "Contacte del partenari"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_partners0
msgid "Partners"
msgstr "Partenaris"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_addresses0
#: view:res.partner:0
msgid "Addresses"
msgstr "Adreças"
#. 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 "Nom d'ostal"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
msgstr "Estat"
#. module: base_contact
#: view:res.partner.contact:0
#: view:res.partner.job:0
msgid "General"
msgstr "General"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
msgstr ""
#. module: base_contact
#: view:res.partner.contact:0
msgid "General Information"
msgstr "Informacions generalas"
#. 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 "Partenari"
#. module: base_contact
#: field:res.partner.job,date_start:0
msgid "Date Start"
msgstr "Data de començament"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
msgstr ""
#. module: base_contact
#: field:res.partner.contact,website:0
msgid "Website"
msgstr "Site web"
#. module: base_contact
#: field:res.partner.contact,birthdate:0
msgid "Birth Date"
msgstr "Data de naissença"

View File

@ -42,6 +42,17 @@
</field>
</field>
</record>
<record id="view_partner_iban_list" model="ir.ui.view">
<field name="name">res.partner.form.iban.inherit.list</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='bank_ids']/tree/field[@name='acc_number']" position="after">
<field name="iban"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,64 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:28+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_iban
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
msgid "zip"
msgstr "zip"
#. module: base_iban
#: help:res.partner.bank,iban:0
msgid "International Bank Account Number"
msgstr "Numèro Internacional de Compte Bancari"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
msgid "country_id"
msgstr "country_id"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_swift_field
msgid "bic"
msgstr "bic"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_iban_field
msgid "iban"
msgstr "iban"
#. module: base_iban
#: model:ir.module.module,shortdesc:base_iban.module_meta_information
#: field:res.partner.bank,iban:0
msgid "IBAN"
msgstr "IBAN"
#. module: base_iban
#: model:res.partner.bank.type,name:base_iban.bank_iban
msgid "IBAN Account"
msgstr "N° IBAN del compte"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_acc_number_field
msgid "acc_number"
msgstr "acc_number"

View File

@ -0,0 +1,155 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 08:33+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,category:0
msgid "Category"
msgstr "Categoria"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Information"
msgstr "Informacion"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,init:0
msgid "Module Merging"
msgstr ""
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,author:0
msgid "Author"
msgstr "Autor"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,directory_name:0
msgid "Directory Name"
msgstr "Nom del dorsièr"
#. module: base_module_merge
#: selection:base_module_merge.module_merge,info,data_kind:0
msgid "Demo Data"
msgstr "Donadas de demo"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,save,module_filename:0
msgid "Filename"
msgstr "Nom del fichièr"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,version:0
msgid "Version"
msgstr "Version"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,info:0
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Module Recording"
msgstr "Modul d'Enregistrament"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Thanks in advance for your contribution."
msgstr ""
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,description:0
msgid "Full Description"
msgstr "Descripcion completa"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,name:0
msgid "Module Name"
msgstr "Nom de modul"
#. module: base_module_merge
#: model:ir.actions.wizard,name:base_module_merge.wizard_base_module_merger
#: model:ir.ui.menu,name:base_module_merge.menu_wizard_base_module_merger
msgid "Merge module"
msgstr ""
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,save,module_file:0
msgid "Module .zip File"
msgstr "Fichièr zip del Modul"
#. module: base_module_merge
#: model:ir.module.module,shortdesc:base_module_merge.module_meta_information
msgid "Module Merger"
msgstr ""
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid "Module successfully created !"
msgstr "Modul creat amb succès !"
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,website:0
msgid "Documentation URL"
msgstr ""
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,init,modules_list:0
msgid "Modules"
msgstr "Moduls"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,info,save:0
#: wizard_button:base_module_merge.module_merge,init,info:0
msgid "Continue"
msgstr "Contunhar"
#. module: base_module_merge
#: selection:base_module_merge.module_merge,info,data_kind:0
msgid "Normal Data"
msgstr ""
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,save:0
msgid ""
"If you think your module could interrest others people, we'd like you to "
"publish it on OpenERP.com, in the 'Modules' section. You can do it through "
"the website or using features of the 'base_module_publish' module."
msgstr ""
#. module: base_module_merge
#: help:base_module_merge.module_merge,init,modules_list:0
msgid "Select Modules which you want to merge in single module"
msgstr ""
#. module: base_module_merge
#: wizard_field:base_module_merge.module_merge,info,data_kind:0
msgid "Type of Data"
msgstr "Tipe de Donada"
#. module: base_module_merge
#: wizard_view:base_module_merge.module_merge,info:0
msgid "Module Information"
msgstr "Informacion sul Modul"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,info,end:0
#: wizard_button:base_module_merge.module_merge,init,end:0
msgid "Cancel"
msgstr "Anullar"
#. module: base_module_merge
#: wizard_button:base_module_merge.module_merge,save,end:0
msgid "Close"
msgstr "Tampar"

View File

@ -19,12 +19,28 @@
#
##############################################################################
from osv import fields, osv
from tools.translate import _
import pooler
from base_module_quality import base_module_quality
class CounterCursor(object):
def __init__(self, real_cursor):
self.cr = real_cursor
self.count = 0
def reset(self):
self.count = 0
def execute(self, query, params=None):
if query.lower().startswith('select '):
self.count += 1
return self.cr.execute(query, params)
def __getattr__(self, attr):
return getattr(self.cr, attr)
class quality_test(base_module_quality.abstract_quality_check):
def __init__(self):
@ -63,6 +79,7 @@ This test checks the speed of the module. Note that at least 5 demo data is need
result_dict = {}
result_dict2 = {}
self.result_details += _("<html>O(1) means that the number of SQL requests to read the object does not depand on the number of objects we are reading. This feature is hardly wished.\n</html>")
ccr = CounterCursor(cr)
for obj, ids in obj_ids.items():
code_base_complexity = 0
code_half_complexity = 0
@ -73,22 +90,22 @@ This test checks the speed of the module. Note that at least 5 demo data is need
list2 = []
if size:
speed_list = []
#we perform the operation twice, and count the number of queries in the second run. This allows to avoid the cache effect. (like translated terms that asks for more queries)
try:
pool.get(obj).read(cr, uid, [ids[0]])
cnt = cr.count
pool.get(obj).read(cr, uid, [ids[0]])
code_base_complexity = cr.count - cnt
pool.get(obj).read(cr, uid, ids[:size/2])
cnt = cr.count
pool.get(obj).read(cr, uid, ids[:size/2])
code_half_complexity = cr.count - cnt
# perform the operation once to put data in cache
pool.get(obj).read(cr, uid, ids)
cnt = cr.count
pool.get(obj).read(cr, uid, ids)
code_size_complexity = cr.count - cnt
ccr.reset()
pool.get(obj).read(ccr, uid, [ids[0]])
code_base_complexity = ccr.count
ccr.reset()
pool.get(obj).read(ccr, uid, ids[:size/2])
code_half_complexity = ccr.count
ccr.reset()
pool.get(obj).read(ccr, uid, ids)
code_size_complexity = ccr.count
except Exception, e:
list2 = [obj, _("Error in Read method")]
speed_list = [obj, size, code_base_complexity, code_half_complexity, code_size_complexity, _("Error in Read method:" + str(e))]

View File

@ -35,7 +35,7 @@ class report_creator(osv.osv):
#
def export_data(self, cr, uid, ids, fields_to_export, context=None):
if not context:
if context is None:
context = {}
data_l = self.read(cr, uid, ids, ['sql_query'], context)
final_datas = []
@ -61,7 +61,7 @@ class report_creator(osv.osv):
@param Fields: List of field of customer reports form.
@return: Dictionary of Fields
"""
if not context:
if context is None:
context = {}
data = context and context.get('report_id', False) or False
@ -95,7 +95,7 @@ class report_creator(osv.osv):
@param user: the current users ID for security checks,
@return: Dictionary of Fields, arch and toolbar.
"""
if not context:
if context is None:
context = {}
data = context and context.get('report_id', False) or False
@ -116,9 +116,11 @@ class report_creator(osv.osv):
arch = '<?xml version="1.0" encoding="utf-8"?>\n'
if view_type == 'graph':
arch += '<graph string="%s" type="%s" orientation="%s">' % (report.name, report.view_graph_type, report.view_graph_orientation)
orientation_eval = {'horz':'horizontal','vert' :'vertical'}
orientation = eval(report.view_graph_orientation,orientation_eval)
arch +='<graph string="%s" type="%s" orientation="%s">' % (report.name, report.view_graph_type, orientation)
i = 0
for val in ('x','y'):
i = 0
for f in report.field_ids:
if f.graph_mode == val:
if f.field_id.model:
@ -191,7 +193,9 @@ class report_creator(osv.osv):
@param fields: List of fields.
@return: List of Dictionary of form [{name_of_the_field: value, ...}, ...]
"""
data = context and context.get('report_id', False) or False
if context is None:
context = {}
data = context.get('report_id', False)
if (not context) or 'report_id' not in context:
return super(report_creator, self).read(cr, user, ids, fields, context, load)
ctx = context or {}
@ -225,8 +229,9 @@ class report_creator(osv.osv):
@param args: list of tuples of form [(name_of_the_field, operator, value), ...].
@return: List of id
"""
context_id = context and context.get('report_id', False) or False
if context is None:
context = {}
context_id = context.get('report_id', False)
if (not context) or 'report_id' not in context:
return super(report_creator, self).search(cr, user, args, offset, limit, order, context, count)
@ -372,9 +377,10 @@ class report_creator(osv.osv):
t = self.pool.get(f.field_id.model_id.model)._table
if f.group_method == 'group':
fields.append('\t'+t+'.'+f.field_id.name+' as field'+str(i))
groupby.append(t+'.'+f.field_id.name)
else:
fields.append('\t'+f.group_method+'('+t+'.'+f.field_id.name+')'+' as field'+str(i))
groupby.append(t+'.'+f.field_id.name)
i += 1
models = self._path_get(cr, uid, obj.model_ids, obj.filter_ids)
check = self._id_get(cr, uid, ids[0], context)

View File

@ -309,27 +309,32 @@ class PyOpenOffice(object):
return new_c
def sxw2rml(sxw_file, xsl, output='.', save_pict=False):
import libxslt
import libxml2
from lxml import etree
from StringIO import StringIO
tool = PyOpenOffice(output, save_pict = save_pict)
res = tool.unpackNormalize(sxw_file)
styledoc = libxml2.parseDoc(xsl)
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseMemory(res,len(res))
result = style.applyStylesheet(doc, None)
root = result.xpathEval("/document/stylesheet")
f = StringIO(xsl)
styledoc = etree.parse(f)
style = etree.XSLT(styledoc)
f = StringIO(res)
doc = etree.parse(f)
result = style(doc)
root = etree.XPathEvaluator(result)("/document/stylesheet")
if root:
root=root[0]
images = libxml2.newNode("images")
images = etree.Element("images")
for img in tool.images:
node = libxml2.newNode('image')
node.setProp('name', img)
node.setContent( base64.encodestring(tool.images[img]))
images.addChild(node)
root.addNextSibling(images)
node = etree.Element('image', name=img)
node.text = base64.encodestring(tool.images[img])
images.append(node)
root.append(images)
try:
xml = style.saveResultToString(result)
xml = str(result)
return xml
except:
return result
@ -349,7 +354,7 @@ if __name__ == "__main__":
import StringIO
fname = sys.argv[1]
f = StringIO.StringIO(file(fname).read())
f = fname
xsl_file = 'normalized_oo2rml.xsl'
z = zipfile.ZipFile(fname,"r")
mimetype = z.read('mimetype')

View File

@ -74,21 +74,26 @@ class base_gtkcontactform(osv.osv_memory):
'contact_me':fields.boolean('Contact Me'),
}
def execute(self, cr, uid, ids, context=None):
company_id = self.pool.get('base.setup.company').search(cr, uid, [])
company_data = self.pool.get('base.setup.company').read(cr, uid, company_id)
company_data = company_data and company_data[0] or False
if context is None:
context = {}
company_id = self.pool.get('base.setup.company').search(cr, uid, [], context=context)
company_data = self.pool.get('base.setup.company').read(cr, uid, company_id, context=context)
company_data = company_data and company_data[0] or {}
country = ''
if company_data and company_data.get('country_id', False):
country = self.pool.get('res.country').read(cr, uid, company_data['country_id'],['name'])['name']
for res in self.read(cr, uid, ids):
if company_data.get('country_id', False):
country = self.pool.get('res.country').read(cr, uid, company_data['country_id'],['name'], context=context)['name']
for res in self.read(cr, uid, ids, context=context):
email = res.get('email','')
result = "\ncompany: "+ str(company_data.get('name',''))
result += "\nname: " + str(res.get('name',''))
result += "\njob: " + str(res.get('job',''))
result = "\ncompany: "+ tools.ustr(company_data.get('name',''))
result += "\nname: " + tools.ustr(res.get('name',''))
result += "\njob: " + tools.ustr(res.get('job',''))
result += "\nphone: " + str(res.get('phone',''))
result += "\ncity: " + str(company_data.get('city',''))
result += "\ncity: " + tools.ustr(company_data.get('city',''))
result += "\ncountry: " + str(country)
result += "\nindustry: " + str(res.get('industry', ''))
result += "\nindustry: " + tools.ustr(res.get('industry', ''))
result += "\ntotal_employees: " + str(res.get('total_employees', ''))
result += "\nplan_use: " + str(res.get('use_openerp', False))
result += "\nalready_using_openerp: " + str(res.get('already_using_openerp', False))

View File

@ -0,0 +1,277 @@
# Thai translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-20 04:32+0000\n"
"Last-Translator: Songpon Phusing <p.songpon@gmail.com>\n"
"Language-Team: Thai <th@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-05-20 05:23+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,city:0
#: wizard_field:base_setup.base_setup,init,city:0
#: wizard_field:base_setup.base_setup,update,city:0
msgid "City"
msgstr "อำเภอ"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid ""
"You can start configuring the system or connect directly to the database "
"using the default setup."
msgstr "คุณอาจจะเริ่มตั้งค่าหรือใช้ค่าพื้นฐานเบื้องต้น"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,zip:0
#: wizard_field:base_setup.base_setup,init,zip:0
#: wizard_field:base_setup.base_setup,update,zip:0
msgid "Zip code"
msgstr "รหัสไปรษณีย์"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid "Select a Profile"
msgstr "เลือกแบบ"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report header"
msgstr "หัวรายงาน"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,config:0
msgid "Start Configuration"
msgstr "เริ่มการตั้งค่า"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid ""
"You'll be able to install more modules later through the Administration menu."
msgstr "คุณสามารถลงโมดูลใหม่ๆได้ในเมนูการบริหารระบบ"
#. module: base_setup
#: wizard_view:base_setup.base_setup,init:0
msgid ""
"A profile sets a pre-selection of modules for specific needs. These profiles "
"have been setup to help you discover the different aspects of OpenERP. This "
"is just an overview, we have 300+ available modules."
msgstr ""
"รูปแบบโมดูลเป็นเพียงการตั้งค่าแนะนำในการใช้งานเพื่อตั้งค่าได้ง่ายขึ้น "
"แต่เรามีโมดูลที่สามารถหาติดตั้งได้มากกว่า 500 โมดูล"
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,update:0
#: wizard_button:base_setup.base_setup,init,company:0
msgid "Next"
msgstr "ถัดไป"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,email:0
#: wizard_field:base_setup.base_setup,init,email:0
#: wizard_field:base_setup.base_setup,update,email:0
msgid "E-mail"
msgstr "อีเมล์"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,state_id:0
#: wizard_field:base_setup.base_setup,init,state_id:0
#: wizard_field:base_setup.base_setup,update,state_id:0
msgid "State"
msgstr "จังหวัด"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Your new database is now fully installed."
msgstr "ฐานข้อมูลใหม่ตั้งตั้งเสร็จสิ้น"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,profile:0
#: wizard_field:base_setup.base_setup,init,profile:0
#: wizard_field:base_setup.base_setup,update,profile:0
msgid "Profile"
msgstr "รูปแบบ"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_footer1:0
#: wizard_field:base_setup.base_setup,init,rml_footer1:0
#: wizard_field:base_setup.base_setup,update,rml_footer1:0
msgid "Report Footer 1"
msgstr "หัวรายงาน 1"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_footer2:0
#: wizard_field:base_setup.base_setup,init,rml_footer2:0
#: wizard_field:base_setup.base_setup,update,rml_footer2:0
msgid "Report Footer 2"
msgstr "ท้ายรายงาน 2"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "General Information"
msgstr "ข้อมูลทั่วไป"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,street2:0
#: wizard_field:base_setup.base_setup,init,street2:0
#: wizard_field:base_setup.base_setup,update,street2:0
msgid "Street2"
msgstr "ตำบล"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Report Information"
msgstr "ข้อมูลรายงาน"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,phone:0
#: wizard_field:base_setup.base_setup,init,phone:0
#: wizard_field:base_setup.base_setup,update,phone:0
msgid "Phone"
msgstr "โทรศัพท์"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Define Main Company"
msgstr "ตั้งบริษัทหลัก"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,name:0
#: wizard_field:base_setup.base_setup,init,name:0
#: wizard_field:base_setup.base_setup,update,name:0
msgid "Company Name"
msgstr "ชื่อบริษัท"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer2:0
#: help:base_setup.base_setup,init,rml_footer2:0
#: help:base_setup.base_setup,update,rml_footer2:0
msgid ""
"This sentence will appear at the bottom of your reports.\n"
"We suggest you to put bank information here:\n"
"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701"
msgstr ""
"ข้อมูลนี่จะอยู่ในท้ายกระดาษของรายงาน\n"
"เราแนะนำให้เปลี่ยนโดยใส่ข้อมูลของธนาคาร\n"
"IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,country_id:0
#: wizard_field:base_setup.base_setup,init,country_id:0
#: wizard_field:base_setup.base_setup,update,country_id:0
msgid "Country"
msgstr "ประเทศ"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
#: wizard_view:base_setup.base_setup,finish:0
#: wizard_view:base_setup.base_setup,init:0
#: wizard_view:base_setup.base_setup,update:0
#: model:ir.actions.wizard,name:base_setup.action_wizard_setup
#: model:ir.actions.wizard,name:base_setup.wizard_base_setup
msgid "Setup"
msgstr "ตั้งค่า"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_footer1:0
#: help:base_setup.base_setup,init,rml_footer1:0
#: help:base_setup.base_setup,update,rml_footer1:0
msgid ""
"This sentence will appear at the bottom of your reports.\n"
"We suggest you to write legal sentences here:\n"
"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
msgstr ""
"ข้อมูลนี่จะอยู่ในท้ายกระดาษของรายงาน\n"
"เราแนะนำให้ท่านนำข้อมูลเกี่ยวกับทางกฏหมาย\n"
"Web: http://openerp.com - Fax: +32.81.73.35.01 - Fortis Bank: 126-2013269-07"
#. module: base_setup
#: wizard_view:base_setup.base_setup,update:0
msgid "Summary"
msgstr "สรุป"
#. module: base_setup
#: wizard_button:base_setup.base_setup,update,finish:0
msgid "Install"
msgstr "ติดตั้ง"
#. module: base_setup
#: wizard_view:base_setup.base_setup,finish:0
msgid "Installation Done"
msgstr "ติดตั้งเสร็จสิ้น"
#. module: base_setup
#: help:base_setup.base_setup,company,rml_header1:0
#: help:base_setup.base_setup,init,rml_header1:0
#: help:base_setup.base_setup,update,rml_header1:0
msgid ""
"This sentence will appear at the top right corner of your reports.\n"
"We suggest you to put a slogan here:\n"
"\"Open Source Business Solutions\"."
msgstr ""
"ข้อมูลนี่จะอยู่ในด้านบนขวาของรายงานท่าน\n"
"กรุณาใส่ สโลแกน\n"
"\"Open Source Business Solutions\"."
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,rml_header1:0
#: wizard_field:base_setup.base_setup,init,rml_header1:0
#: wizard_field:base_setup.base_setup,update,rml_header1:0
msgid "Report Header"
msgstr "หัวรายงาน"
#. module: base_setup
#: wizard_view:base_setup.base_setup,company:0
msgid "Your Logo - Use a size of about 450x150 pixels."
msgstr "กรุณาใช้โลโก้ขนาด 450X150 px"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,currency:0
#: wizard_field:base_setup.base_setup,init,currency:0
#: wizard_field:base_setup.base_setup,update,currency:0
msgid "Currency"
msgstr "อัตราแลกเปลี่ยน"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,street:0
#: wizard_field:base_setup.base_setup,init,street:0
#: wizard_field:base_setup.base_setup,update,street:0
msgid "Street"
msgstr "ที่อยู่"
#. module: base_setup
#: wizard_button:base_setup.base_setup,finish,menu:0
msgid "Use Directly"
msgstr "ใช้ทันที"
#. module: base_setup
#: wizard_button:base_setup.base_setup,init,menu:0
msgid "Cancel"
msgstr "ยกเลิก"
#. module: base_setup
#: wizard_field:base_setup.base_setup,company,logo:0
#: wizard_field:base_setup.base_setup,init,logo:0
#: wizard_field:base_setup.base_setup,update,logo:0
msgid "Logo"
msgstr "โลโก้"
#. module: base_setup
#: model:ir.module.module,shortdesc:base_setup.module_meta_information
msgid "Base Setup"
msgstr "โครงสร้าง ตั้งค่า"
#. module: base_setup
#: wizard_button:base_setup.base_setup,company,init:0
#: wizard_button:base_setup.base_setup,update,company:0
msgid "Previous"
msgstr "ก่อนหน้า"

View File

@ -152,5 +152,23 @@ IBAN: BE74 1262 0121 6907 - SWIFT: CPDF BE71 - VAT: BE0477.472.701'''),
context=context)
base_setup_company()
class res_currency(osv.osv):
_inherit = 'res.currency'
def name_get(self, cr, uid, ids, context=None):
if context is None:
context = {}
# We can use the following line,if we want to restrict this name_get for company setup only
# But, its better to show currencies as name(Code).
# if not (context.get('active_model','') == 'ir.actions.todo'):
# return super(res_currency,self).name_get(cr, uid, ids, context=context)
if not len(ids):
return []
if isinstance(ids, (int, long)):
ids = [ids]
reads = self.read(cr, uid, ids, ['name','code'], context, load='_classic_write')
return [(x['id'], tools.ustr(x['name']) + ' (' + tools.ustr(x['code']) + ')') for x in reads]
res_currency()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 15:20+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-19 09:15+0000\n"
"Last-Translator: Rytis Ūsalis <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-04-17 03:57+0000\n"
"X-Launchpad-Export-Date: 2010-05-20 05:23+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_association
@ -40,7 +40,7 @@ msgstr ""
#. module: board_association
#: view:board.board:0
msgid "My tasks"
msgstr ""
msgstr "Mano užduotys"
#. module: board_association
#: view:board.board:0

View File

@ -0,0 +1,90 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 09:06+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_document
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: board_document
#: view:board.board:0
msgid "New Files"
msgstr "Fichièrs novèls"
#. module: board_document
#: model:ir.actions.act_window,name:board_document.open_board_document_manager
#: model:ir.ui.menu,name:board_document.menu_board_document_manager
msgid "Document Dashboard"
msgstr ""
#. module: board_document
#: view:board.board:0
msgid "Wall of Shame"
msgstr "Paret de la Vergonha"
#. module: board_document
#: view:board.board:0
msgid "File Size by Month"
msgstr "Talha dels Fichièrs per Mes"
#. module: board_document
#: view:board.board:0
msgid "Files by Month"
msgstr "Fichièrs per Mes"
#. module: board_document
#: model:ir.actions.act_window,name:board_document.open_board_document_manager1
#: model:ir.ui.menu,name:board_document.menu_board_document_manager1
msgid "Statistics by User"
msgstr ""
#. module: board_document
#: view:board.board:0
msgid "Files by Resource Type"
msgstr "Fichièrs per Tipe de Ressorsa"
#. module: board_document
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: board_document
#: model:ir.module.module,shortdesc:board_document.module_meta_information
msgid "Dashboard for Document Management"
msgstr ""
#. module: board_document
#: view:board.board:0
msgid "Files by Partner"
msgstr "Fichièrs per Partenari"
#. module: board_document
#: model:ir.ui.menu,name:board_document.menu_board_document
msgid "Document"
msgstr "Document"
#. module: board_document
#: view:board.board:0
msgid "Files by Users"
msgstr "Fichièrs per Utilizaire"
#. module: board_document
#: view:board.board:0
msgid "Document board"
msgstr "Tablèu dels Documents"

View File

@ -0,0 +1,74 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 09:03+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_manufacturing
#: view:board.board:0
msgid "Procurement in Exception"
msgstr "Aprovisionament en excepcion"
#. module: board_manufacturing
#: view:board.board:0
msgid "Next production orders"
msgstr "Òrdre de fabricacion seguent"
#. module: board_manufacturing
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: board_manufacturing
#: view:board.board:0
msgid "Deliveries (Out packing)"
msgstr "Liurasons"
#. module: board_manufacturing
#: view:board.board:0
msgid "Manufacturing board"
msgstr "Tablèu de bòrd de produccion"
#. module: board_manufacturing
#: model:ir.ui.menu,name:board_manufacturing.next_id_87
msgid "Production"
msgstr "Produccion"
#. module: board_manufacturing
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: board_manufacturing
#: model:ir.actions.act_window,name:board_manufacturing.open_board_manufacturing
#: model:ir.ui.menu,name:board_manufacturing.menu_board_manufacturing
msgid "Production Dashboard"
msgstr "Tablèu de bòrd de produccion"
#. module: board_manufacturing
#: model:ir.module.module,shortdesc:board_manufacturing.module_meta_information
msgid "Board for manufacturing"
msgstr "Tablèu per la produccion"
#. module: board_manufacturing
#: view:board.board:0
msgid "Stock value variation"
msgstr "Variacion de la valor de l'emmagazinatge"
#. module: board_manufacturing
#: view:board.board:0
msgid "Workcenter futur load"
msgstr ""

View File

@ -0,0 +1,140 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 09:08+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
#: view:board.board:0
msgid "My project's planning"
msgstr "Mon planning de projèctes"
#. module: board_project
#: view:hr_timesheet_sheet.sheet:0
#: model:ir.actions.act_window,name:board_project.act_hr_timesheet_sheet
msgid "Timesheets"
msgstr "Fuèlh de preséncia"
#. module: board_project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.act_my_project
msgid "My projects"
msgstr "Mos projèctes"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_view_task_tree_deadline
msgid "My Task's Deadlines"
msgstr "Las Datas Limitas de mos Prètzfaches"
#. module: board_project
#: view:project.task:0
msgid "My Tasks"
msgstr "Mos prètzfaches"
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.action_view_board_note_tree
msgid "Public Notes"
msgstr "Nòtas publicas"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.open_board_project
#: model:ir.ui.menu,name:board_project.menu_board_project
msgid "Project Dashboard"
msgstr "Tablèu de bòrd de projècte"
#. module: board_project
#: model:ir.module.module,shortdesc:board_project.module_meta_information
msgid "Board for project users"
msgstr ""
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_project_pipeline_user
msgid "Pipeline of tasks"
msgstr ""
#. module: board_project
#: view:board.board:0
msgid "My Planning"
msgstr ""
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.act_my_account
msgid "My accounts to invoice"
msgstr "Mos comptes de facturar"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.open_board_project_manager
#: model:ir.ui.menu,name:board_project.menu_board_project_manager
msgid "Project Manager Dashboard"
msgstr "Tablèu de bòrd de gestion de projècte"
#. module: board_project
#: view:board.board:0
msgid "My Deadlines"
msgstr "Mas datas limitas"
#. module: board_project
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: board_project
#: view:board.board:0
msgid "User's timesheets"
msgstr "Fuèlh de preséncia de l'utilizaire"
#. module: board_project
#: model:ir.ui.menu,name:board_project.next_id_86
msgid "Project"
msgstr "Projècte"
#. module: board_project
#: view:board.board:0
msgid "Project manager board"
msgstr "Tablèu del responsable del projècte"
#. module: board_project
#: view:board.board:0
#: model:ir.actions.act_window,name:board_project.action_view_task_tree
msgid "My Open Tasks"
msgstr "Mos prètzfaches dobèrts"
#. module: board_project
#: view:board.board:0
msgid "My Board"
msgstr "Mon Tablèu"
#. module: board_project
#: view:board.board:0
msgid "My tasks board"
msgstr "Mon tablèu de prètzfaches"
#. module: board_project
#: view:board.board:0
msgid "My user's pipeline"
msgstr ""
#. module: board_project
#: view:board.board:0
msgid "My Timesheet"
msgstr "Mon Fuèlh de preséncia"

View File

@ -0,0 +1,74 @@
# Occitan (post 1500) translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
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-05-18 09:06+0000\n"
"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
"Language-Team: Occitan (post 1500) <oc@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-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_sale
#: model:ir.module.module,shortdesc:board_sale.module_meta_information
msgid "Dashboard for sales"
msgstr "Tablèu de Bòrd de las Vendas"
#. module: board_sale
#: model:ir.actions.act_window,name:board_sale.open_board_sales_manager
#: model:ir.ui.menu,name:board_sale.menu_board_sales_manager
msgid "Sale Dashboard"
msgstr "Tablèu de Bòrd de las Vendas"
#. module: board_sale
#: view:board.board:0
msgid "Sales of the month"
msgstr "Vendas del Mes"
#. module: board_sale
#: view:board.board:0
msgid "Sales manager board"
msgstr "Tablèu de Bòrd del Gestionari de las Vendas"
#. module: board_sale
#: view:board.board:0
msgid "Cases of the month"
msgstr "Cas del Mes"
#. module: board_sale
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invalid per l'arquitectura de la vista"
#. module: board_sale
#: view:board.board:0
msgid "My open quotations"
msgstr "Mos Devises Dobèrts"
#. module: board_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nom del Modèl invalid per la definicion de l'accion."
#. module: board_sale
#: model:ir.ui.menu,name:board_sale.next_id_88
msgid "Sales"
msgstr "Vendas"
#. module: board_sale
#: view:board.board:0
msgid "Cases statistics"
msgstr "Estatisticas dels Cases"
#. module: board_sale
#: view:board.board:0
msgid "Top ten sales of the month"
msgstr "10 melhoras Vendas del Mes"

View File

@ -32,7 +32,7 @@ class crm_lead(osv.osv, crm_case):
""" CRM Lead Case """
_name = "crm.lead"
_description = "Leads Cases"
_description = "Lead"
_order = "priority, id desc"
_inherit = ['res.partner.address', 'mailgate.thread']

View File

@ -8,6 +8,7 @@
<field name="view_mode">tree,form</field>
<field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
<field name="view_id" ref="crm_case_tree_view_leads"/>
<field name="context">{"search_default_user_id":uid,'search_default_current':1}</field>
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
<field name="context">{'search_default_current':1}</field>
</record>

View File

@ -48,7 +48,8 @@
string="Convert"
help="Convert to Opportunity"
icon="gtk-index"
type="object"/>
type="object"
attrs="{'invisible':[('opportunity_id','!=',False)]}"/>
<newline />
<field name="section_id" colspan="1"
widget="selection" />
@ -102,18 +103,18 @@
<separator colspan="4"/>
<group col="8" colspan="4">
<field name="state"/>
<button name="case_close" string="Close"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_close" string="Close"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button name="case_pending" string="Pending"
states="draft,open" type="object"
icon="gtk-media-pause" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
groups="base.group_extended"
@ -125,7 +126,7 @@
</page>
<page string="Extra Info" groups="base.group_extended">
<group colspan="2" col="2">
<separator string="Categories" colspan="2" col="2"/>
<separator string="Categorization" colspan="2" col="2"/>
<field name="company_id"
groups="base.group_multi_company"
widget="selection" colspan="2" />
@ -197,7 +198,8 @@
<field name="model">crm.lead</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Leads Tree" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
<tree string="Leads Tree" colors="blue:state=='pending';grey:state in ('cancel', 'done');red:date_deadline &lt; current_date">
<field name="date_deadline" invisible="1"/>
<field name="create_date"/>
<field name="partner_name"/>
<field name="name"/>
@ -289,10 +291,6 @@
<field name="partner_name"/>
<field name="email_from"/>
<field name="user_id" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]"
help="My Leads" default="1"
/>
<filter icon="terp-partner"
domain="[('user_id','=', False)]"
help="Unassigned Leads" />
@ -302,7 +300,7 @@
<filter icon="terp-crm"
context="{'invisible_section': False}"
domain="[('section_id.user_id','=',uid)]"
help="My section"/>
help="My Sale Team"/>
<filter icon="terp-crm"
context="{'invisible_section': False}"
domain="[]"
@ -313,7 +311,6 @@
<filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="State" icon="terp-crm" domain="[]" context="{'group_by':'state'}"/>
<filter string="Source" icon="terp-crm" domain="[]" context="{'group_by':'categ_id'}"/>
<filter string="Type" icon="terp-crm" domain="[]" context="{'group_by':'type'}"/>
<separator orientation="vertical"/>
<filter string="Team" icon="terp-crm" domain="[]" context="{'group_by':'section_id'}"/>
<filter string="Salesman" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>

View File

@ -41,7 +41,7 @@ class crm_meeting(osv.osv, crm_case):
""" CRM Meeting Cases """
_name = 'crm.meeting'
_description = "Meeting Cases"
_description = "Meeting"
_order = "id desc"
_inherit = ["mailgate.thread", "calendar.event"]

View File

@ -50,7 +50,7 @@
<field name="res_model">crm.meeting</field>
<field name="view_mode">calendar,tree,form,gantt</field>
<field name="view_id" ref="crm_case_calendar_view_meet"/>
<field name="context">{'search_default_current':1}</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_crm_case_meetings_filter"/>
</record>

View File

@ -260,25 +260,21 @@
<field name="arch" type="xml">
<search string="Search Meetings">
<group col="12" colspan="4">
<filter icon="terp-project" name="current" string="Current"
domain="[('state','in',('draft', 'open'))]"
help="Current Meetings"/>
<filter icon="terp-partner" string="My Meetings"
domain="[('user_id','=',uid)]"
help="My Meetings" />
<filter icon="terp-project" name="current" string="Current"
domain="[('state','in',('draft', 'open'))]"
help="Current Meetings"/>
<separator orientation="vertical"/>
<field name="name" select="1" string="Subject"/>
<field name="partner_id" select="1" />
<field name="section_id"
select="1" widget="selection">
<field name="section_id" select="1" widget="selection">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section" />
help="My Sale Team" />
</field>
<field name="user_id" select="1" widget="selection"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="16">
<group expand="0" string="Group By..." colspan="16">
<filter string="Date" icon="terp-project"
domain="[]" context="{'group_by':'date'}" />
<filter string="Privacy" icon="terp-crm"

View File

@ -36,12 +36,10 @@ AVAILABLE_STATES = [
class crm_opportunity(osv.osv):
""" Opportunity Cases """
_name = "crm.lead"
_description = "Opportunity Cases"
_description = "Opportunity"
_order = "priority,date_action,id desc"
_inherit = 'crm.lead'
_columns = {
# From crm.case
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
@ -56,7 +54,6 @@ class crm_opportunity(osv.osv):
'date_deadline': fields.date('Expected Closing'),
'date_action': fields.date('Next Action'),
}
def case_close(self, cr, uid, ids, *args):
"""Overrides close for crm_case for setting probability and close date
@param self: The object pointer

View File

@ -29,6 +29,7 @@
<field name="domain">[('type','=','opportunity')]</field>
<field name="context">{'search_default_current':1}</field>
<field name="view_id" ref="crm_case_tree_view_oppor"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
</record>

View File

@ -115,57 +115,25 @@
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_pending" string="Pending"
states="draft,open" type="object"
icon="gtk-media-pause" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
groups="base.group_extended"
icon="gtk-go-up" />
<button name="case_pending" string="Pending"
states="draft,open" type="object"
icon="gtk-media-pause" />
<button name="case_cancel" string="Mark Lost"
states="draft,open,pending" type="object"
icon="gtk-close" />
<button name="case_close" string="Mark Won"
states="open,draft,pending" type="object"
icon="gtk-apply" />
<button name="case_cancel" string="Mark Lost"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
<button name="case_reset" string="Reset to New"
states="done,cancel" type="object"
icon="gtk-convert" />
</group>
</page>
<page string="History" groups="base.group_extended">
<group col="2" colspan="2">
<separator string="Dates" colspan="2"/>
<field name="create_date"/>
<field name="write_date"/>
<field name="date_closed"/>
<field name="date_open"/>
</group>
<group col="2" colspan="2">
<separator string="Misc" colspan="2"/>
<field name="active"/>
<field name="day_open"/>
<field name="day_close"/>
<field name="referred"/>
</group>
<separator colspan="4" string="References"/>
<field name="ref"/>
<field name="ref2"/>
<field name="log_ids" nolabel="1" colspan="4">
<tree string="Logs">
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
</tree>
<form string="Logs">
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
</form>
</field>
</page>
<page string="Emails" groups="base.group_extended">
<group colspan="4">
<field colspan="4" name="email_cc" string="CC"/>
@ -199,6 +167,38 @@
name="%(crm_lead_forward_to_partner_act)d"
icon="gtk-go-forward" type="action" />
</page>
<page string="History" groups="base.group_extended">
<group col="2" colspan="2">
<separator string="Dates" colspan="2"/>
<field name="create_date"/>
<field name="write_date"/>
<field name="date_closed"/>
<field name="date_open"/>
</group>
<group col="2" colspan="2">
<separator string="Misc" colspan="2"/>
<field name="active"/>
<field name="day_open"/>
<field name="day_close"/>
<field name="referred"/>
</group>
<separator colspan="4" string="References"/>
<field name="ref"/>
<field name="ref2"/>
<field name="log_ids" nolabel="1" colspan="4">
<tree string="Logs">
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
</tree>
<form string="Logs">
<separator string="Action Information" colspan="4"/>
<field name="name" colspan="4"/>
<field name="date"/>
<field name="user_id"/>
</form>
</field>
</page>
</notebook>
</form>
</field>
@ -211,7 +211,8 @@
<field name="model">crm.lead</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel','done')">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done');red:date_deadline &lt; current_date">
<field name="date_deadline" invisible="1"/>
<field name="create_date"/>
<field name="name" string="Opportunity"/>
<field name="partner_id"/>
@ -234,7 +235,7 @@
icon="gtk-go-forward" />
<button name="case_close" string="Won"
states="open,draft,pending" type="object"
icon="gtk-close" />
icon="gtk-apply" />
<button name="case_pending" string="Pending"
states="open,draft" type="object"
icon="gtk-media-pause" />
@ -290,10 +291,6 @@
<separator orientation="vertical"/>
<field name="name" string="Opportunity"/>
<field name="user_id" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]"
help="My Opportunities" default="1"
/>
<filter icon="terp-partner"
domain="[('user_id','=', False)]"
help="Unassigned Opportunities" />
@ -303,7 +300,7 @@
widget="selection">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section" />
help="My Sale Team" />
</field>
<newline/>
<group expand="0" string="Group By..." colspan="16">

View File

@ -29,7 +29,7 @@ class crm_phonecall(osv.osv, crm_case):
""" Phonecall Cases """
_name = "crm.phonecall"
_description = "Phonecall Cases"
_description = "Phonecall"
_order = "id desc"
_inherit = 'mailgate.thread'

View File

@ -20,6 +20,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,calendar</field>
<field name="view_id" ref="crm_case_phone_tree_view"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
</record>

View File

@ -263,9 +263,6 @@
<field name="name" string="Call Summary"/>
<field name="partner_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]" help="My Phonecalls"
default="1" />
<filter icon="terp-partner"
domain="[('user_id','=',False)]"
help="Unassigned Phonecalls" />
@ -274,7 +271,7 @@
select="1" widget="selection" string="Sales Team">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section" />
help="My Sale Team" />
</field>
<newline/>
<group expand="0" string="Group By..." colspan="4">

View File

@ -18,7 +18,6 @@
<group col="6" colspan="4">
<field name="name" select="1" colspan="4"/>
<field name="code" select="1"/>
<newline/>
<field name="resource_calendar_id" select="2"/>
</group>
<notebook colspan="4">
@ -39,8 +38,8 @@
</group>
<separator string="Members List" colspan="4"/>
<field name="member_ids" nolabel="1" colspan="4"/>
<separator string="Note" colspan="4"/>
<field name="note" select="1" colspan="4" nolabel="1"/>
</page><page string="Notes">
<field name="note" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
@ -435,9 +434,6 @@
<field name="arch" type="xml">
<search string="Search Case">
<group col='6' colspan='4'>
<filter icon="terp-partner" string="My Cases"
domain="[('user_id','=',uid)]" separator="1"
default="1" help="Cases Related to Current User" />
<field name="state" select="1">
<filter icon="gtk-new"
domain="[('state','in',('draft', 'open'))]"
@ -465,6 +461,7 @@
<field name="res_model">mailgate.thread</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm_case_tree-view"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_crm_case_filter"/>
</record>
@ -522,10 +519,6 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Histories">
<filter icon="terp-crm" string="My Histories"
domain="[('user_id','=',uid)]"
help="My Histories" />
<separator orientation="vertical"/>
<group col="6" colspan="2">
<field name="date" select="1"/>
<field name="user_id" select="1" widget="selection"/>
@ -545,6 +538,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="crm_case_history_tree-view"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="crm_case_history_search"/>
</record>

View File

@ -13,7 +13,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-05-18 05:15+0000\n"
"X-Launchpad-Export-Date: 2010-05-19 05:11+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm

View File

@ -14,7 +14,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,calendar,form,graph</field>
<field name="view_id" ref="crm_case_claims_tree_view"/>
<field name="context">{"search_default_section_id":section_id,"search_default_current":1,"search_default_my_claims":1}</field>
<field name="context">{"search_default_section_id":section_id,"search_default_current":1,"search_default_user_id":uid}</field>
<field name="search_view_id" ref="crm_claim.view_crm_case_claims_filter"/>
</record>

View File

@ -246,8 +246,8 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Claims">
<filter icon="gtk-new" string="Current"
domain="[('state','in',('draft', 'open'))]" name="current"
<filter icon="gtk-new" string="Current" name="current"
domain="[('state','in',('draft', 'open'))]"
separator="1" help="Current Claims" default="1"
/>
<filter icon="gtk-execute"
@ -264,20 +264,12 @@
<field name="name" select='1'/>
<field name="partner_id" select="1"/>
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]" help="My Claims"
default="1" />
<filter icon="terp-partner"
domain="[('user_id','=', False)]"
help="Unassigned Claims" />
</field>
<field name="section_id" select="1"
widget="selection"
default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section" />
</field>
widget="selection"/>
<newline/>
<group expand="0" string="Group By..." colspan="10" col="20">
<filter string="Deadline" icon="terp-crm"

View File

@ -12,8 +12,8 @@
<field name="name">Funds</field>
<field name="res_model">crm.fundraising</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{"search_default_current":1}</field>
<field name="view_id" ref="crm_fundraising.crm_case_tree_view_fund"/>
<field name="context">{"search_default_user_id":uid,"search_default_current":1}</field>
<field name="search_view_id" ref="crm_fundraising.view_crm_case_fund_filter"/>
</record>

View File

@ -249,8 +249,7 @@
</field>
</record>
<!-- Fund Raising Search View -->
<!-- Fund Raising Search View -->
<record id="view_crm_case_fund_filter" model="ir.ui.view">
<field name="name">CRM - Funds Search</field>
<field name="model">crm.fundraising</field>
@ -269,12 +268,6 @@
domain="[('state','=','pending')]"
help="Pending Funds" />
<separator orientation="vertical" />
<filter icon="terp-partner" string="My Funds"
default="1" domain="[('user_id','=',uid)]"
separator="1"
help="Funds Related to Current User"
/>
<separator orientation="vertical" />
<field name="state" select="1" />
<field name="name" select='1'
string="Fund Description" />
@ -306,6 +299,5 @@
</search>
</field>
</record>
</data>
</openerp>

View File

@ -11,6 +11,7 @@
<field name="res_model">crm.helpdesk</field>
<field name="view_mode">tree,calendar,form</field>
<field name="view_id" ref="crm_case_tree_view_helpdesk"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_crm_case_helpdesk_filter"/>
</record>

View File

@ -236,11 +236,7 @@
<separator orientation="vertical"/>
<field name="name" select='1' string="Query"/>
<field name="partner_id" />
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]"
help="My Helpdesk Requests" default="1" />
</field>
<field name="user_id" select="1" widget="selection"/>
<field name="section_id" select="1" widget="selection" string="Sales Team">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"

View File

@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 13:48+0000\n"
"Last-Translator: <>\n"
"PO-Revision-Date: 2010-05-18 10:59+0000\n"
"Last-Translator: Pandu Pradana <p4ndupr4d4n4@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-04-17 04:20+0000\n"
"X-Launchpad-Export-Date: 2010-05-19 05:12+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_vertical
#: model:ir.module.module,description:crm_vertical.module_meta_information
msgid "Simplification of the interface for CRM."
msgstr ""
msgstr "Penyederhanaan dari antar-muka CRM."

View File

@ -26,7 +26,7 @@ from tools.translate import _
class delivery_carrier(osv.osv):
_name = "delivery.carrier"
_description = "Carrier and delivery grids"
_description = "Carrier"
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
@ -144,7 +144,7 @@ delivery_grid()
class delivery_grid_line(osv.osv):
_name = "delivery.grid.line"
_description = "Delivery line of grid"
_description = "Delivery Grid Line"
_columns = {
'name': fields.char('Name', size=32, required=True),
'grid_id': fields.many2one('delivery.grid', 'Grid',required=True),

View File

@ -128,7 +128,7 @@
<field name="arch" type="xml">
<group name="logistic" position="inside">
<field name="id" invisible="True"/>
<field name="carrier_id" context="{'order_id':id}"/>
<field name="carrier_id" context="{'order_id':active_id}"/>
</group>
</field>
</record>

View File

@ -7,3 +7,5 @@
"access_delivery_grid_line_manager","delivery.grid.line","model_delivery_grid_line","sale.group_sale_manager",1,1,1,1
"access_delivery_carrier_partner_manager","delivery.carrier partner_manager","model_delivery_carrier","base.group_partner_manager",1,0,0,0
"access_delivery_carrier_stock_worker","delivery.carrier stock_worker","model_delivery_carrier","stock.group_stock_user",1,0,0,0
"access_delivery_sale_order_manager","delivery.sale.order","model_delivery_sale_order","sale.group_sale_manager",1,1,1,1
"access_delivery_sale_order","delivery.sale.order","model_delivery_sale_order","sale.group_sale_user",1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
7 access_delivery_grid_line_manager delivery.grid.line model_delivery_grid_line sale.group_sale_manager 1 1 1 1
8 access_delivery_carrier_partner_manager delivery.carrier partner_manager model_delivery_carrier base.group_partner_manager 1 0 0 0
9 access_delivery_carrier_stock_worker delivery.carrier stock_worker model_delivery_carrier stock.group_stock_user 1 0 0 0
10 access_delivery_sale_order_manager delivery.sale.order model_delivery_sale_order sale.group_sale_manager 1 1 1 1
11 access_delivery_sale_order delivery.sale.order model_delivery_sale_order sale.group_sale_user 1 0 0 0

View File

@ -29,7 +29,7 @@ import decimal_precision as dp
# Overloaded stock_picking to manage carriers :
class stock_picking(osv.osv):
_name = "stock.picking"
_description = "Picking list"
_description = "Packing List"
_inherit = 'stock.picking'
def _cal_weight(self, cr, uid, ids, name, args, context=None):
@ -55,7 +55,7 @@ class stock_picking(osv.osv):
'weight': fields.function(_cal_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'),
store={
'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 20),
'stock.move': (_get_picking_line, ['product_id','product_uos_qty'], 20),
'stock.move': (_get_picking_line, ['product_id','product_qty','product_uom','product_uos_qty'], 20),
}),
}

View File

@ -31,7 +31,7 @@ from tools.translate import _
class document_directory(osv.osv):
_name = 'document.directory'
_description = 'Document directory'
_description = 'Directory'
_order = 'name desc'
_columns = {
'name': fields.char('Name', size=64, required=True, select=1),
@ -286,7 +286,7 @@ class document_directory_dctx(osv.osv):
appended to all children down the tree.
"""
_name = 'document.directory.dctx'
_description = 'Directory dynamic context'
_description = 'Directory Dynamic Context'
_columns = {
'dir_id': fields.many2one('document.directory', 'Directory', required=True),
'field': fields.char('Field', size=20, required=True, select=1, help="The name of the field. Note that the prefix \"dctx_\" will be prepended to what is typed here."),

View File

@ -95,7 +95,7 @@ class document_storage(osv.osv):
the same tree of filesystem storage.
"""
_name = 'document.storage'
_description = 'Document storage media'
_description = 'Storage Media'
_columns = {
'name': fields.char('Name', size=64, required=True, select=1),
'write_date': fields.datetime('Date Modified', readonly=True),

View File

@ -42,7 +42,6 @@
<field name="arch" type="xml">
<search string="All users files">
<group col="12" colspan="4">
<filter icon="terp-stock" string="My" domain="[('user','=',uid)]" help="My Files"/>
<separator orientation="vertical"/>
<filter icon="terp-stock" string="This Year" domain="[('name','=',time.localtime()[0])]" help="All Months Files"/>
<filter icon="terp-stock" string="This Month" domain="[('month','=',time.localtime()[1])]" help="This Months Files"/>
@ -65,6 +64,7 @@
<field name="res_model">report.document.user</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="context">{"search_default_user":uid}</field>
<field name="search_view_id" ref="view_report_document_user_search"/>
</record>

View File

@ -30,7 +30,7 @@ import os
class document_configuration_wizard(osv.osv_memory):
_name='document.configuration.wizard'
_description = 'Auto Directory configuration'
_description = 'Auto Directory Configuration'
_inherit = 'res.config'
_rec_name = 'host'
_columns = {

View File

@ -123,7 +123,7 @@ class abstracted_fs:
def db_list(self):
#return pooler.pool_dic.keys()
s = netsvc.ExportService.getService('db')
result = s.exp_list()
result = s.exp_list(document=True)
self.db_name_list = []
for db_name in result:
db, cr = None, None

View File

@ -177,7 +177,6 @@ class document_directory_content(osv.osv):
fexprs[n.name] = n.expr
if 'uid' not in fields:
print "uid not in ", fields
# FIXME: should pass
return True
for child in parsedCal.getChildren():
@ -189,7 +188,6 @@ class document_directory_content(osv.osv):
if enl =='uid':
uuid = event.value
if not enl in fields:
# print "skip", enl
continue
if fields[enl] and funcs[enl] == 'field':
if ICS_TAGS[enl]=='normal':
@ -216,7 +214,6 @@ class document_directory_content(osv.osv):
# end for
if not uuid:
print "Skipping cal", child
# FIXME: should pass
continue

View File

@ -218,11 +218,13 @@ class event_registration(osv.osv):
args[1]['description']= event.mail_confirm
return super(event_registration, self).write(cr, uid, *args, **argv)
def mail_user_confirm(self,cr,uid,ids):
reg_ids=self.browse(cr,uid,ids)
def mail_user_confirm(self, cr, uid, ids):
reg_ids = self.browse(cr,uid,ids)
for reg_id in reg_ids:
src = reg_id.event_id.reply_to or False
dest = [reg_id.email_from]
dest = []
if reg_id.email_from:
dest += [reg_id.email_from]
if reg_id.email_cc:
dest += [reg_id.email_cc]
if dest and src:
@ -231,11 +233,13 @@ class event_registration(osv.osv):
raise osv.except_osv(_('Error!'), _('You must define a reply-to address in order to mail the participant. You can do this in the Mailing tab of your event. Note that this is also the place where you can configure your event to not send emails automaticly while registering'))
return False
def mail_user(self,cr,uid,ids):
reg_ids=self.browse(cr,uid,ids)
def mail_user(self, cr, uid, ids):
reg_ids = self.browse(cr, uid, ids)
for reg_id in reg_ids:
src = reg_id.event_id.reply_to or False
dest = [reg_id.email_from]
dest = []
if reg_id.email_from:
dest += [reg_id.email_from]
if reg_id.email_cc:
dest += [reg_id.email_cc]
if reg_id.event_id.mail_auto_confirm or reg_id.event_id.mail_auto_registr:

View File

@ -126,7 +126,6 @@
<field name="arch" type="xml">
<search string="Events">
<group col="10" colspan="4">
<filter icon="gtk-execute" string="My Events" domain="[('user_id','=',uid)]" help="My Events"/>
<separator orientation="vertical"/>
<filter icon="terp-calendar" string="Draft" domain="[('state','=','draft')]" help="Draft Events"/>
<filter icon="terp-calendar" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed Events"/>
@ -147,6 +146,7 @@
<field name="res_model">event.event</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_event_search"/>
</record>
@ -271,7 +271,6 @@
<field name="arch" type="xml">
<search string="Event Registration">
<group col="12" colspan="4">
<filter icon="gtk-execute" string="My" domain="[('user_id','=',uid)]" help="My Registrations"/>
<separator orientation="vertical"/>
<filter icon="terp-calendar" string="Draft" domain="[('state','=','draft')]" help="Draft Registrations"/>
<filter icon="terp-calendar" string="Confirmed" domain="[('state','in',('open','done'))]" help="Confirmed Registrations"/>
@ -292,6 +291,7 @@
<field name="view_type">form</field>
<field name="domain"></field>
<field name="view_mode">tree,form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_registration_search"/>
</record>
<menuitem

View File

@ -5,3 +5,8 @@
"access_event_registration","event.registration","model_event_registration","crm.group_crm_user",1,1,1,1
"access_report_event_registration","report.event.registration","model_report_event_registration","crm.group_crm_user",1,0,0,0
"access_report_event_type_registration","report.event.type.registration","model_report_event_type_registration","crm.group_crm_user",1,0,0,0
"access_event_confirm_registration","event.confirm.registration","model_event_confirm_registration","crm.group_crm_user",1,0,0,0
"access_event_confirm_registration_manager","event.confirm.registration manager","model_event_confirm_registration","crm.group_crm_manager",1,1,1,1
"access_event_make_invoice","event.make.invoice","model_event_make_invoice","crm.group_crm_user",1,1,1,1
"access_event_partners_list","event.partners.list","model_event_partners_list","crm.group_crm_user",1,0,0,0
"access_event_registration_list","event.registration.list","model_event_registration_list","crm.group_crm_user",1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
5 access_event_registration event.registration model_event_registration crm.group_crm_user 1 1 1 1
6 access_report_event_registration report.event.registration model_report_event_registration crm.group_crm_user 1 0 0 0
7 access_report_event_type_registration report.event.type.registration model_report_event_type_registration crm.group_crm_user 1 0 0 0
8 access_event_confirm_registration event.confirm.registration model_event_confirm_registration crm.group_crm_user 1 0 0 0
9 access_event_confirm_registration_manager event.confirm.registration manager model_event_confirm_registration crm.group_crm_manager 1 1 1 1
10 access_event_make_invoice event.make.invoice model_event_make_invoice crm.group_crm_user 1 1 1 1
11 access_event_partners_list event.partners.list model_event_partners_list crm.group_crm_user 1 0 0 0
12 access_event_registration_list event.registration.list model_event_registration_list crm.group_crm_user 1 0 0 0

View File

@ -68,8 +68,11 @@ class event_make_invoice(osv.osv_memory):
inv_reject = inv_reject + 1
inv_rej_reason += "ID "+str(reg.id)+": Registration doesn't have any partner to invoice. \n"
continue
partner_address_list = reg.partner_invoice_id and self.pool.get('res.partner').address_get(cr, uid, [reg.partner_invoice_id.id], adr_pref=['invoice'])
partner_address_id = partner_address_list['invoice']
else:
val_invoice = pool_obj.get('account.invoice').onchange_partner_id(cr, uid, [], 'out_invoice', reg.partner_invoice_id.id, False, False)
val_invoice['value'].update({'partner_id': reg.partner_invoice_id.id})
partner_address_id = val_invoice['value']['address_invoice_id']
if not partner_address_id:
inv_reject = inv_reject + 1
inv_rej_reason += "ID "+str(reg.id)+": Registered partner doesn't have an address to make the invoice. \n"
@ -82,8 +85,9 @@ class event_make_invoice(osv.osv_memory):
tax_ids.append(tax.id)
vals = value['value']
c_name = reg.contact_id and ('-' + self.pool.get('res.partner.contact').name_get(cr, uid, [reg.contact_id.id])[0][1]) or ''
vals.update({
'name': reg.name,
'name': reg.invoice_label + '-' + c_name,
'price_unit': reg.unit_price,
'quantity': reg.nb_register,
'product_id':reg.event_id.product_id.id,
@ -91,23 +95,14 @@ class event_make_invoice(osv.osv_memory):
})
inv_line_ids = obj_event_reg._create_invoice_lines(cr, uid, [reg.id], vals)
inv = {
'name': reg.invoice_label,
val_invoice['value'].update({
'origin': reg.invoice_label,
'type': 'out_invoice',
'reference': False,
'account_id': reg.partner_invoice_id.property_account_receivable.id,
'partner_id': reg.partner_invoice_id.id,
'address_invoice_id':partner_address_id,
'address_contact_id':partner_address_id,
'invoice_line': [(6,0,[inv_line_ids])],
'currency_id' :reg.partner_invoice_id.property_product_pricelist.currency_id.id,
'comment': "",
'payment_term':reg.partner_invoice_id.property_payment_term.id,
'fiscal_position': reg.partner_invoice_id.property_account_position.id
}
})
inv_id = inv_obj.create(cr, uid, inv)
inv_id = inv_obj.create(cr, uid, val_invoice['value'])
list_inv.append(inv_id)
obj_event_reg.write(cr, uid, reg.id, {'invoice_id': inv_id, 'state': 'done'})
obj_event_reg._history(cr, uid, [reg.id], 'Invoiced', history=True)

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