commit
379e9a98ff
|
@ -154,6 +154,13 @@ class account_account(osv.osv):
|
|||
args[pos] = ('id','in',ids1)
|
||||
pos+=1
|
||||
|
||||
if context and context.has_key('consolidate_childs'): #add concolidated childs of accounts
|
||||
ids = super(account_account,self).search(cr, uid, args, offset, limit,
|
||||
order, context=context, count=count)
|
||||
for consolidate_child in self.browse(cr, uid, context['account_id']).child_consol_ids:
|
||||
ids.append(consolidate_child.id)
|
||||
return ids
|
||||
|
||||
return super(account_account,self).search(cr, uid, args, offset, limit,
|
||||
order, context=context, count=count)
|
||||
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
<field name="price_unit" select="1"/>
|
||||
<field name="discount"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field colspan="4" name="origin" select="1"/>
|
||||
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id" on_change="onchange_account_id(parent.partner_id,account_id)"/>
|
||||
<field domain="[('type','<>','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id"/>
|
||||
<newline/>
|
||||
|
|
|
@ -676,7 +676,83 @@ class account_move_line(osv.osv):
|
|||
if update_check:
|
||||
if ('account_id' in vals) or ('journal_id' in vals) or ('period_id' in vals) or ('move_id' in vals) or ('debit' in vals) or ('credit' in vals) or ('date' in vals):
|
||||
self._update_check(cr, uid, ids, context)
|
||||
|
||||
obj_line=self.browse(cr, uid, ids[0])
|
||||
lines={}
|
||||
|
||||
obj_analytic_line=self.pool.get('account.analytic.line')
|
||||
analytic=True
|
||||
journal_flag=False
|
||||
del_line=False
|
||||
|
||||
if ('journal_id' in vals):
|
||||
journal=self.pool.get('account.journal').browse(cr,uid,vals['journal_id'])
|
||||
journal_flag=True
|
||||
if not journal.analytic_journal_id:
|
||||
del_line=True
|
||||
|
||||
if ('analytic_account_id' in vals) and (not vals['analytic_account_id']):
|
||||
del_line=True
|
||||
|
||||
if del_line:
|
||||
for obj in obj_line.analytic_lines:
|
||||
obj_analytic_line.unlink(cr,uid,obj.id)
|
||||
analytic=False
|
||||
|
||||
if obj_line.analytic_lines:
|
||||
mode='write'
|
||||
else:
|
||||
mode='create'
|
||||
|
||||
if obj_line.analytic_lines and analytic:
|
||||
if ('analytic_account_id' in vals):
|
||||
lines['account_id'] = vals['analytic_account_id']
|
||||
|
||||
if ('account_id' in vals):
|
||||
lines['general_account_id'] = vals['account_id']
|
||||
|
||||
if ('name' in vals):
|
||||
lines['name'] = vals['name']
|
||||
|
||||
if ('date' in vals):
|
||||
lines['date'] = vals['date']
|
||||
|
||||
if ('ref' in vals and vals['ref']):
|
||||
lines['ref'] = vals['ref']
|
||||
|
||||
if ('quantity' in vals and vals['quantity']):
|
||||
lines['unit_amount'] = vals['quantity']
|
||||
|
||||
if ('credit' in vals and vals['credit']):
|
||||
lines['amount'] = vals['credit']
|
||||
|
||||
if ('debit' in vals and vals['debit']):
|
||||
lines['amount'] = vals['debit']
|
||||
|
||||
if journal_flag:
|
||||
lines['journal_id']=journal.analytic_journal_id.id
|
||||
|
||||
if lines:
|
||||
if mode=='write':
|
||||
obj_analytic_line.write(cr,uid,obj_line.analytic_lines[0].id,lines,context)
|
||||
|
||||
result = super(osv.osv, self).write(cr, uid, ids, vals, context)
|
||||
|
||||
if mode=='create' and analytic and obj_line.analytic_account_id:
|
||||
if obj_line.journal_id.analytic_journal_id:
|
||||
vals_lines={
|
||||
'name': obj_line.name,
|
||||
'date': obj_line.date,
|
||||
'account_id': obj_line.analytic_account_id.id,
|
||||
'unit_amount':obj_line.quantity,
|
||||
'amount': obj_line.debit or obj_line.credit,
|
||||
'general_account_id': obj_line.account_id.id,
|
||||
'journal_id': obj_line.journal_id.analytic_journal_id.id,
|
||||
'ref': obj_line.ref,
|
||||
'move_id':obj_line.id
|
||||
}
|
||||
obj_analytic_line.create(cr,uid,vals_lines)
|
||||
|
||||
if check:
|
||||
done = []
|
||||
for line in self.browse(cr, uid, ids):
|
||||
|
@ -786,20 +862,20 @@ 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 !'))
|
||||
|
||||
result = super(osv.osv, self).create(cr, uid, vals, context)
|
||||
# result = super(osv.osv, self).create(cr, uid, vals, context)
|
||||
if 'analytic_account_id' in vals and vals['analytic_account_id']:
|
||||
if journal.analytic_journal_id:
|
||||
vals['analytic_lines'] = [(0,0, {
|
||||
'name': vals['name'],
|
||||
'date': vals['date'],
|
||||
'account_id': vals['analytic_account_id'],
|
||||
'unit_amount': vals['quantity'],
|
||||
'unit_amount':'quantity' in vals and vals['quantity'] or 1.0,
|
||||
'amount': vals['debit'] or vals['credit'],
|
||||
'general_account_id': vals['account_id'],
|
||||
'journal_id': journal.analytic_journal_id.id,
|
||||
'ref': vals['ref'],
|
||||
})]
|
||||
|
||||
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'])
|
||||
|
|
|
@ -172,7 +172,6 @@
|
|||
<field name="name">Chart of Accounts</field>
|
||||
<field name="res_model">account.account</field>
|
||||
<field name="view_type">tree</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_account_tree"/>
|
||||
<field name="domain">[('parent_id','=',False)]</field>
|
||||
</record>
|
||||
|
@ -717,10 +716,10 @@
|
|||
<page string="Analytic Lines">
|
||||
<field colspan="4" name="analytic_lines" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Move Lines">
|
||||
<!--<page string="Move Lines">
|
||||
<field colspan="4" name="reconcile_implicit"/>
|
||||
<field colspan="4" name="parent_move_lines" nolabel="0"/>
|
||||
</page>
|
||||
</page>-->
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -861,6 +861,7 @@ class account_invoice_line(osv.osv):
|
|||
_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."),
|
||||
'invoice_id': fields.many2one('account.invoice', 'Invoice Ref', ondelete='cascade', select=True),
|
||||
'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'),
|
||||
'product_id': fields.many2one('product.product', 'Product', ondelete='set null'),
|
||||
|
|
|
@ -36,27 +36,27 @@ from osv import osv
|
|||
|
||||
class general_ledger(rml_parse.rml_parse):
|
||||
_name = 'report.account.general.ledger'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def preprocess(self, objects, data, ids):
|
||||
##
|
||||
|
||||
|
||||
|
||||
|
||||
self.borne_date = self.get_min_date(data['form'])
|
||||
|
||||
|
||||
|
||||
|
||||
##
|
||||
new_ids = []
|
||||
if (data['model'] == 'account.account'):
|
||||
new_ids = ids
|
||||
else:
|
||||
new_ids.append(data['form']['Account_list'])
|
||||
|
||||
|
||||
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
|
||||
|
||||
|
||||
super(general_ledger, self).preprocess(objects, data, new_ids)
|
||||
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(general_ledger, self).__init__(cr, uid, name, context)
|
||||
self.date_borne = {}
|
||||
|
@ -64,7 +64,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
self.child_ids = ""
|
||||
self.tot_currency = 0.0
|
||||
self.period_sql = ""
|
||||
self.sold_accounts = {}
|
||||
self.sold_accounts = {}
|
||||
self.localcontext.update( {
|
||||
'time': time,
|
||||
'lines': self.lines,
|
||||
|
@ -73,7 +73,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
'sum_solde_account': self._sum_solde_account,
|
||||
'sum_debit': self._sum_debit,
|
||||
'sum_credit': self._sum_credit,
|
||||
'sum_solde': self._sum_solde,
|
||||
'sum_solde': self._sum_solde,
|
||||
'get_children_accounts': self.get_children_accounts,
|
||||
'sum_currency_amount_account': self._sum_currency_amount_account
|
||||
})
|
||||
|
@ -82,7 +82,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
result = {}
|
||||
#for id in ids:
|
||||
# result.setdefault(id, False)
|
||||
|
||||
|
||||
for account_line in self.pool.get('account.move.line').browse(cr, uid, ids, context):
|
||||
# For avoid long text in the field we will limit it to 5 lines
|
||||
#
|
||||
|
@ -92,7 +92,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
num_id_move = str(account_line.move_id.id)
|
||||
num_id_line = str(account_line.id)
|
||||
account_id = str(account_line.account_id.id)
|
||||
# search the basic account
|
||||
# search the basic account
|
||||
# We have the account ID we will search all account move line from now until this time
|
||||
# We are in the case of we are on the top of the account move Line
|
||||
cr.execute('SELECT distinct(ac.code) as code_rest,ac.name as name_rest from account_account AS ac, account_move_line mv\
|
||||
|
@ -115,10 +115,8 @@ class general_ledger(rml_parse.rml_parse):
|
|||
return result
|
||||
|
||||
def get_children_accounts(self, account, form):
|
||||
|
||||
self.child_ids = self.pool.get('account.account').search(self.cr, self.uid,
|
||||
[('parent_id', 'child_of', self.ids)])
|
||||
|
||||
res = []
|
||||
ctx = self.context.copy()
|
||||
## We will make the test for period or date
|
||||
|
@ -130,20 +128,21 @@ class general_ledger(rml_parse.rml_parse):
|
|||
else:
|
||||
ctx['date_from'] = form['date_from']
|
||||
ctx['date_to'] = form['date_to']
|
||||
#
|
||||
|
||||
#
|
||||
#
|
||||
self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx)
|
||||
|
||||
for child_id in self.pool.get('account.account').search(self.cr, self.uid,
|
||||
[('parent_id', 'child_of', [account.id])]):
|
||||
|
||||
if account and account.child_consol_ids: # add ids of consolidated childs also of selected account
|
||||
ctx['consolidate_childs'] = True
|
||||
ctx['account_id'] = account.id
|
||||
ids_acc = self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])],context=ctx)
|
||||
|
||||
for child_id in ids_acc:
|
||||
child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id)
|
||||
|
||||
|
||||
sold_account = self._sum_solde_account(child_account,form)
|
||||
|
||||
|
||||
self.sold_accounts[child_account.id] = sold_account
|
||||
|
||||
|
||||
if form['display_account'] == 'bal_mouvement':
|
||||
if child_account.type != 'view' \
|
||||
and len(self.pool.get('account.move.line').search(self.cr, self.uid,
|
||||
|
@ -158,52 +157,51 @@ class general_ledger(rml_parse.rml_parse):
|
|||
context=ctx)) <> 0 :
|
||||
if ( sold_account <> 0.0):
|
||||
res.append(child_account)
|
||||
else:
|
||||
else:
|
||||
if child_account.type != 'view' \
|
||||
and len(self.pool.get('account.move.line').search(self.cr, self.uid,
|
||||
[('account_id','>=',child_account.id)],
|
||||
context=ctx)) <> 0 :
|
||||
res.append(child_account)
|
||||
|
||||
|
||||
##
|
||||
|
||||
|
||||
|
||||
|
||||
## We will now compute solde initiaux
|
||||
|
||||
|
||||
if not len(res):
|
||||
return[account]
|
||||
else:
|
||||
for move in res:
|
||||
|
||||
|
||||
SOLDEINIT = "SELECT sum(l.debit) AS sum_debit, sum(l.credit) AS sum_credit FROM account_move_line l WHERE l.account_id = " + str(move.id) + " AND l.date <= '" + self.borne_date['max_date'] + "'" + " AND l.date >= '" + self.borne_date['min_date'] + "'"
|
||||
self.cr.execute(SOLDEINIT)
|
||||
resultat = self.cr.dictfetchall()
|
||||
|
||||
resultat = self.cr.dictfetchall()
|
||||
|
||||
if resultat[0] :
|
||||
|
||||
|
||||
if resultat[0]['sum_debit'] == None:
|
||||
sum_debit = 0
|
||||
else:
|
||||
|
||||
|
||||
sum_debit = resultat[0]['sum_debit']
|
||||
if resultat[0]['sum_credit'] == None:
|
||||
sum_credit = 0
|
||||
else:
|
||||
sum_credit = resultat[0]['sum_credit']
|
||||
|
||||
|
||||
move.init_credit = sum_credit
|
||||
move.init_debit = sum_debit
|
||||
|
||||
|
||||
else:
|
||||
move.init_credit = 0
|
||||
move.init_debit = 0
|
||||
|
||||
|
||||
##
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def get_min_date(self,form):
|
||||
|
||||
|
||||
## Get max born from account_fiscal year
|
||||
#
|
||||
sql = """ select min(fy.date_start) as start_date,max(fy.date_stop) as stop_date from account_fiscalyear
|
||||
|
@ -218,9 +216,9 @@ class general_ledger(rml_parse.rml_parse):
|
|||
periods = form['periods'][0][2]
|
||||
if not periods:
|
||||
sql = """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
|
||||
"""
|
||||
else:
|
||||
else:
|
||||
periods_id = ','.join(map(str, periods))
|
||||
sql = """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
|
||||
|
@ -236,9 +234,9 @@ class general_ledger(rml_parse.rml_parse):
|
|||
periods = form['periods'][0][2]
|
||||
if not periods:
|
||||
sql = """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """
|
||||
"""
|
||||
else:
|
||||
else:
|
||||
periods_id = ','.join(map(str, periods))
|
||||
sql = """
|
||||
Select min(p.date_start) as start_date,max(p.date_stop) as stop_date from account_period as p where p.id in ( """ + periods_id + """)
|
||||
|
@ -270,8 +268,8 @@ class general_ledger(rml_parse.rml_parse):
|
|||
}
|
||||
return self.date_borne
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def lines(self, account, form):
|
||||
inv_types = {
|
||||
'out_invoice': 'CI: ',
|
||||
|
@ -280,27 +278,27 @@ class general_ledger(rml_parse.rml_parse):
|
|||
'in_refund': 'SR: ',
|
||||
}
|
||||
### We will now compute solde initaux
|
||||
|
||||
|
||||
if form['sortbydate'] == 'sort_date':
|
||||
sorttag = 'l.date'
|
||||
else:
|
||||
sorttag = 'j.code'
|
||||
|
||||
|
||||
sql = """
|
||||
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
|
||||
SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name , l.debit, l.credit, l.period_id
|
||||
FROM account_move_line as l
|
||||
LEFT JOIN res_currency c on (l.currency_id=c.id)
|
||||
LEFT JOIN res_currency c on (l.currency_id=c.id)
|
||||
JOIN account_journal j on (l.journal_id=j.id)
|
||||
AND account_id = %d
|
||||
AND %s
|
||||
WHERE l.date<='%s'
|
||||
AND l.date>='%s'
|
||||
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
|
||||
|
||||
AND %s
|
||||
WHERE l.date<='%s'
|
||||
AND l.date>='%s'
|
||||
ORDER by %s"""%(account.id,self.query,self.date_borne['max_date'],self.date_borne['min_date'],sorttag)
|
||||
|
||||
self.cr.execute(sql)
|
||||
|
||||
res = self.cr.dictfetchall()
|
||||
|
||||
|
||||
res = self.cr.dictfetchall()
|
||||
|
||||
sum = 0.0
|
||||
account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
|
||||
for l in res:
|
||||
|
@ -324,7 +322,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
if (l['credit'] > 0):
|
||||
if l['amount_currency'] != None:
|
||||
l['amount_currency'] = abs(l['amount_currency']) * -1
|
||||
|
||||
|
||||
#
|
||||
if l['amount_currency'] != None:
|
||||
self.tot_currency = self.tot_currency + l['amount_currency']
|
||||
|
@ -356,7 +354,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
sum_credit += account.init_credit
|
||||
#
|
||||
##
|
||||
|
||||
|
||||
return sum_credit
|
||||
|
||||
def _sum_solde_account(self, account, form):
|
||||
|
@ -366,7 +364,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
sum_solde = self.cr.fetchone()[0] or 0.0
|
||||
if form['soldeinit']:
|
||||
sum_solde += account.init_debit - account.init_credit
|
||||
|
||||
|
||||
return sum_solde
|
||||
|
||||
|
||||
|
@ -402,7 +400,7 @@ class general_ledger(rml_parse.rml_parse):
|
|||
# "WHERE l.account_id in ("+','.join(map(str, child_ids))+") AND "+query+period_sql)
|
||||
sum_solde = self.cr.fetchone()[0] or 0.0
|
||||
return sum_solde
|
||||
|
||||
|
||||
def _set_get_account_currency_code(self, account_id):
|
||||
self.cr.execute("SELECT c.code as code "\
|
||||
"FROM res_currency c,account_account as ac "\
|
||||
|
@ -412,20 +410,20 @@ class general_ledger(rml_parse.rml_parse):
|
|||
self.account_currency = result[0]
|
||||
else:
|
||||
self.account_currency = False
|
||||
|
||||
|
||||
|
||||
|
||||
def _sum_currency_amount_account(self, account, form):
|
||||
|
||||
|
||||
self._set_get_account_currency_code(account.id)
|
||||
self.cr.execute("SELECT sum(aml.amount_currency) FROM account_move_line as aml,res_currency as rc WHERE aml.currency_id = rc.id AND aml.account_id= %d "%account.id)
|
||||
total = self.cr.fetchone()
|
||||
|
||||
|
||||
if self.account_currency:
|
||||
return_field = str(total[0]) + self.account_currency
|
||||
return return_field
|
||||
else:
|
||||
currency_total = self.tot_currency = 0.0
|
||||
return currency_total
|
||||
|
||||
|
||||
|
||||
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/general_ledger.rml', parser=general_ledger, header=False)
|
||||
|
|
|
@ -199,8 +199,11 @@ class general_ledger_landscape(rml_parse.rml_parse):
|
|||
|
||||
#
|
||||
self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx)
|
||||
|
||||
for child_id in self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])]):
|
||||
if account and account.child_consol_ids: # add ids of consolidated childs also of selected account
|
||||
ctx['consolidate_childs'] = True
|
||||
ctx['account_id'] = account.id
|
||||
ids_acc = self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])], context=ctx)
|
||||
for child_id in ids_acc:
|
||||
child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id)
|
||||
sold_account = self._sum_solde_account(child_account,form)
|
||||
self.sold_accounts[child_account.id] = sold_account
|
||||
|
@ -294,9 +297,9 @@ class general_ledger_landscape(rml_parse.rml_parse):
|
|||
else :
|
||||
l['partner'] = ''
|
||||
|
||||
|
||||
|
||||
sum = l['debit'] - l ['credit']
|
||||
|
||||
|
||||
c = time.strptime(l['date'],"%Y-%m-%d")
|
||||
l['date'] = time.strftime("%d-%m-%Y",c)
|
||||
l['progress'] = sum
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -27,6 +27,7 @@ class wizard_move_line_select(wizard.interface):
|
|||
def _open_window(self, cr, uid, data, context):
|
||||
mod_obj = pooler.get_pool(cr.dbname).get('ir.model.data')
|
||||
act_obj = pooler.get_pool(cr.dbname).get('ir.actions.act_window')
|
||||
account_obj = pooler.get_pool(cr.dbname).get('account.account')
|
||||
fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
|
||||
|
||||
if not context.get('fiscalyear', False):
|
||||
|
@ -48,6 +49,10 @@ class wizard_move_line_select(wizard.interface):
|
|||
'fiscalyear': context.get('fiscalyear', False),
|
||||
'account_id': data['id']
|
||||
}
|
||||
if data['id']:
|
||||
acc_data = account_obj.browse(cr, uid, data['id']).child_consol_ids
|
||||
if acc_data:
|
||||
result['context'].update({'consolidate_childs': True})
|
||||
result['domain']=result['domain'][0:-1]+','+domain+result['domain'][-1]
|
||||
return result
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_analytic_analysis
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:28+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 12:57+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
@ -18,11 +18,9 @@ msgstr ""
|
|||
|
||||
#. module: account_analytic_analysis
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
|
||||
"spéciaux !"
|
||||
"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères spéciaux !"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,remaining_ca:0
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_analytic_default
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:25+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 13:01+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -20,7 +20,7 @@
|
|||
#
|
||||
##############################################################################
|
||||
{
|
||||
"name" : "Multiple-plans management in analytic accounting",
|
||||
"name" : "Multiple-plans management in Analytic Accounting",
|
||||
"version" : "1.0",
|
||||
"depends" : ["account", "account_analytic_default"],
|
||||
"author" : "Tiny",
|
||||
|
|
|
@ -135,12 +135,14 @@ class account_analytic_plan_instance(osv.osv):
|
|||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False):
|
||||
wiz_id = self.pool.get('ir.actions.wizard').search(cr, uid, [("wiz_name","=","create.model")])
|
||||
res = super(account_analytic_plan_instance,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar)
|
||||
|
||||
if (res['type']=='form'):
|
||||
plan_id = False
|
||||
if context.get('journal_id',False):
|
||||
plan_id = self.pool.get('account.journal').browse(cr, uid, int(context['journal_id']), context).plan_id
|
||||
elif context.get('plan_id',False):
|
||||
plan_id = self.pool.get('account.analytic.plan').browse(cr, uid, int(context['plan_id']), context).plan_id
|
||||
plan_id = self.pool.get('account.analytic.plan').browse(cr, uid, int(context['plan_id']), context)
|
||||
|
||||
if plan_id:
|
||||
i=1
|
||||
res['arch'] = """<form string="%s">
|
||||
|
@ -325,8 +327,6 @@ class account_invoice(osv.osv):
|
|||
_name = "account.invoice"
|
||||
_inherit="account.invoice"
|
||||
|
||||
|
||||
|
||||
def line_get_convert(self, cr, uid, x, part, date, context={}):
|
||||
res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context)
|
||||
res['analytics_id']=x.get('analytics_id',False)
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
<act_window name="Distribution Models"
|
||||
domain="[('plan_id', '=', active_id),('plan_id','<>',False)]"
|
||||
context="{'plan_id': active_id}"
|
||||
res_model="account.analytic.instance"
|
||||
res_model="account.analytic.plan.instance"
|
||||
src_model="account.analytic.plan"
|
||||
id="account_analytic_instance_model_open"/>
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_analytic_plans
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 13:24+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_balance
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 14:13+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<!--
|
||||
Budgets
|
||||
-->
|
||||
|
||||
|
||||
<record id="view_budget_post_tree" model="ir.ui.view">
|
||||
<field name="name">account.budget.post.tree</field>
|
||||
<field name="model">account.budget.post</field>
|
||||
|
@ -80,7 +80,7 @@
|
|||
<field name="crossovered_budget_line" widget="one2many_list" colspan="4" nolabel="1" mode="graph,tree">
|
||||
<graph type="bar" string="Lines">
|
||||
<field name="analytic_account_id" />
|
||||
<field name="general_budget_id" operator="+" />
|
||||
<!--<field name="general_budget_id" operator="+" />-->
|
||||
<field name="planned_amount" operator="+"/>
|
||||
<field group="True" name="general_budget_id"/>
|
||||
</graph>
|
||||
|
@ -270,7 +270,7 @@
|
|||
</form>
|
||||
<graph type="bar" string="Lines">
|
||||
<field name="general_budget_id" />
|
||||
<field name="analytic_account_id" operator="+"/>
|
||||
<!--<field name="analytic_account_id" operator="+"/>-->
|
||||
<field name="planned_amount" operator="+"/>
|
||||
<field group="True" name="analytic_account_id"/>
|
||||
</graph>
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:26+0000\n"
|
||||
"PO-Revision-Date: 2008-10-14 10:30+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:23+0000\n"
|
||||
"PO-Revision-Date: 2008-10-10 06:24+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_followup
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:26+0000\n"
|
||||
"PO-Revision-Date: 2008-10-10 06:38+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_invoice_layout
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:12+0000\n"
|
||||
"PO-Revision-Date: 2008-10-10 06:56+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_payment
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-10 08:14+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -74,7 +74,7 @@ class account_report(osv.osv):
|
|||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.credit+y, acc.browse(cr, uid, acc_id, context),0)
|
||||
return reduce(lambda y,x=0: x.credit+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_debit(code,year=0):
|
||||
context['fiscalyear']=_calc_context(year,obj_fy)
|
||||
|
@ -82,7 +82,7 @@ class account_report(osv.osv):
|
|||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.debit+y, acc.browse(cr, uid, acc_id, context),0)
|
||||
return reduce(lambda y,x=0: x.debit+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_balance(code,year=0):
|
||||
context['fiscalyear']=_calc_context(year,obj_fy)
|
||||
|
@ -90,12 +90,12 @@ class account_report(osv.osv):
|
|||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.balance+y, acc.browse(cr, uid, acc_id, context),0)
|
||||
return reduce(lambda y,x=0: x.balance+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_report(*code):
|
||||
acc = self.pool.get('account.report.report')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.amount+y, acc.browse(cr, uid, acc_id, context),0)
|
||||
return reduce(lambda y,x=0: x.amount+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_tax_code(code,period=0):
|
||||
context['period_id']=_calc_context(period,obj_period)
|
||||
|
@ -104,7 +104,7 @@ class account_report(osv.osv):
|
|||
context['period_id']=context['period_id'][0]
|
||||
acc = self.pool.get('account.tax.code')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.sum_period+y, acc.browse(cr, uid, acc_id, context),0)
|
||||
return reduce(lambda y,x=0: x.sum_period+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
result = {}
|
||||
for rep in self.browse(cr, uid, ids, context):
|
||||
objdict = {
|
||||
|
|
|
@ -5,5 +5,12 @@
|
|||
|
||||
<report auto="False" id="report_print_indicators" model="account.report.history" name="print.indicators" rml="account_report/report/print_indicator.rml" string="Indicators"/>
|
||||
|
||||
<report
|
||||
auto="False"
|
||||
id="report_indicator_pdf"
|
||||
menu="False"
|
||||
model="account.report.report"
|
||||
name="print.indicator.pdf"
|
||||
string="Print Indicators in PDF"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -3,5 +3,8 @@
|
|||
<data>
|
||||
<wizard id="wizard_print_indicators" name="print.indicators" string="Print Indicators"/>
|
||||
<menuitem action="wizard_print_indicators" type="wizard" parent="account_report.menu_action_account_report_tree_view" id="menu_wizard_print_indicators"/>
|
||||
|
||||
<wizard id="wizard_indicators_with_pdf" model="account.report.report" name="print.indicators.pdf" string="Indicators in PDF" keyword="client_action_multi" />
|
||||
<!--<menuitem action="wizard_indicators_with_pdf" type="wizard" parent="account_report.menu_action_account_report_tree_view" id="menu_wizard_print_indicators_with_pdf"/>-->
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_report
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:23+0000\n"
|
||||
"PO-Revision-Date: 2008-10-10 08:15+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -96,6 +96,7 @@ class accounting_report_indicator(report_sxw.rml_parse):
|
|||
self.treecount=0
|
||||
self.list=[]
|
||||
self.header_name=self.header_val=[]
|
||||
self.main_dict={}
|
||||
|
||||
def repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[]):
|
||||
self._node.data = ''
|
||||
|
@ -202,39 +203,62 @@ class accounting_report_indicator(report_sxw.rml_parse):
|
|||
|
||||
theme.default_font_size = 12
|
||||
|
||||
tb = text_box.T(loc=(0,700),line_style=line_style.darkblue,text=str(obj_history.code))
|
||||
|
||||
base_x=100
|
||||
base_y=700
|
||||
|
||||
if obj_history.child_ids:
|
||||
tb.add_arrow((100, 700))
|
||||
can.line(line_style.black,base_x-30,base_y,base_x-30,base_y-(50*(len(obj_history.child_ids)-1)))
|
||||
tb.draw()
|
||||
self.child_dist=0
|
||||
def draw_tree(obj_his,base_x,base_y,level=0):
|
||||
self.child_dist=0
|
||||
for i in range(len(obj_his.child_ids)):
|
||||
can.line(line_style.black,base_x-30,base_y,base_x-30,base_y-(50*(i+len(obj_his.child_ids[i].child_ids))))
|
||||
if i<>0:
|
||||
a = arrow.T(head_style = 1)
|
||||
if self.child_dist:
|
||||
diff=self.child_dist
|
||||
else:
|
||||
diff=self.child_dist+i
|
||||
a.draw([(base_x-(30),base_y-(50*diff)), (base_x,base_y-(50*diff))])
|
||||
|
||||
if obj_his.child_ids[i].child_ids:
|
||||
tb12 = text_box.T(loc=(base_x,base_y-(50*(self.child_dist))), text=str(obj_his.child_ids[i].code))
|
||||
tb12.add_arrow((base_x+(100*(level+1)),base_y-(50*(self.child_dist))))
|
||||
tb12.draw()
|
||||
draw_tree(obj_his.child_ids[i],base_x+(100*(level+1)),base_y-(50*(self.child_dist)),level+1)
|
||||
level=0
|
||||
self.level=0
|
||||
self.child_dist=0
|
||||
|
||||
def draw_tree(obj_history,base_x,base_y,level=0,i=0):
|
||||
self.line_y=base_y
|
||||
if obj_history.child_ids:
|
||||
if self.child_dist:
|
||||
diff=i*self.child_dist
|
||||
self.child_dist=0
|
||||
else:
|
||||
tb12 = text_box.T(loc=(base_x,base_y-(50*(i+self.child_dist))), text=str(obj_his.child_ids[i].code))
|
||||
tb12.draw()
|
||||
self.child_dist=len(obj_his.child_ids[i].child_ids)
|
||||
#
|
||||
draw_tree(obj_history,base_x,base_y,0)
|
||||
diff=i
|
||||
if self.level>0 and (base_y-(50*diff)) >= self.level:
|
||||
base_y=self.level-(50*i)
|
||||
else:
|
||||
base_y=base_y-(50*diff)
|
||||
tb = text_box.T(loc=(base_x,base_y),line_style=line_style.darkblue,text="/hC"+str(obj_history.code)+":\n"+str(obj_history.amount))
|
||||
|
||||
tb.add_arrow((base_x+100,base_y))
|
||||
tb.draw()
|
||||
|
||||
if level!=0:
|
||||
a = arrow.T(head_style = 1)
|
||||
a.draw([(base_x-30,base_y), (base_x,base_y)])
|
||||
level+=1
|
||||
|
||||
if i>0:
|
||||
can.line(line_style.black,base_x-30,base_y,base_x-30,self.line_y)
|
||||
|
||||
i=0
|
||||
for child in obj_history.child_ids:
|
||||
draw_tree(child,base_x+(100),base_y,level,i)
|
||||
i+=1
|
||||
|
||||
child_dist=len(obj_history.child_ids)
|
||||
self.child_dist=max(self.child_dist,child_dist)
|
||||
|
||||
else:
|
||||
|
||||
if self.level>0 and (base_y-(50*i)) >= self.level:
|
||||
base_y=self.level-(50)
|
||||
else:
|
||||
base_y=base_y-(50*(i))
|
||||
|
||||
tb12 = text_box.T(loc=(base_x,base_y), text="/hC"+str(obj_history.code)+":\n"+str(obj_history.amount))
|
||||
tb12.draw()
|
||||
|
||||
if i>0:
|
||||
can.line(line_style.black,base_x-30,base_y,base_x-30,self.line_y)
|
||||
a = arrow.T(head_style = 1)
|
||||
a.draw([(base_x-30,base_y), (base_x,base_y)])
|
||||
self.level=base_y
|
||||
self.line_y=900
|
||||
draw_tree(obj_history,0,900,0)
|
||||
can.close()
|
||||
|
||||
os.system('cp '+'tree_image'+str(self.treecount)+'.png ' +path+str(self.treecount)+'.png')
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -21,5 +21,6 @@
|
|||
##############################################################################
|
||||
|
||||
import wizard_print_indicators
|
||||
import wizard_print_indicators_with_pdf
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
import time
|
||||
import datetime
|
||||
import sys
|
||||
from mx.DateTime import *
|
||||
import tools
|
||||
from report.render import render
|
||||
from report.interface import report_int
|
||||
import os
|
||||
import base64
|
||||
import StringIO
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Print Indicators with PDF">
|
||||
<label string="Select the PDF file on which Indicators will be printed."/>
|
||||
<newline/>
|
||||
<field name="file" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'file': {'string':'Select a PDF File', 'type':'binary','required':True,'filters':['*.pdf']},
|
||||
}
|
||||
|
||||
|
||||
class external_pdf(render):
|
||||
def __init__(self, pdf):
|
||||
render.__init__(self)
|
||||
self.pdf = pdf
|
||||
self.output_type='pdf'
|
||||
def _render(self):
|
||||
return self.pdf
|
||||
|
||||
|
||||
class report_custom(report_int):
|
||||
def create(self, cr, uid, ids, data, context={}):
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
obj_indicator = pool.get('account.report.report')
|
||||
code_ids = obj_indicator.browse(cr,uid,data['id'])
|
||||
|
||||
self.list={}
|
||||
|
||||
def find_child(obj):
|
||||
self.list[obj.code]=str(obj.amount)
|
||||
if obj.child_ids:
|
||||
for child in obj.child_ids:
|
||||
find_child(child)
|
||||
return True
|
||||
|
||||
find_child(code_ids)
|
||||
|
||||
file_contents=base64.decodestring(data['form']['file'])
|
||||
fp = StringIO.StringIO(file_contents)
|
||||
|
||||
infile = open(tools.config['addons_path']+"/test.pdf", 'wb')
|
||||
infile.write(fp.read())
|
||||
infile.close()
|
||||
|
||||
obj_user=pool.get('res.users').browse(cr,uid,uid)
|
||||
self.list['printing_user']=obj_user.name
|
||||
self.list['company_name']=obj_user.company_id.name
|
||||
self.list['company_vat']=obj_user.company_id.partner_id.vat
|
||||
self.list['printing_time']=time.strftime('%H:%M:%S')
|
||||
self.list['printing_date']=time.strftime('%D')
|
||||
|
||||
tools.pdf_utils.fill_pdf(tools.config['addons_path']+"/test.pdf",'/tmp/output.pdf',self.list)
|
||||
self.obj = external_pdf(file('/tmp/output.pdf').read())
|
||||
self.obj.render()
|
||||
return (self.obj.pdf, 'pdf')
|
||||
|
||||
report_custom('report.print.indicator.pdf')
|
||||
|
||||
class wizard_print_indicators_with_pdf(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('print','Print')]}
|
||||
},
|
||||
'print': {
|
||||
'actions':[],
|
||||
'result' :{'type':'print','report':'print.indicator.pdf', 'state':'end'}
|
||||
}
|
||||
}
|
||||
wizard_print_indicators_with_pdf('print.indicators.pdf')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * account_reporting
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:32+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 14:29+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:27+0000\n"
|
||||
"PO-Revision-Date: 2008-10-09 20:00+0000\n"
|
||||
"Last-Translator: Fabien Pinckaers <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-10-28 11:52:53+0000\n"
|
||||
"PO-Revision-Date: 2008-10-28 11:52:53+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -22,12 +22,13 @@
|
|||
{
|
||||
"name" : "Auction module",
|
||||
"version" : "1.0",
|
||||
"category" : "Generic Modules/Auction",
|
||||
"depends" : ["base","account","l10n_be","hr_attendance"],
|
||||
"update_xml" : [
|
||||
# FIXME: review security rules...
|
||||
"security/ir.model.access.csv",
|
||||
"auction_view.xml",
|
||||
"auction_report.xml",
|
||||
"auction_view.xml",
|
||||
"auction_report.xml",
|
||||
"auction_wizard.xml",
|
||||
],
|
||||
"demo_xml" : [
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:25+0000\n"
|
||||
"PO-Revision-Date: 2008-10-14 15:04+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -24,16 +24,16 @@
|
|||
"version" : "1.0",
|
||||
"author" : "Tiny",
|
||||
"website" : "http://tinyerp.com",
|
||||
"category" : "Generic Modules/Base Contact",
|
||||
"category" : "Generic Modules/Base",
|
||||
"description": """
|
||||
This module allows you to manage entirely your contacts.
|
||||
This module allows you to manage entirely your contacts.
|
||||
|
||||
It lets you define
|
||||
It lets you define
|
||||
*contacts unrelated to a partner,
|
||||
*contacts working at several adresses (possibly for different partners),
|
||||
*contacts working at several adresses (possibly for different partners),
|
||||
*contacts with possibly different functions for each of its job's addresses
|
||||
|
||||
It also add new menuitems located in
|
||||
It also add new menuitems located in
|
||||
Partners \ Contacts
|
||||
Partners \ Functions
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * base_contact
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:33+0000\n"
|
||||
"PO-Revision-Date: 2008-10-08 14:13+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * base_iban
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-10 15:05:34+0000\n"
|
||||
"PO-Revision-Date: 2008-09-10 15:05:34+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * base_module_publish
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"PO-Revision-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -187,9 +187,6 @@ class base_module_record(osv.osv):
|
|||
record.appendChild(field)
|
||||
return record_list, noupdate
|
||||
|
||||
|
||||
|
||||
|
||||
def get_copy_data(self, cr, uid,model,id,result):
|
||||
res = []
|
||||
obj=self.pool.get(model)
|
||||
|
@ -238,7 +235,7 @@ class base_module_record(osv.osv):
|
|||
def _generate_object_xml(self, cr, uid, rec, recv, doc, result=None):
|
||||
record_list = []
|
||||
noupdate = False
|
||||
if rec[4]=='write' :
|
||||
if rec[4]=='write':
|
||||
for id in rec[5]:
|
||||
id,update = self._get_id(cr, uid, rec[3], id)
|
||||
noupdate = noupdate or update
|
||||
|
@ -282,6 +279,30 @@ class base_module_record(osv.osv):
|
|||
if not rec_id:
|
||||
continue
|
||||
data = doc.createElement("data")
|
||||
self.ids = {}
|
||||
doc = minidom.Document()
|
||||
terp = doc.createElement("openerp")
|
||||
doc.appendChild(terp)
|
||||
for rec in self.recording_data:
|
||||
if rec[0]=='workflow':
|
||||
rec_id,noupdate = self._get_id(cr, uid, rec[1][3], rec[1][5])
|
||||
if not rec_id:
|
||||
continue
|
||||
data = doc.createElement("data")
|
||||
terp.appendChild(data)
|
||||
wkf = doc.createElement('workflow')
|
||||
data.appendChild(wkf)
|
||||
wkf.setAttribute("model", rec[1][3])
|
||||
wkf.setAttribute("action", rec[1][4])
|
||||
if noupdate:
|
||||
data.setAttribute("noupdate", "1")
|
||||
wkf.setAttribute("ref", rec_id)
|
||||
if rec[0]=='query':
|
||||
res_list,noupdate = self._generate_object_xml(cr, uid, rec[1], rec[2], doc, rec[3])
|
||||
data = doc.createElement("data")
|
||||
if noupdate:
|
||||
data.setAttribute("noupdate", "1")
|
||||
if res_list:
|
||||
terp.appendChild(data)
|
||||
wkf = doc.createElement('workflow')
|
||||
data.appendChild(wkf)
|
||||
|
@ -304,6 +325,5 @@ class base_module_record(osv.osv):
|
|||
res = doc.toprettyxml(indent="\t")
|
||||
return doc.toprettyxml(indent="\t").encode('utf8')
|
||||
base_module_record()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:34+0000\n"
|
||||
"PO-Revision-Date: 2008-10-14 13:08+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:30+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 17:15+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:24+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 17:20+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * base_vat
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:34+0000\n"
|
||||
"PO-Revision-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * board_account
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"PO-Revision-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * board_association
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"PO-Revision-Date: 2008-09-10 15:05:35+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -23,7 +23,7 @@
|
|||
"name":"Board for Auction",
|
||||
"version":"1.0",
|
||||
"author":"Tiny",
|
||||
"category":"Board",
|
||||
"category":"Board/Auction",
|
||||
"depends":[
|
||||
"board",
|
||||
"auction",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * board_auction
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:23+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 08:03+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -23,7 +23,7 @@
|
|||
"name":"Dashboard for CRM Configuration",
|
||||
"version":"1.0",
|
||||
"author":"Tiny",
|
||||
"category":"Board",
|
||||
"category":"Board/CRM",
|
||||
"depends":["board","crm_configuration"],
|
||||
"demo_xml":["board_crm_demo.xml"],
|
||||
"update_xml":["board_crm_statistical_view.xml",
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-10-28 11:31:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-28 11:31:29+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -23,7 +23,7 @@
|
|||
"name":"Board for manufacturing",
|
||||
"version":"1.0",
|
||||
"author":"Tiny",
|
||||
"category":"Board",
|
||||
"category":"Board/Manufacturing",
|
||||
"depends":[
|
||||
"board",
|
||||
"mrp",
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * board_project
|
||||
#
|
||||
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:28+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 08:15+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:28+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 08:53+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -95,13 +95,13 @@ class email_parser(object):
|
|||
def msg_new(self, msg):
|
||||
message = self.msg_body_get(msg)
|
||||
data = {
|
||||
'name': self._decode_header(msg['Subject'][:64]),
|
||||
'name': self._decode_header(msg['Subject']),
|
||||
'section_id': self.section_id,
|
||||
'email_from': self._decode_header(msg['From'])[:128],
|
||||
'email_cc': self._decode_header(msg['Cc'] or '')[:252],
|
||||
'email_from': self._decode_header(msg['From']),
|
||||
'email_cc': self._decode_header(msg['Cc'] or ''),
|
||||
'canal_id': self.canal_id,
|
||||
'user_id': False,
|
||||
'history_line': [(0, 0, {'description': message['body'], 'email': msg['From'][:84] })],
|
||||
'history_line': [(0, 0, {'description': message['body'], 'email': msg['From'] })],
|
||||
}
|
||||
try:
|
||||
data.update(self.partner_get(self._decode_header(msg['From'])))
|
||||
|
@ -114,9 +114,9 @@ class email_parser(object):
|
|||
|
||||
for attach in attachments or []:
|
||||
data_attach = {
|
||||
'name': str(attach)[:64],
|
||||
'name': str(attach),
|
||||
'datas':binascii.b2a_base64(str(attachments[attach])),
|
||||
'datas_fname': str(attach)[:64],
|
||||
'datas_fname': str(attach),
|
||||
'description': 'Mail attachment',
|
||||
'res_model': 'crm.case',
|
||||
'res_id': id
|
||||
|
@ -181,7 +181,7 @@ class email_parser(object):
|
|||
body['body'] = body_data
|
||||
|
||||
data = {
|
||||
'history_line': [(0, 0, {'description': body['body'], 'email': msg['From'][:84]})],
|
||||
'history_line': [(0, 0, {'description': body['body'], 'email': msg['From']})],
|
||||
}
|
||||
|
||||
act = 'case_close'
|
||||
|
@ -285,7 +285,7 @@ class email_parser(object):
|
|||
if self.email_default:
|
||||
a = self._decode_header(msg['Subject'])
|
||||
del msg['Subject']
|
||||
msg['Subject'] = '[TinyERP-CaseError] ' + a
|
||||
msg['Subject'] = '[OpenERP-CaseError] ' + a
|
||||
self.msg_send(msg, self.email_default.split(','))
|
||||
return emails
|
||||
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -25,19 +25,19 @@
|
|||
"depends" : ["base", "crm"],
|
||||
"author" : "Tiny",
|
||||
"description": """
|
||||
This module allow users to perform segmentation within partners.
|
||||
This module allow users to perform segmentation within partners.
|
||||
It use the profiles criteria from the earlier segmentation module and improve it thanks to the new concept of questionnaire. You can now regroup questions into a questionnaire and directly use it on a partner.
|
||||
|
||||
It also has been merged with the earlier CRM & SRM segmentation tool because they were overlapping.
|
||||
It also has been merged with the earlier CRM & SRM segmentation tool because they were overlapping.
|
||||
|
||||
|
||||
|
||||
The menu items related are in "CRM & SRM\Configuration\Segmentations\"
|
||||
|
||||
|
||||
* Note: this module is not compatible with the module segmentation, since it's the same which has been renamed.
|
||||
""",
|
||||
"website" : "http://tinyerp.com/",
|
||||
"category" : "Generic Modules/Project & Services",
|
||||
"category" : "Generic Modules/CRM & SRM",
|
||||
"init_xml" : [],
|
||||
"demo_xml" : ["crm_profiling_demo.xml"],
|
||||
"update_xml" : [
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:30+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 10:18+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -125,7 +125,8 @@
|
|||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<separator string="Notes" position="before">
|
||||
<field name="carrier_id" context="{'order_id':active_id}"/>
|
||||
<field name="id" invisible="True"/>
|
||||
<field name="carrier_id" context="{'order_id':id}"/>
|
||||
</separator>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -136,7 +137,7 @@
|
|||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="address_id" position="after">
|
||||
<field name="address_id" position="after">
|
||||
<field name="carrier_id"/>
|
||||
<field name="weight"/>
|
||||
</field>
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -30,6 +30,7 @@ class sale_order(osv.osv):
|
|||
_description = "Sale Order"
|
||||
|
||||
_columns = {
|
||||
'id': fields.integer('ID', readonly=True,invisible=True),
|
||||
'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on packings made."),
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -96,7 +96,6 @@ class node_class(object):
|
|||
where.append( ('res_id','=',False) )
|
||||
if nodename:
|
||||
where.append( (fobj._rec_name,'=',nodename) )
|
||||
print where+[ ('parent_id','=',self.object and self.object.id or False) ]
|
||||
ids = fobj.search(self.cr, self.uid, where+[ ('parent_id','=',self.object and self.object.id or False) ], context=self.context)
|
||||
if self.object and self.root and (self.object.type=='ressource'):
|
||||
ids += fobj.search(self.cr, self.uid, where+[ ('parent_id','=',False) ], context=self.context)
|
||||
|
@ -249,26 +248,6 @@ class document_directory(osv.osv):
|
|||
user=self.pool.get('res.users').browse(cr,uid,uid)
|
||||
return "ftp://%s:%s@localhost:8021/%s/%s"%(user.login,user.password,cr.dbname,'/'.join(path))
|
||||
return False
|
||||
def _check_duplication(self, cr, uid,vals):
|
||||
if 'name' in vals:
|
||||
where=" name='%s'"% (vals['name'])
|
||||
if not 'parent_id' in vals or not vals['parent_id']:
|
||||
where+=' and parent_id is null'
|
||||
else:
|
||||
where+=' and parent_id=%d'%(vals['parent_id'])
|
||||
if not 'ressource_parent_type_id' in vals or not vals['ressource_parent_type_id']:
|
||||
where+= ' and ressource_parent_type_id is null'
|
||||
else:
|
||||
where+=" and ressource_parent_type_id='%s'"%(vals['ressource_parent_type_id'])
|
||||
# if not 'ressource_id' in vals or not vals['ressource_id']:
|
||||
# where+= ' and ressource_id is null'
|
||||
# else:
|
||||
# where+=" and ressource_id=%d"%(vals['ressource_id'])
|
||||
cr.execute("select id from document_directory where" + where)
|
||||
res = cr.fetchall()
|
||||
if len(res):
|
||||
return False
|
||||
return True
|
||||
def _check_recursion(self, cr, uid, ids):
|
||||
level = 100
|
||||
while len(ids):
|
||||
|
@ -350,7 +329,7 @@ class document_directory(osv.osv):
|
|||
# need to make constraints to checking duplicate
|
||||
#if not self._check_duplication(cr,uid,vals):
|
||||
# raise except_orm('ValidateError', 'Directory name must be unique!')
|
||||
return super(document_directory,self).write(cr,uid,ids,vals,context=context)
|
||||
return result
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
|
@ -359,6 +338,34 @@ class document_directory(osv.osv):
|
|||
default.update({'name': name+ " (copy)"})
|
||||
return super(document_directory,self).copy(cr,uid,id,default,context)
|
||||
|
||||
def _check_duplication(self, cr, uid,vals,ids=[],op='create'):
|
||||
name=vals.get('name',False)
|
||||
parent_id=vals.get('parent_id',False)
|
||||
ressource_parent_type_id=vals.get('ressource_parent_type_id',False)
|
||||
ressource_id=vals.get('ressource_id',0)
|
||||
if op=='write':
|
||||
for directory in self.browse(cr,uid,ids):
|
||||
if not name:
|
||||
name=directory.name
|
||||
if not parent_id:
|
||||
parent_id=directory.parent_id and directory.parent_id.id or False
|
||||
if not ressource_parent_type_id:
|
||||
ressource_parent_type_id=directory.ressource_parent_type_id and directory.ressource_parent_type_id.id or False
|
||||
if not ressource_id:
|
||||
ressource_id=directory.ressource_id and directory.ressource_id.id or 0
|
||||
res=self.search(cr,uid,[('id','<>',directory.id),('name','=',name),('parent_id','=',parent_id),('ressource_parent_type_id','=',ressource_parent_type_id),('ressource_id','=',ressource_id)])
|
||||
if len(res):
|
||||
return False
|
||||
if op=='create':
|
||||
res=self.search(cr,uid,[('name','=',name),('parent_id','=',parent_id),('ressource_parent_type_id','=',ressource_parent_type_id),('ressource_id','=',ressource_id)])
|
||||
if len(res):
|
||||
return False
|
||||
return True
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not self._check_duplication(cr,uid,vals,ids,op='write'):
|
||||
raise except_orm('ValidateError', 'Directory name must be unique!')
|
||||
return super(document_directory,self).write(cr,uid,ids,vals,context=context)
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if not self._check_duplication(cr,uid,vals):
|
||||
raise except_orm('ValidateError', 'Directory name must be unique!')
|
||||
|
@ -471,7 +478,7 @@ def random_name():
|
|||
def create_directory(path):
|
||||
dir_name = random_name()
|
||||
path = os.path.join(path,dir_name)
|
||||
os.mkdir(path)
|
||||
os.makedirs(path)
|
||||
return dir_name
|
||||
|
||||
class document_file(osv.osv):
|
||||
|
@ -484,7 +491,7 @@ class document_file(osv.osv):
|
|||
result[id] = d
|
||||
elif m=='fs':
|
||||
try:
|
||||
path = os.path.join(os.getcwd(),'filestore')
|
||||
path = os.path.join(os.getcwd(), 'filestore', cr.dbname)
|
||||
value = file(os.path.join(path,r), 'rb').read()
|
||||
result[id] = base64.encodestring(value)
|
||||
except:
|
||||
|
@ -500,9 +507,9 @@ class document_file(osv.osv):
|
|||
if not value:
|
||||
return True
|
||||
if (not context) or context.get('store_method','fs')=='fs':
|
||||
path = os.path.join(os.getcwd(), "filestore")
|
||||
path = os.path.join(os.getcwd(), "filestore", cr.dbname)
|
||||
if not os.path.isdir(path):
|
||||
os.mkdir(path)
|
||||
os.makedirs(path)
|
||||
flag = None
|
||||
# This can be improved
|
||||
for dirs in os.listdir(path):
|
||||
|
@ -549,16 +556,37 @@ class document_file(osv.osv):
|
|||
_sql_constraints = [
|
||||
('filename_uniq', 'unique (name,parent_id,res_id,res_model)', 'The file name must be unique !')
|
||||
]
|
||||
|
||||
def _check_duplication(self, cr, uid,vals):
|
||||
if 'name' in vals:
|
||||
res=self.search(cr,uid,[('name','=',vals['name']),('parent_id','=','parent_id' in vals and vals['parent_id'] or False),('res_id','=','res_id' in vals and vals['res_id'] or False),('res_model','=','res_model' in vals and vals['res_model']) or False])
|
||||
def _check_duplication(self, cr, uid,vals,ids=[],op='create'):
|
||||
name=vals.get('name',False)
|
||||
parent_id=vals.get('parent_id',False)
|
||||
res_model=vals.get('res_model',False)
|
||||
res_id=vals.get('res_id',0)
|
||||
if op=='write':
|
||||
for file in self.browse(cr,uid,ids):
|
||||
if not name:
|
||||
name=file.name
|
||||
if not parent_id:
|
||||
parent_id=file.parent_id and file.parent_id.id or False
|
||||
if not res_model:
|
||||
res_model=file.res_model and file.res_model or False
|
||||
if not res_id:
|
||||
res_id=file.res_id and file.res_id or 0
|
||||
res=self.search(cr,uid,[('id','<>',file.id),('name','=',name),('parent_id','=',parent_id),('res_model','=',res_model),('res_id','=',res_id)])
|
||||
if len(res):
|
||||
return False
|
||||
if op=='create':
|
||||
res=self.search(cr,uid,[('name','=',name),('parent_id','=',parent_id),('res_id','=',res_id),('res_model','=',res_model)])
|
||||
if len(res):
|
||||
return False
|
||||
return True
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default ={}
|
||||
name = self.read(cr, uid, [id])[0]['name']
|
||||
default.update({'name': name+ " (copy)"})
|
||||
return super(document_file,self).copy(cr,uid,id,default,context)
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not self._check_duplication(cr,uid,vals):
|
||||
if not self._check_duplication(cr,uid,vals,ids,'write'):
|
||||
raise except_orm('ValidateError', 'File name must be unique!')
|
||||
result = super(document_file,self).write(cr,uid,ids,vals,context=context)
|
||||
cr.commit()
|
||||
|
@ -577,6 +605,10 @@ class document_file(osv.osv):
|
|||
|
||||
def create(self, cr, uid, vals, context={}):
|
||||
vals['title']=vals['name']
|
||||
if not vals.get('res_id', False) and context.get('default_res_id',False):
|
||||
vals['res_id']=context.get('default_res_id',False)
|
||||
if not vals.get('res_model', False) and context.get('default_res_model',False):
|
||||
vals['res_model']=context.get('default_res_model',False)
|
||||
if vals.get('res_id', False) and vals.get('res_model',False):
|
||||
obj_model=self.pool.get(vals['res_model'])
|
||||
result = obj_model.read(cr, uid, [vals['res_id']], context=context)
|
||||
|
@ -585,18 +617,22 @@ class document_file(osv.osv):
|
|||
vals['title'] = (obj['name'] or '')[:60]
|
||||
if obj_model._name=='res.partner':
|
||||
vals['partner_id']=obj['id']
|
||||
elif 'address_id' in obj:
|
||||
address=self.pool.get('res.partner.address').read(cr,uid,[obj['address_id']],context=context)
|
||||
elif obj.get('address_id',False):
|
||||
if isinstance(obj['address_id'],tuple) or isinstance(obj['address_id'],list):
|
||||
address_id=obj['address_id'][0]
|
||||
else:
|
||||
address_id=obj['address_id']
|
||||
address=self.pool.get('res.partner.address').read(cr,uid,[address_id],context=context)
|
||||
if len(address):
|
||||
vals['partner_id']=address[0]['partner_id'] or False
|
||||
elif 'partner_id' in obj:
|
||||
vals['partner_id']=address[0]['partner_id'][0] or False
|
||||
elif obj.get('partner_id',False):
|
||||
if isinstance(obj['partner_id'],tuple) or isinstance(obj['partner_id'],list):
|
||||
vals['partner_id']=obj['partner_id'][0]
|
||||
else:
|
||||
vals['partner_id']=obj['partner_id']
|
||||
|
||||
datas=None
|
||||
if 'datas' not in vals:
|
||||
if vals.get('datas',False) and vals.get('link',False) :
|
||||
import urllib
|
||||
datas=base64.encodestring(urllib.urlopen(vals['link']).read())
|
||||
else:
|
||||
|
@ -620,7 +656,7 @@ class document_file(osv.osv):
|
|||
for f in self.browse(cr, uid, ids, context):
|
||||
if f.store_method=='fs':
|
||||
try:
|
||||
path = os.path.join(os.getcwd(),'filestore',f.store_fname)
|
||||
path = os.path.join(os.getcwd(), cr.dbname, 'filestore',f.store_fname)
|
||||
os.unlink(path)
|
||||
except:
|
||||
pass
|
||||
|
@ -631,7 +667,12 @@ class document_configuration_wizard(osv.osv_memory):
|
|||
_name='document.configuration.wizard'
|
||||
_rec_name = 'Auto Directory configuration'
|
||||
_columns = {
|
||||
}
|
||||
'host': fields.char('Server Address', size=64, help="Put here the server address or IP. " \
|
||||
"Keep localhost if you don't know what to write.", required=True)
|
||||
}
|
||||
_defaults = {
|
||||
'host': lambda *args: 'localhost'
|
||||
}
|
||||
def action_cancel(self,cr,uid,ids,conect=None):
|
||||
return {
|
||||
'view_type': 'form',
|
||||
|
@ -642,6 +683,7 @@ class document_configuration_wizard(osv.osv_memory):
|
|||
}
|
||||
|
||||
def action_config(self, cr, uid, ids, context=None):
|
||||
conf = self.browse(cr, uid, ids[0], context)
|
||||
obj=self.pool.get('document.directory')
|
||||
objid=self.pool.get('ir.model.data')
|
||||
|
||||
|
@ -694,7 +736,7 @@ class document_configuration_wizard(osv.osv_memory):
|
|||
'include_name': 1,
|
||||
'directory_id': id,
|
||||
})
|
||||
|
||||
|
||||
if self.pool.get('account.analytic.account'):
|
||||
id = objid._get_id(cr, uid, 'document', 'dir_project')
|
||||
id = objid.browse(cr, uid, id, context=context).res_id
|
||||
|
@ -706,6 +748,10 @@ class document_configuration_wizard(osv.osv_memory):
|
|||
'ressource_tree': 1
|
||||
})
|
||||
|
||||
aid = objid._get_id(cr, uid, 'document', 'action_document_browse')
|
||||
aid = objid.browse(cr, uid, aid, context=context).res_id
|
||||
self.pool.get('ir.actions.url').write(cr, uid, [aid], {'url': 'ftp://'+(conf.host or 'localhost')+':8021/'})
|
||||
|
||||
return {
|
||||
'view_type': 'form',
|
||||
"view_mode": 'form',
|
||||
|
|
|
@ -251,6 +251,7 @@
|
|||
<form string="Auto Configure">
|
||||
<separator string="Document Management System." colspan="4"/>
|
||||
<label string="This wizard will automatically configure the document management system according to modules installed on your system." align="0.0" colspan="4"/>
|
||||
<field name="host" colspan="4"/>
|
||||
<separator string="" colspan="4"/>
|
||||
<label string="" colspan="2"/>
|
||||
<group col="4" colspan="2">
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-10-28 10:07:49+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 17:56+0100\n"
|
||||
"Last-Translator: Christophe Chauvet <christophe.chauvet@syleam.fr>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -237,7 +237,8 @@ class event_registration(osv.osv):
|
|||
_defaults = {
|
||||
'nb_register': lambda *a: 1,
|
||||
'tobe_invoiced' : lambda *a: True,
|
||||
'name': lambda *a: 'Registration'
|
||||
'name': lambda *a: 'Registration',
|
||||
'state': lambda *b: 'draft'
|
||||
}
|
||||
|
||||
def onchange_badge_name(self, cr, uid, ids, badge_name):
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:31+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 11:02+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
@ -24,7 +24,7 @@
|
|||
"version" : "1.0",
|
||||
"author" : "Tiny",
|
||||
"website" : "http://tinyerp.com",
|
||||
"category" : "Generic Modules",
|
||||
"category" : "Generic Modules/Others",
|
||||
"description": """The module adds google map field in partner address
|
||||
so that we can directly open google map from the
|
||||
url widget.""",
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:23+0000\n"
|
||||
"PO-Revision-Date: 2008-10-11 07:06+0000\n"
|
||||
"Last-Translator: Christophe Chauvet <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -39,7 +39,7 @@ si_so_fields = {
|
|||
|
||||
si_form = '''<?xml version="1.0" ?>
|
||||
<form string="Sign in status">
|
||||
<seperator string="This is the status of your sign in request. Check it out maybe you were already signed in." colspan="4" />
|
||||
<separator string="This is the status of your sign in request. Check it out maybe you were already signed in." colspan="4" />
|
||||
<field name="success" readonly="True" />
|
||||
</form>'''
|
||||
|
||||
|
@ -49,7 +49,7 @@ si_fields = {
|
|||
|
||||
so_form = '''<?xml version="1.0" ?>
|
||||
<form string="Sign in status">
|
||||
<seperator string="This is the status of your sign out request. Check it out maybe you were already signed out." colspan="4" />
|
||||
<separator string="This is the status of your sign out request. Check it out maybe you were already signed out." colspan="4" />
|
||||
<field name="success" readonly="True" />
|
||||
</for>'''
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-10-28 09:40:44+0000\n"
|
||||
"PO-Revision-Date: 2008-10-28 09:40:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:25+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 11:14+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:25+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 11:30+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -3,11 +3,10 @@
|
|||
<data>
|
||||
|
||||
<!-- Holidays -->
|
||||
<record model="ir.ui.view" id="edit_holiday_inherit_new">
|
||||
<field name="name">hr.holidays.form.inherit</field>
|
||||
<record model="ir.ui.view" id="edit_holiday_new">
|
||||
<field name="name">hr.holidays.form</field>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" eval="False"/>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Employee holidays">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
|
@ -36,12 +35,13 @@
|
|||
|
||||
<record model="ir.ui.view" id="view_holiday">
|
||||
<field name="name">hr.holidays.tree</field>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="inherit_id" eval="False"/>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Employee holidays">
|
||||
<field name="name"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="number_of_days" string="Number of Days"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
<field name="holiday_status"/>
|
||||
|
@ -50,24 +50,10 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_holiday_2">
|
||||
<field name="name">hr.holidays.tree</field>
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="inherit_id" ref="view_holiday"/>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="employee_id"/>
|
||||
<field name="number_of_days" string="Number of Days"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- holidays status -->
|
||||
<record model="ir.ui.view" id="edit_holiday_status_form">
|
||||
<field name="name">hr.holidays.status.form</field>
|
||||
<field name="model">hr.holidays.status</field>
|
||||
<field name="inherit_id" eval="False"/>
|
||||
<field name="model">hr.holidays.status</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Define holiday status">
|
||||
|
@ -81,8 +67,7 @@
|
|||
</record>
|
||||
<record model="ir.ui.view" id="view_holiday_status_tree">
|
||||
<field name="name">hr.holidays.status.tree</field>
|
||||
<field name="model">hr.holidays.status</field>
|
||||
<field name="inherit_id" eval="False"/>
|
||||
<field name="model">hr.holidays.status</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Holiday status">
|
||||
|
@ -157,7 +142,7 @@
|
|||
<record model="ir.actions.act_window" id="open_ask_holidays">
|
||||
<field name="res_model">hr.holidays</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="edit_holiday_inherit_new" />
|
||||
<field name="view_id" ref="edit_holiday_new" />
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:30+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 11:55+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:28+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 15:49+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:22+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 12:01+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:09+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 12:02+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:25+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 12:10+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 16:48+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:24+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 12:11+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:31+0000\n"
|
||||
"PO-Revision-Date: 2008-10-14 13:30+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:45+0000\n"
|
||||
"PO-Revision-Date: 2008-10-14 13:30+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
"expression","note","parent_id","sequence","badness_limit","goodness_limit","type","code","name"
|
||||
0,,,,0,1,"indicator","BILAN","Bilan"
|
||||
"report('BIMMO','BSTOCK','BREAL','BDISPO')",,"BILAN",,0,1,"fiscal","Actif","Actif"
|
||||
"balance(][2'])",,"Actif",,0,1,"indicator","BIMMO","Valeurs immobilisées"
|
||||
"balance(['2'])",,"Actif",,0,1,"indicator","BIMMO","Valeurs immobilisées"
|
||||
"balance(['3']",,"Actif",2,0,1,"indicator","BSTOCK","Stocks"
|
||||
"balance(['4'])",,"Actif",3,0,1,"indicator","BREAL","Réalisable"
|
||||
"balance(['5'])",,"Actif",4,0,1,"fiscal","BDISPO","Disponible"
|
||||
|
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:32+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 12:39+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
@ -48,7 +48,7 @@ msgstr "Auteur"
|
|||
#. module: mrp
|
||||
#: help:mrp.bom,product_rounding:0
|
||||
msgid "Rounding applied on the product quantity. For integer only values, put 1.0"
|
||||
msgstr ""
|
||||
msgstr "Arrondi appliqué sur la quantité de produit. Pour les valeurs entières, mettre 1.0"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.workcenter,costs_cycle:0
|
||||
|
@ -58,7 +58,7 @@ msgstr "Coût par cycle"
|
|||
#. module: mrp
|
||||
#: help:res.company,manufacturing_lead:0
|
||||
msgid "Security days for each manufacturing operation."
|
||||
msgstr ""
|
||||
msgstr "Jours de sécurité pour chaque opération de production."
|
||||
|
||||
#. module: mrp
|
||||
#: wizard_view:mrp.procurement.compute.all,init:0
|
||||
|
@ -79,7 +79,7 @@ msgstr "Nomenclature"
|
|||
#. module: mrp
|
||||
#: wizard_field:product.product.procurement,init,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Unité de Mesure"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom.revision,indice:0
|
||||
|
@ -90,6 +90,7 @@ msgstr "Révision"
|
|||
#: help:mrp.bom,type:0
|
||||
msgid "Use a phantom bill of material in raw materials lines that have to be automatically computed in on eproduction order and not one per level.If you put \"Phantom/Set\" at the root level of a bill of material it is considered as a set or pack: the products are replaced by the components between the sale order to the picking without going through the production order.The normal BoM will generate one production order per BoM level."
|
||||
msgstr ""
|
||||
""
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.workcenter,costs_journal_id:0
|
||||
|
@ -116,7 +117,7 @@ msgstr "Indices Numériques"
|
|||
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5
|
||||
msgid "Exceptions Procurements"
|
||||
msgstr ""
|
||||
msgstr "Approvisionements en Exceptions"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,product_uos_qty:0
|
||||
|
@ -141,7 +142,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: help:mrp.production,location_dest_id:0
|
||||
msgid "Location where the system will stock the finnished products."
|
||||
msgstr ""
|
||||
msgstr "Emplacement où le système stockera les produits finis."
|
||||
|
||||
#. module: mrp
|
||||
#: wizard_button:mrp.procurement.compute.all,init,compute:0
|
||||
|
@ -165,6 +166,8 @@ msgstr ""
|
|||
msgid "Reference of the document that created this procurement.\n"
|
||||
"This is automatically completed by Open ERP."
|
||||
msgstr ""
|
||||
"Référence du document qui a créé cet approvisionnement.\n"
|
||||
"Est automatiquement complété par Open ERP."
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.routing.workcenter:0
|
||||
|
@ -184,7 +187,7 @@ msgstr "Produits Finis"
|
|||
#. module: mrp
|
||||
#: wizard_view:product.product.procurement,done:0
|
||||
msgid "Your procurement request has been sent !"
|
||||
msgstr ""
|
||||
msgstr "Votre demande d'approvisionement a été envoyée !"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:bom.structure:0
|
||||
|
@ -211,7 +214,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: help:mrp.property,composition:0
|
||||
msgid "Not used in computations, for information purpose only."
|
||||
msgstr ""
|
||||
msgstr "Pas utilisé dans les calculs, pour information seulement."
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.workcenter,time_start:0
|
||||
|
@ -221,7 +224,7 @@ msgstr "Délai avant production"
|
|||
#. module: mrp
|
||||
#: model:process.node,name:mrp.process_node_productionorder0
|
||||
msgid "Production order"
|
||||
msgstr ""
|
||||
msgstr "Ordre de Production"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition,name:mrp.process_transition_stockableorderproduction0
|
||||
|
@ -327,7 +330,7 @@ msgstr "Référence"
|
|||
#. module: mrp
|
||||
#: field:mrp.bom,date_stop:0
|
||||
msgid "Valid Until"
|
||||
msgstr ""
|
||||
msgstr "Valide jusqu'au"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action11
|
||||
|
@ -338,7 +341,7 @@ msgstr "Approvisionnement en Exception Temporaire"
|
|||
#. module: mrp
|
||||
#: field:mrp.bom,date_start:0
|
||||
msgid "Valid From"
|
||||
msgstr ""
|
||||
msgstr "Valide du"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.bom,type:0
|
||||
|
@ -348,7 +351,7 @@ msgstr "UdM Standard"
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Analytic Check"
|
||||
msgstr ""
|
||||
msgstr "Vérification Analytique"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_property_group
|
||||
|
@ -377,7 +380,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: model:process.node,name:mrp.process_node_minimumstockrule0
|
||||
msgid "Minimum stock rule"
|
||||
msgstr ""
|
||||
msgstr "Règle de stock minimum"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.routing:0
|
||||
|
@ -387,7 +390,7 @@ msgstr "Opérations par postes"
|
|||
#. module: mrp
|
||||
#: model:process.transition,note:mrp.process_transition_procurementservice0
|
||||
msgid "In procurement order, if product type is service"
|
||||
msgstr ""
|
||||
msgstr "Dans l'ordre d'approvisionnement, si le produit est de type Service"
|
||||
|
||||
#. module: mrp
|
||||
#: help:mrp.routing.workcenter,cycle_nbr:0
|
||||
|
@ -442,7 +445,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: field:mrp.production,sale_ref:0
|
||||
msgid "Sale Ref"
|
||||
msgstr ""
|
||||
msgstr "Réf. Vente"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.production,state:0
|
||||
|
@ -457,7 +460,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: wizard_field:product.product.procurement,init,product_id:0
|
||||
msgid "product"
|
||||
msgstr ""
|
||||
msgstr "produit"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
|
||||
|
@ -483,7 +486,7 @@ msgstr "Utilisation des postes de charge"
|
|||
#. module: mrp
|
||||
#: help:mrp.bom,product_efficiency:0
|
||||
msgid "Efficiency on the production. A factor of 0.9 means a loss of 10% in the production."
|
||||
msgstr ""
|
||||
msgstr "Efficacité de la production. Un facteur de 0.9 veut dire une perte de 10% dans la production."
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_routing
|
||||
|
@ -532,7 +535,7 @@ msgstr "Nouvel Approvisionnement"
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Production Order N° :"
|
||||
msgstr ""
|
||||
msgstr "Ordre de Production N° :"
|
||||
|
||||
#. module: mrp
|
||||
#: view:res.company:0
|
||||
|
@ -548,6 +551,8 @@ msgstr "Recréer le coli"
|
|||
#: help:mrp.workcenter,capacity_per_cycle:0
|
||||
msgid "Number of operation this workcenter can do in parallel. If this workcenter represent a team of 5 workers, the capacity per cycle is 5."
|
||||
msgstr ""
|
||||
"Nombre d'opération que ce centre de production peut effectuer en parallèle. Si "
|
||||
"ce centre de production représente une équipe de 5 ouvriers, la capacité par cycle est de 5."
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.workcenter,type:0
|
||||
|
@ -586,7 +591,7 @@ msgstr "Qté de Produit"
|
|||
#. module: mrp
|
||||
#: field:res.company,security_lead:0
|
||||
msgid "Security Days"
|
||||
msgstr ""
|
||||
msgstr "Jours de Sécurité"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:bom.structure:0
|
||||
|
@ -623,7 +628,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Printing date"
|
||||
msgstr ""
|
||||
msgstr "Date d'Impression"
|
||||
|
||||
#. module: mrp
|
||||
#: field:stock.warehouse.orderpoint,qty_multiple:0
|
||||
|
@ -658,7 +663,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: field:mrp.routing.workcenter,hour_nbr:0
|
||||
msgid "Number of Hours"
|
||||
msgstr ""
|
||||
msgstr "Nombre d'Heures"
|
||||
|
||||
#. module: mrp
|
||||
#: field:stock.warehouse.orderpoint,product_max_qty:0
|
||||
|
@ -668,7 +673,7 @@ msgstr "Quantité Max"
|
|||
#. module: mrp
|
||||
#: field:mrp.routing.workcenter,cycle_nbr:0
|
||||
msgid "Number of Cycle"
|
||||
msgstr ""
|
||||
msgstr "Nombre de Cycle"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,revision_type:0
|
||||
|
@ -897,7 +902,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "........."
|
||||
msgstr ""
|
||||
msgstr "........."
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.production:0
|
||||
|
@ -917,7 +922,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: field:mrp.bom,method:0
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
msgstr "Méthode"
|
||||
|
||||
#. module: mrp
|
||||
#: help:mrp.routing,location_id:0
|
||||
|
@ -1199,7 +1204,7 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Qty"
|
||||
msgstr ""
|
||||
msgstr "Qté"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,procure_method:0
|
||||
|
@ -1264,7 +1269,7 @@ msgstr "Annuler"
|
|||
#. module: mrp
|
||||
#: wizard_button:product.product.procurement,done,end:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Terminé"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.node,name:mrp.process_node_stockableproduct0
|
||||
|
@ -1568,7 +1573,7 @@ msgstr "Révisions"
|
|||
#. module: mrp
|
||||
#: model:ir.actions.wizard,name:mrp.product_procurement_wizard
|
||||
msgid "Create Procurement"
|
||||
msgstr ""
|
||||
msgstr "Créer un Approvisionement"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,product_uos:0
|
||||
|
@ -1598,7 +1603,7 @@ msgstr "UdM du Produit"
|
|||
#. module: mrp
|
||||
#: model:process.node,note:mrp.process_node_serviceproduct0
|
||||
msgid "If Product type is service"
|
||||
msgstr ""
|
||||
msgstr "Si Produit est de type Service"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_workcenter
|
||||
|
@ -1684,12 +1689,12 @@ msgstr "min"
|
|||
#. module: mrp
|
||||
#: model:process.node,note:mrp.process_node_minimumstockrule0
|
||||
msgid "Create minimum stock rules"
|
||||
msgstr ""
|
||||
msgstr "Créer les règles de stock minimum"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "1cm 27.7cm 20cm 27.7cm"
|
||||
msgstr ""
|
||||
msgstr "1cm 27.7cm 20cm 27.7cm"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2
|
||||
|
@ -1721,12 +1726,12 @@ msgstr ""
|
|||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Partner Ref"
|
||||
msgstr ""
|
||||
msgstr "Réf. Partenaire"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition.action,name:mrp.process_transition_action_procurementpurchaseorder0
|
||||
msgid "Purchase"
|
||||
msgstr ""
|
||||
msgstr "Achat"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition,note:mrp.process_transition_stockableorderrequest0
|
||||
|
|
|
@ -499,30 +499,9 @@ class mrp_production(osv.osv):
|
|||
(parent_id, child_id) VALUES (%d,%d)',
|
||||
(res.id, move.id))
|
||||
move_ids.append(res.id)
|
||||
if production.move_created_ids:
|
||||
#TODO There we should handle the residus move creation
|
||||
vals= {'state':'confirmed'}
|
||||
new_moves = [x.id for x in production.move_created_ids]
|
||||
self.pool.get('stock.move').write(cr, uid, new_moves, vals)
|
||||
else:
|
||||
#XXX Why is it there ? Aren't we suppose to already have a created_move ?
|
||||
source = production.product_id.product_tmpl_id.property_stock_production.id
|
||||
vals = {
|
||||
'name':'PROD:'+production.name,
|
||||
'date_planned': production.date_planned,
|
||||
'product_id': production.product_id.id,
|
||||
'product_qty': production.product_qty,
|
||||
'product_uom': production.product_uom.id,
|
||||
'product_uos_qty': production.product_uos and production.product_uos_qty or False,
|
||||
'product_uos': production.product_uos and production.product_uos.id or False,
|
||||
'location_id': source,
|
||||
'location_dest_id': production.location_dest_id.id,
|
||||
'move_dest_id': production.move_prod_id.id,
|
||||
'state': 'confirmed'
|
||||
}
|
||||
new_moves = [self.pool.get('stock.move').create(cr, uid, vals)]
|
||||
self.write(cr, uid, [production.id],
|
||||
{'move_created_ids': [(6, 'WTF', new_moves)]})
|
||||
vals= {'state':'confirmed'}
|
||||
new_moves = [x.id for x in production.move_created_ids]
|
||||
self.pool.get('stock.move').write(cr, uid, new_moves, vals)
|
||||
if not production.date_finnished:
|
||||
self.write(cr, uid, [production.id],
|
||||
{'date_finnished': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
|
@ -590,6 +569,7 @@ class mrp_production(osv.osv):
|
|||
|
||||
def action_confirm(self, cr, uid, ids):
|
||||
picking_id=False
|
||||
proc_ids = []
|
||||
for production in self.browse(cr, uid, ids):
|
||||
if not production.product_lines:
|
||||
self.action_compute(cr, uid, [production.id])
|
||||
|
@ -611,7 +591,6 @@ class mrp_production(osv.osv):
|
|||
'address_id': address_id,
|
||||
'auto_picking': self._get_auto_picking(cr, uid, production),
|
||||
})
|
||||
toconfirm = True
|
||||
|
||||
source = production.product_id.product_tmpl_id.property_stock_production.id
|
||||
data = {
|
||||
|
@ -678,9 +657,9 @@ class mrp_production(osv.osv):
|
|||
})
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'mrp.procurement', proc_id, 'button_confirm', cr)
|
||||
if toconfirm:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
|
||||
proc_ids.append(proc_id)
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
|
||||
self.write(cr, uid, [production.id], {'picking_id':picking_id, 'move_lines': [(6,0,moves)], 'state':'confirmed'})
|
||||
return picking_id
|
||||
|
||||
|
@ -991,7 +970,7 @@ class mrp_procurement(osv.osv):
|
|||
'location_src_id': procurement.location_id.id,
|
||||
'location_dest_id': procurement.location_id.id,
|
||||
'bom_id': procurement.bom_id and procurement.bom_id.id or False,
|
||||
'date_planned': newdate,
|
||||
'date_planned': newdate.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'move_prod_id': res_id,
|
||||
})
|
||||
self.write(cr, uid, [procurement.id], {'state':'running'})
|
||||
|
|
|
@ -423,15 +423,15 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Production orders">
|
||||
<group colspan="4" col="6">
|
||||
<group colspan="4" col="7">
|
||||
<field name="name" select="1"/>
|
||||
<field name="date_planned" select="1"/>
|
||||
<field name="priority" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field name="product_id" on_change="product_id_change(product_id)" select="1"/>
|
||||
<field name="product_qty"/>
|
||||
<button type="action" name="%(wizard_change_production_qty)d" string="Change Qty"/>
|
||||
<field name="product_uom"/>
|
||||
<button type="action" name="%(mrp.wizard_change_production_qty)d" string="Change Qty" states="ready,in_production"/>
|
||||
<newline/>
|
||||
<label string="" colspan="2"/>
|
||||
<field name="product_uos_qty" groups="product.group_uos"/>
|
||||
|
@ -797,8 +797,28 @@
|
|||
<act_window domain="[('warehouse_id', '=', active_id)]" id="act_stock_warehouse_2_stock_warehouse_orderpoint" name="Minimum Stock Rules" res_model="stock.warehouse.orderpoint" src_model="stock.warehouse"/>
|
||||
|
||||
<!-- add product_uom to context to be the default value when adding new orderpoints -->
|
||||
<act_window context="{'product_uom': locals().has_key('uom_id') and uom_id}" domain="[('product_id', '=', active_id)]" id="act_product_product_2_stock_warehouse_orderpoint" name="Minimum Stock Rules" res_model="stock.warehouse.orderpoint" src_model="product.product"/>
|
||||
<act_window
|
||||
context="{'product_uom': locals().has_key('uom_id') and uom_id}"
|
||||
domain="[('product_id', '=', active_id)]"
|
||||
id="act_product_product_2_stock_warehouse_orderpoint"
|
||||
name="Minimum Stock Rules"
|
||||
res_model="stock.warehouse.orderpoint"
|
||||
src_model="product.product"/>
|
||||
|
||||
<act_window domain="[('product_id', '=', active_id),('bom_id','=',False)]" id="act_product_product_2_mrp_bom" name="Bill of Material" res_model="mrp.bom" src_model="product.product"/>
|
||||
<act_window
|
||||
id="action_product_bom_structure"
|
||||
name="Product BoM Structure"
|
||||
domain="[('product_id', '=', active_id),('bom_id','=',False)]"
|
||||
view_type="tree"
|
||||
view_id="mrp_bom_tree_view"
|
||||
res_model="mrp.bom"
|
||||
src_model="product.product"/>
|
||||
|
||||
<act_window
|
||||
domain="[('product_id', '=', active_id),('bom_id','=',False)]"
|
||||
id="act_product_product_2_mrp_bom"
|
||||
name="Bill of Materials"
|
||||
res_model="mrp.bom"
|
||||
src_model="product.product"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -69,7 +69,8 @@
|
|||
<record id="prod_trans_picking_ready" model="workflow.transition">
|
||||
<field name="act_from" ref="prod_act_picking"/>
|
||||
<field name="act_to" ref="prod_act_ready"/>
|
||||
<field name="signal">subflow.done</field>
|
||||
<field name="signal"></field>
|
||||
<field name="condition">picking_id and picking_id.state=='done'</field>
|
||||
</record>
|
||||
<record id="prod_trans_ready_in_production" model="workflow.transition">
|
||||
<field name="act_from" ref="prod_act_ready"/>
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 16:29+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 13:44+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:32+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 14:37+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
<field name="uom_id" ref="product_uom_unit"/>
|
||||
<field name="uom_po_id" ref="product_uom_unit"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="sale_delay">3.0</field>
|
||||
<field name="sale_delay">18.0</field>
|
||||
<field name="name">Basic+ PC (assembly on order)</field>
|
||||
<field name="categ_id" ref="product_category_pc"/>
|
||||
</record>
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"PO-Revision-Date: 2008-11-02 20:23:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"POT-Creation-Date: 2008-09-05 13:21+0000\n"
|
||||
"PO-Revision-Date: 2008-10-13 14:51+0000\n"
|
||||
"Last-Translator: Olivier Laurent <Unknown>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language-Team: OpenERP Language Team <support@openerp.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue