@@ -306,4 +297,4 @@
-
+
\ No newline at end of file
diff --git a/addons/account/project/report/inverted_analytic_balance.py b/addons/account/project/report/inverted_analytic_balance.py
index f313a9c55db..6ba8e724d35 100644
--- a/addons/account/project/report/inverted_analytic_balance.py
+++ b/addons/account/project/report/inverted_analytic_balance.py
@@ -120,7 +120,7 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
WHERE account_id IN %s AND date>=%s AND date<=%s", (tuple(ids),date1, date2,))
return self.cr.fetchone()[0] or 0.0
-report_sxw.report_sxw('report.account.analytic.account.inverted.balance', 'account.analytic.account', 'addons/account/project/report/inverted_analytic_balance.rml',parser=account_inverted_analytic_balance, header=False)
+report_sxw.report_sxw('report.account.analytic.account.inverted.balance', 'account.analytic.account', 'addons/account/project/report/inverted_analytic_balance.rml',parser=account_inverted_analytic_balance, header="internal")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/report/inverted_analytic_balance.rml b/addons/account/project/report/inverted_analytic_balance.rml
index 5761fc122c6..13bf6328486 100644
--- a/addons/account/project/report/inverted_analytic_balance.rml
+++ b/addons/account/project/report/inverted_analytic_balance.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/account/project/report/quantity_cost_ledger.py b/addons/account/project/report/quantity_cost_ledger.py
index 37b09827c51..c593d05566e 100644
--- a/addons/account/project/report/quantity_cost_ledger.py
+++ b/addons/account/project/report/quantity_cost_ledger.py
@@ -120,6 +120,6 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
report_sxw.report_sxw('report.account.analytic.account.quantity_cost_ledger',
'account.analytic.account',
'addons/account/project/report/quantity_cost_ledger.rml',
- parser=account_analytic_quantity_cost_ledger, header=False)
+ parser=account_analytic_quantity_cost_ledger, header="internal")
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/project/report/quantity_cost_ledger.rml b/addons/account/project/report/quantity_cost_ledger.rml
index 5c7e9331078..f5364039a94 100644
--- a/addons/account/project/report/quantity_cost_ledger.rml
+++ b/addons/account/project/report/quantity_cost_ledger.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py
index 8e07f3ad56c..b58c712d3a2 100644
--- a/addons/account/report/account_aged_partner_balance.py
+++ b/addons/account/report/account_aged_partner_balance.py
@@ -28,195 +28,195 @@ from common_report_header import common_report_header
class aged_trial_report(rml_parse.rml_parse, common_report_header):
- def __init__(self, cr, uid, name, context):
- super(aged_trial_report, self).__init__(cr, uid, name, context=context)
- self.query_line = ''
- self.total_account = []
- self.localcontext.update({
- 'time': time,
- 'get_lines': self._get_lines,
- 'get_total': self._get_total,
- 'get_direction': self._get_direction,
- 'get_for_period': self._get_for_period,
- 'get_company': self._get_company,
- 'get_currency': self._get_currency,
- 'get_partners':self._get_partners,
- 'get_account': self._get_account,
- 'get_fiscalyear': self._get_fiscalyear,
- })
+ def __init__(self, cr, uid, name, context):
+ super(aged_trial_report, self).__init__(cr, uid, name, context=context)
+ self.query_line = ''
+ self.total_account = []
+ self.localcontext.update({
+ 'time': time,
+ 'get_lines': self._get_lines,
+ 'get_total': self._get_total,
+ 'get_direction': self._get_direction,
+ 'get_for_period': self._get_for_period,
+ 'get_company': self._get_company,
+ 'get_currency': self._get_currency,
+ 'get_partners':self._get_partners,
+ 'get_account': self._get_account,
+ 'get_fiscalyear': self._get_fiscalyear,
+ })
- def set_context(self, objects, data, ids, report_type=None):
- self.query = data['form'].get('query_line', '')
- self.direction_selection = data['form'].get('direction_selection', 'past')
- self.date_from = data['form'].get('date_from', time.strftime('%Y-%m-%d'))
- if (data['form']['result_selection'] == 'customer' ):
- self.ACCOUNT_TYPE = ['receivable']
- elif (data['form']['result_selection'] == 'supplier'):
- self.ACCOUNT_TYPE = ['payable']
- else:
- self.ACCOUNT_TYPE = ['payable','receivable']
- return super(aged_trial_report, self).set_context(objects, data, ids, report_type=report_type)
+ def set_context(self, objects, data, ids, report_type=None):
+ self.query = data['form'].get('query_line', '')
+ self.direction_selection = data['form'].get('direction_selection', 'past')
+ self.date_from = data['form'].get('date_from', time.strftime('%Y-%m-%d'))
+ if (data['form']['result_selection'] == 'customer' ):
+ self.ACCOUNT_TYPE = ['receivable']
+ elif (data['form']['result_selection'] == 'supplier'):
+ self.ACCOUNT_TYPE = ['payable']
+ else:
+ self.ACCOUNT_TYPE = ['payable','receivable']
+ return super(aged_trial_report, self).set_context(objects, data, ids, report_type=report_type)
- def _get_lines(self, form):
- res = []
- account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
- self.cr.execute('SELECT DISTINCT res_partner.id AS id,\
- res_partner.name AS name \
- FROM res_partner,account_move_line AS l, account_account\
- WHERE (l.account_id=account_account.id)\
- AND ((reconcile_id IS NULL)\
- OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
- AND (l.partner_id=res_partner.id)\
- AND ' + self.query + ' \
- ORDER BY res_partner.name' , (self.date_from,))
- partners = self.cr.dictfetchall()
- ## mise a 0 du total
- for i in range(7):
- self.total_account.append(0)
- #
- # Build a string like (1,2,3) for easy use in SQL query
- partner_ids = [x['id'] for x in partners]
+ def _get_lines(self, form):
+ res = []
+ account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
+ self.cr.execute('SELECT DISTINCT res_partner.id AS id,\
+ res_partner.name AS name \
+ FROM res_partner,account_move_line AS l, account_account\
+ WHERE (l.account_id=account_account.id)\
+ AND ((reconcile_id IS NULL)\
+ OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
+ AND (l.partner_id=res_partner.id)\
+ AND ' + self.query + ' \
+ ORDER BY res_partner.name' , (self.date_from,))
+ partners = self.cr.dictfetchall()
+ ## mise a 0 du total
+ for i in range(7):
+ self.total_account.append(0)
+ #
+ # Build a string like (1,2,3) for easy use in SQL query
+ partner_ids = [x['id'] for x in partners]
- # This dictionary will store the debit-credit for all partners, using partner_id as key.
- totals = {}
- self.cr.execute('SELECT partner_id, SUM(debit-credit) \
- FROM account_move_line AS l, account_account\
- WHERE (l.account_id = account_account.id)\
- AND (account_account.type IN %s)\
- AND (partner_id IN %s)\
- AND ((reconcile_id IS NULL)\
- OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
- AND ' + self.query + '\
- AND account_account.active\
- GROUP BY partner_id ' , (tuple(self.ACCOUNT_TYPE), tuple(partner_ids), self.date_from,))
- t = self.cr.fetchall()
- for i in t:
- totals[i[0]] = i[1]
+ # This dictionary will store the debit-credit for all partners, using partner_id as key.
+ totals = {}
+ self.cr.execute('SELECT partner_id, SUM(debit-credit) \
+ FROM account_move_line AS l, account_account\
+ WHERE (l.account_id = account_account.id)\
+ AND (account_account.type IN %s)\
+ AND (partner_id IN %s)\
+ AND ((reconcile_id IS NULL)\
+ OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
+ AND ' + self.query + '\
+ AND account_account.active\
+ GROUP BY partner_id ' , (tuple(self.ACCOUNT_TYPE), tuple(partner_ids), self.date_from,))
+ t = self.cr.fetchall()
+ for i in t:
+ totals[i[0]] = i[1]
- # This dictionary will store the future or past of all partners
- future_past = {}
- if self.direction_selection == 'future':
- self.cr.execute('SELECT partner_id, SUM(debit-credit) \
- FROM account_move_line AS l, account_account\
- WHERE (l.account_id=account_account.id)\
- AND (account_account.type IN %s)\
- AND (COALESCE(date_maturity, date) < %s)\
- AND (partner_id IN %s)\
- AND ((reconcile_id IS NULL)\
- OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
- AND '+ self.query + '\
- AND account_account.active\
- GROUP BY partner_id', (tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids),self.date_from,))
- t = self.cr.fetchall()
- for i in t:
- future_past[i[0]] = i[1]
- elif self.direction_selection == 'past': # Using elif so people could extend without this breaking
- self.cr.execute('SELECT partner_id, SUM(debit-credit) \
- FROM account_move_line AS l, account_account\
- WHERE (l.account_id=account_account.id)\
- AND (account_account.type IN %s)\
- AND (COALESCE(date_maturity,date) > %s)\
- AND (partner_id IN %s)\
- AND ((reconcile_id IS NULL)\
- OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
- AND '+ self.query + '\
- AND account_account.active\
- GROUP BY partner_id' , (tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids), self.date_from,))
- t = self.cr.fetchall()
- for i in t:
- future_past[i[0]] = i[1]
+ # This dictionary will store the future or past of all partners
+ future_past = {}
+ if self.direction_selection == 'future':
+ self.cr.execute('SELECT partner_id, SUM(debit-credit) \
+ FROM account_move_line AS l, account_account\
+ WHERE (l.account_id=account_account.id)\
+ AND (account_account.type IN %s)\
+ AND (COALESCE(date_maturity, date) < %s)\
+ AND (partner_id IN %s)\
+ AND ((reconcile_id IS NULL)\
+ OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
+ AND '+ self.query + '\
+ AND account_account.active\
+ GROUP BY partner_id', (tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids),self.date_from,))
+ t = self.cr.fetchall()
+ for i in t:
+ future_past[i[0]] = i[1]
+ elif self.direction_selection == 'past': # Using elif so people could extend without this breaking
+ self.cr.execute('SELECT partner_id, SUM(debit-credit) \
+ FROM account_move_line AS l, account_account\
+ WHERE (l.account_id=account_account.id)\
+ AND (account_account.type IN %s)\
+ AND (COALESCE(date_maturity,date) > %s)\
+ AND (partner_id IN %s)\
+ AND ((reconcile_id IS NULL)\
+ OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
+ AND '+ self.query + '\
+ AND account_account.active\
+ GROUP BY partner_id' , (tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids), self.date_from,))
+ t = self.cr.fetchall()
+ for i in t:
+ future_past[i[0]] = i[1]
- # Use one query per period and store results in history (a list variable)
- # Each history will contain : history[1] = {'': }
- history = []
- for i in range(5):
- self.cr.execute('SELECT partner_id, SUM(debit-credit)\
- FROM account_move_line AS l, account_account\
- WHERE (l.account_id = account_account.id)\
- AND (account_account.type IN %s)\
- AND (COALESCE(date_maturity,date) BETWEEN %s AND %s)\
- AND (partner_id IN %s)\
- AND ((reconcile_id IS NULL)\
- OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
- AND '+ self.query + '\
- AND account_account.active\
- GROUP BY partner_id' , (tuple(self.ACCOUNT_TYPE), form[str(i)]['start'], form[str(i)]['stop'], tuple(partner_ids) ,self.date_from,))
- t = self.cr.fetchall()
- d = {}
- for i in t:
- d[i[0]] = i[1]
- history.append(d)
+ # Use one query per period and store results in history (a list variable)
+ # Each history will contain : history[1] = {'': }
+ history = []
+ for i in range(5):
+ self.cr.execute('SELECT partner_id, SUM(debit-credit)\
+ FROM account_move_line AS l, account_account\
+ WHERE (l.account_id = account_account.id)\
+ AND (account_account.type IN %s)\
+ AND (COALESCE(date_maturity,date) BETWEEN %s AND %s)\
+ AND (partner_id IN %s)\
+ AND ((reconcile_id IS NULL)\
+ OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
+ AND '+ self.query + '\
+ AND account_account.active\
+ GROUP BY partner_id' , (tuple(self.ACCOUNT_TYPE), form[str(i)]['start'], form[str(i)]['stop'], tuple(partner_ids) ,self.date_from,))
+ t = self.cr.fetchall()
+ d = {}
+ for i in t:
+ d[i[0]] = i[1]
+ history.append(d)
- for partner in partners:
- values = {}
- ## If choise selection is in the future
- if self.direction_selection == 'future':
- # Query here is replaced by one query which gets the all the partners their 'before' value
- before = False
- if future_past.has_key(partner['id']):
- before = [ future_past[partner['id']] ]
- self.total_account[6] = self.total_account[6] + (before and before[0] or 0.0)
- values['direction'] = before and before[0] or 0.0
- elif self.direction_selection == 'past': # Changed this so people could in the future create new direction_selections
- # Query here is replaced by one query which gets the all the partners their 'after' value
- after = False
- if future_past.has_key(partner['id']): # Making sure this partner actually was found by the query
- after = [ future_past[partner['id']] ]
+ for partner in partners:
+ values = {}
+ ## If choise selection is in the future
+ if self.direction_selection == 'future':
+ # Query here is replaced by one query which gets the all the partners their 'before' value
+ before = False
+ if future_past.has_key(partner['id']):
+ before = [ future_past[partner['id']] ]
+ self.total_account[6] = self.total_account[6] + (before and before[0] or 0.0)
+ values['direction'] = before and before[0] or 0.0
+ elif self.direction_selection == 'past': # Changed this so people could in the future create new direction_selections
+ # Query here is replaced by one query which gets the all the partners their 'after' value
+ after = False
+ if future_past.has_key(partner['id']): # Making sure this partner actually was found by the query
+ after = [ future_past[partner['id']] ]
- self.total_account[6] = self.total_account[6] + (after and after[0] or 0.0)
- values['direction'] = after and after[0] or ""
+ self.total_account[6] = self.total_account[6] + (after and after[0] or 0.0)
+ values['direction'] = after and after[0] or ""
- for i in range(5):
- during = False
- if history[i].has_key(partner['id']):
- during = [ history[i][partner['id']] ]
- # Ajout du compteur
- self.total_account[(i)] = self.total_account[(i)] + (during and during[0] or 0)
- values[str(i)] = during and during[0] or ""
+ for i in range(5):
+ during = False
+ if history[i].has_key(partner['id']):
+ during = [ history[i][partner['id']] ]
+ # Ajout du compteur
+ self.total_account[(i)] = self.total_account[(i)] + (during and during[0] or 0)
+ values[str(i)] = during and during[0] or ""
- total = False
- if totals.has_key( partner['id'] ):
- total = [ totals[partner['id']] ]
- values['total'] = total and total[0] or 0.0
- ## Add for total
- self.total_account[(i+1)] = self.total_account[(i+1)] + (total and total[0] or 0.0)
- values['name'] = partner['name']
+ total = False
+ if totals.has_key( partner['id'] ):
+ total = [ totals[partner['id']] ]
+ values['total'] = total and total[0] or 0.0
+ ## Add for total
+ self.total_account[(i+1)] = self.total_account[(i+1)] + (total and total[0] or 0.0)
+ values['name'] = partner['name']
- if values['total']:
- res.append(values)
+ if values['total']:
+ res.append(values)
- total = 0.0
- totals = {}
- for r in res:
- total += float(r['total'] or 0.0)
- for i in range(5)+['direction']:
- totals.setdefault(str(i), 0.0)
- totals[str(i)] += float(r[str(i)] or 0.0)
- return res
+ total = 0.0
+ totals = {}
+ for r in res:
+ total += float(r['total'] or 0.0)
+ for i in range(5)+['direction']:
+ totals.setdefault(str(i), 0.0)
+ totals[str(i)] += float(r[str(i)] or 0.0)
+ return res
- def _get_total(self,pos):
- period = self.total_account[int(pos)]
- return period
+ def _get_total(self,pos):
+ period = self.total_account[int(pos)]
+ return period
- def _get_direction(self,pos):
- period = self.total_account[int(pos)]
- return period
+ def _get_direction(self,pos):
+ period = self.total_account[int(pos)]
+ return period
- def _get_for_period(self,pos):
- period = self.total_account[int(pos)]
- return period
+ def _get_for_period(self,pos):
+ period = self.total_account[int(pos)]
+ return period
- def _get_partners(self,data):
- if data['form']['result_selection'] == 'customer':
- return 'Receivable Accounts'
- elif data['form']['result_selection'] == 'supplier':
- return 'Payable Accounts'
- elif data['form']['result_selection'] == 'customer_supplier':
- return 'Receivable and Payable Accounts'
- return ''
+ def _get_partners(self,data):
+ if data['form']['result_selection'] == 'customer':
+ return 'Receivable Accounts'
+ elif data['form']['result_selection'] == 'supplier':
+ return 'Payable Accounts'
+ elif data['form']['result_selection'] == 'customer_supplier':
+ return 'Receivable and Payable Accounts'
+ return ''
report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner',
- 'addons/account/report/account_aged_partner_balance.rml',parser=aged_trial_report, header=False)
+ 'addons/account/report/account_aged_partner_balance.rml',parser=aged_trial_report, header="internal landscape")
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account/report/account_aged_partner_balance.rml b/addons/account/report/account_aged_partner_balance.rml
index bd52f9be4f5..2c62375bf64 100644
--- a/addons/account/report/account_aged_partner_balance.rml
+++ b/addons/account/report/account_aged_partner_balance.rml
@@ -1,6 +1,6 @@
-
+
@@ -23,7 +23,7 @@
-
+
@@ -33,7 +33,7 @@
-
+
@@ -68,7 +68,7 @@
-
+
@@ -107,7 +107,7 @@
-
+
@@ -147,7 +147,7 @@
[[ get_fiscalyear(data) or '' ]]
[[ data['model']=='account.account' and 'Company'or removeParentNode('para') ]]
- [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
+
[[ data['model']=='account.account' and 'Company'or removeParentNode('para') ]]
+ [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
[[ repeatIn(lines(data['form']), 'a') ]][[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ a['code'] or removeParentNode('tr') ]]
-
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ '..'*(a['level']-1) ]][[ a['name'] ]]
-
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['debit']) ]][[ a['type']<>'view' and removeParentNode('font') ]] [[formatLang(a['debit']) ]]
-
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font')]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['credit']) ]][[ a['type']<>'view' and removeParentNode('font') ]] [[ formatLang(a['credit']) ]]
-
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['balance']) ]][[ a['type']<>'view' and removeParentNode('font') ]] [[ formatLang(a['balance']) ]]
+
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ '..'*(a['level']-1) ]][[ a['name'] ]]
+
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['debit']) ]] [[ company.currency_id.symbol ]][[ a['type']<>'view' and removeParentNode('font') ]] [[formatLang(a['debit']) ]] [[ company.currency_id.symbol ]]
+
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font')]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['credit']) ]] [[ company.currency_id.symbol ]][[ a['type']<>'view' and removeParentNode('font') ]] [[ formatLang(a['credit']) ]] [[ company.currency_id.symbol ]]
+
[[ (a['level']>2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]][[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['balance']) ]] [[ company.currency_id.symbol ]][[ a['type']<>'view' and removeParentNode('font') ]] [[ formatLang(a['balance']) ]] [[ company.currency_id.symbol ]]
Filter By [[ get_filter(data)!='No Filter' and '' or removeParentNode('font') ]]
-
Display Account
+
Display Account
Printing Date
@@ -194,25 +194,25 @@
[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data)]]
-
[[get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
-
+
-
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
+
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
- [[ repeatIn(get_lines_another('liability'), 'a') ]][[ a['code'] ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
+ [[ repeatIn(get_lines_another('liability'), 'a') ]][[ a['code'] ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
[[ '. '*(a['level']-1) ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]
- [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]
+ [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
- [[ formatLang(abs(sum_dr())) or 0.0 ]]
+ [[ formatLang(abs(sum_dr())) or 0.0 ]] [[ company.currency_id.symbol ]]
@@ -283,7 +283,7 @@
[[ a['code'] ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]
- [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]
+ [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]
-
Display Account
+
Display Account
Printing Date
@@ -214,28 +214,28 @@
[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data)]]
-
[[get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
-
+
-
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
+
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
- Total Amount([[ get_currency(data) ]])
+ Total Amount([[ get_currency(data) ]])
@@ -272,7 +272,7 @@
[[ '. '*(a['level']-1) ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]
- [[ a['balance'] and formatLang(abs(a['balance'])) or '' ]]
+ [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['code1'] ]]
@@ -281,24 +281,24 @@
[[ '. '*(a['level1']-1) ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]]
- [[ a['balance1'] and formatLang(abs(a['balance1'])) or 0.0 ]]
+ [[ a['balance1'] and formatLang(abs(a['balance1'])) or 0.0 ]] [[ company.currency_id.symbol ]]
[[ data['model']=='account.journal.period' and 'Company' or removeParentNode('para') ]]
- [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
+
[[ data['model']=='account.journal.period' and 'Company' or removeParentNode('para') ]]
+ [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
Fiscal Year
-
Journal
+
Journal
Filter By [[get_filter(data)!='No Filter' and get_filter(data) ]]
Printing Date
@@ -259,37 +259,37 @@
[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data) ]]
-
[[ get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
[[ data['model']=='account.account' and 'Company' or removeParentNode('para') ]]
- [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
+
[[ data['model']=='account.account' and 'Company' or removeParentNode('para') ]]
+ [[ data['model']=='ir.ui.menu' and 'Chart of Account' or removeParentNode('para') ]]
Fiscal Year
Journals
-
Display Account
+
Display Account
Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]
Entries Sorted By
Printing Date
@@ -216,28 +213,28 @@
[[ get_fiscalyear(data) or '' ]]
[[', '.join([ lt or '' for lt in get_journal(data) ]) ]]
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
-
+
[[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] [[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data) ]]
-
[[get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
- [[ get_data(data) or removeParentNode('para')]]
+ [[ get_data(data) or removeParentNode('para')]]
Chart of Account
Fiscal Year
Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]
-
Display Account
+
Display Account
Printing Date
@@ -220,25 +212,25 @@
[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data)]]
-
[[get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
-
+
-
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
+
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
- [[ repeatIn(get_lines(),'a' ) ]] [[ a['code'] ]][[ a['level']<3 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
+ [[ repeatIn(get_lines(),'a' ) ]] [[ a['code'] ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
- [[ '. '*(a['level']-1) ]][[ a['level']<3 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]
+ [[ '. '*(a['level']-1) ]][[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]
- [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]
+ [[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
- [[ a['code1'] ]][[ a['level1']<3 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
+ [[ a['code1'] ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]
- [[ '. '*(a['level1']-1) ]][[ a['level1']<3 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]]
+ [[ '. '*(a['level1']-1) ]][[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]]
- [[ a['balance1'] and formatLang(abs(a['balance1'])) or '' ]]
+ [[ a['balance1'] and formatLang(abs(a['balance1'])) or 0.0 ]] [[ company.currency_id.symbol ]]
@@ -308,7 +300,7 @@
[[ final_result()['type'] == 'Net Profit C.F.B.L.' and final_result()['type'] or '' ]]
- [[ final_result()['balance'] and final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]
+ [[ final_result()['balance'] and final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
@@ -317,7 +309,7 @@
[[ final_result()['type'] == 'Net Loss C.F.B.L.' and final_result()['type'] or '' ]]
- [[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]
+ [[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]] [[ company.currency_id.symbol ]]
Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]
-
Display Account
+
Display Account
Printing Date
@@ -222,25 +215,25 @@
[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
Start Date
-
End Date
-
+
End Date
+
-
[[ get_start_date(data)]]
-
[[get_end_date(data) ]]
+
[[ formatLang(get_start_date(data),date=True) ]]
+
[[ formatLang(get_end_date(data),date=True) ]]
[[ get_filter(data)=='Periods' or removeParentNode('blockTable') ]]
Start Period
-
End Period
-
+
End Period
+
[[ get_start_period(data) or removeParentNode('para') ]]
[[ get_end_period(data) or removeParentNode('para') ]]
-
+
-
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
+
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]
- [[ o.sale_id and o.sale_id.partner_invoice_id and 'Invoiced to' or '' ]]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.partner_id.name or '']]
+ Invoiced to[[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.name or '']][[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.street or '']]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.zip or '']]
- [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.city or '' ]]
+ [[ (o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.street2) or removeParentNode('para')]]
+ [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.zip or '']] [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.city or '' ]]
+ [[ (o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.state_id and o.sale_id.partner_invoice_id.state_id.name) or removeParentNode('para') ]][[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.country_id and o.sale_id.partner_invoice_id.country_id.name or '']]
- [[ o.address_id and o.address_id.partner_id and o.address_id.partner_id.name or '']]
- [[ o.address_id and o.address_id.name or '']]
+ [[ o.address_id and o.address_id.partner_id and o.address_id.partner_id.name or '' ]][[ o.address_id and o.address_id.street or '']]
- [[ o.address_id and o.address_id.zip or '']]
- [[ o.address_id and o.address_id.city or '']]
+ [[ o.address_id and o.address_id.street2 or removeParentNode('para')]]
+ [[ o.address_id and o.address_id.zip or '']] [[ o.address_id and o.address_id.city or '']]
+ [[ (o.address_id and o.address_id.state_id and o.address_id.state_id.name) or removeParentNode('para') ]][[ o.address_id and o.address_id.country_id and o.address_id.country_id.name or '']]
@@ -161,7 +160,7 @@
[[ o.sale_id and o.sale_id.name ]]
[[line.product_id.code ]] [[ line.product_id and line.product_id.name or '']]
@@ -204,10 +203,7 @@
[[ (line.prodlot_id and (line.prodlot_id.name + (line.prodlot_id.ref and ('/' + line.prodlot_id.ref) or ''))) or ' ' ]]
- [[ formatLang(line.product_qty) ]]
-
-
- [[ line.product_uom and line.product_uom.name ]]
+ [[ formatLang(line.product_qty) ]] [[ line.product_uom and line.product_uom.name ]]
@@ -219,4 +215,4 @@
-
+
\ No newline at end of file
diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py
index 76897d46e58..c9fd50986f7 100644
--- a/addons/delivery/stock.py
+++ b/addons/delivery/stock.py
@@ -32,10 +32,16 @@ class stock_picking(osv.osv):
res = {}
uom_obj = self.pool.get('product.uom')
for picking in self.browse(cr, uid, ids, context):
- total_weight = 0.00
+ total_weight = total_weight_net = 0.00
+
for move in picking.move_lines:
total_weight += move.weight
- res[picking.id] = total_weight
+ total_weight_net += move.weight_net
+
+ res[picking.id] = {
+ 'weight': total_weight,
+ 'weight_net': total_weight_net,
+ }
return res
@@ -48,7 +54,12 @@ class stock_picking(osv.osv):
_columns = {
'carrier_id':fields.many2one("delivery.carrier","Carrier"),
'volume': fields.float('Volume'),
- 'weight': fields.function(_cal_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'),
+ 'weight': fields.function(_cal_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
+ store={
+ 'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 20),
+ 'stock.move': (_get_picking_line, ['product_id','product_qty','product_uom','product_uos_qty'], 20),
+ }),
+ 'weight_net': fields.function(_cal_weight, method=True, type='float', string='Net Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
store={
'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 20),
'stock.move': (_get_picking_line, ['product_id','product_qty','product_uom','product_uos_qty'], 20),
@@ -128,22 +139,34 @@ class stock_move(osv.osv):
res = {}
uom_obj = self.pool.get('product.uom')
for move in self.browse(cr, uid, ids, context):
- weight = 0.00
+ weight = weight_net = 0.00
if move.product_id.weight > 0.00:
converted_qty = move.product_qty
-
+
if move.product_uom.id <> move.product_id.uom_id.id:
converted_qty = uom_obj._compute_qty(cr, uid, move.product_uom.id, move.product_qty, move.product_id.uom_id.id)
weight = (converted_qty * move.product_id.weight)
- res[move.id] = weight
+
+ if move.product_id.weight_net > 0.00:
+ weight_net = (converted_qty * move.product_id.weight_net)
+
+ res[move.id] = {
+ 'weight': weight,
+ 'weight_net': weight_net,
+ }
return res
-
+
_columns = {
- 'weight': fields.function(_cal_move_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'),
+ 'weight': fields.function(_cal_move_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
store={
'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['product_id', 'product_qty', 'product_uom'], 20),
}),
+ 'weight_net': fields.function(_cal_move_weight, method=True, type='float', string='Net weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
+ store={
+ 'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['product_id', 'product_qty', 'product_uom'], 20),
+ }),
+
}
stock_move()
diff --git a/addons/document/document.py b/addons/document/document.py
index 46cf6d189c1..624af24c1fb 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -20,9 +20,7 @@
##############################################################################
import base64
-
from osv import osv, fields
-
import os
# from psycopg2 import Binary
@@ -48,12 +46,12 @@ class document_file(osv.osv):
result = {}
bin_size = context.get('bin_size', False)
for fbro in fbrl:
- fnode = nodes.node_file(None, None, nctx, fbro)
- if not bin_size:
- data = fnode.get_data(cr, fbro)
- result[fbro.id] = base64.encodestring(data or '')
- else:
- result[fbro.id] = fnode.get_data_len(cr, fbro)
+ fnode = nodes.node_file(None, None, nctx, fbro)
+ if not bin_size:
+ data = fnode.get_data(cr, fbro)
+ result[fbro.id] = base64.encodestring(data or '')
+ else:
+ result[fbro.id] = fnode.get_data_len(cr, fbro)
return result
@@ -144,6 +142,7 @@ class document_file(osv.osv):
return super(document_file, self).copy(cr, uid, id, default, context)
def write(self, cr, uid, ids, vals, context=None):
+ result = False
if not isinstance(ids, list):
ids = [ids]
res = self.search(cr, uid, [('id', 'in', ids)])
@@ -165,7 +164,6 @@ class document_file(osv.osv):
dbro = None
dnode = None
ids2 = []
- result = False
for fbro in self.browse(cr, uid, ids, context=context):
if ('parent_id' not in vals or fbro.parent_id.id == vals['parent_id']) \
and ('name' not in vals or fbro.name == vals['name']) :
@@ -192,7 +190,7 @@ class document_file(osv.osv):
return result
def create(self, cr, uid, vals, context=None):
- if not context:
+ if context is None:
context = {}
vals['parent_id'] = context.get('parent_id', False) or vals.get('parent_id', False)
if not vals['parent_id']:
@@ -240,7 +238,7 @@ class document_file(osv.osv):
return bro.address_id.partner_id.id
return False
- def unlink(self, cr, uid, ids, context={}):
+ def unlink(self, cr, uid, ids, context=None):
stor = self.pool.get('document.storage')
unres = []
# We have to do the unlink in 2 stages: prepare a list of actual
@@ -250,7 +248,15 @@ class document_file(osv.osv):
for f in self.browse(cr, uid, ids, context):
# TODO: update the node cache
- r = stor.prepare_unlink(cr, uid, f.parent_id.storage_id, f)
+ par = f.parent_id
+ storage_id = None
+ while par:
+ if par.storage_id:
+ storage_id = par.storage_id
+ break
+ par = par.parent_id
+ assert storage_id, "Strange, found file #%s w/o storage!" % f.id
+ r = stor.prepare_unlink(cr, uid, storage_id, f)
if r:
unres.append(r)
res = super(document_file, self).unlink(cr, uid, ids, context)
diff --git a/addons/document/document_directory.py b/addons/document/document_directory.py
index 8fdbac0a5db..3486359f183 100644
--- a/addons/document/document_directory.py
+++ b/addons/document/document_directory.py
@@ -110,7 +110,7 @@ class document_directory(osv.osv):
('no_selfparent', 'check(parent_id <> id)', 'Directory cannot be parent of itself!'),
('dir_parented', 'check(parent_id IS NOT NULL OR storage_id IS NOT NULL)', 'Directory must have a parent or a storage')
]
- def name_get(self, cr, uid, ids, context={}):
+ def name_get(self, cr, uid, ids, context=None):
res = []
if not self.search(cr,uid,[('id','in',ids)]):
ids = []
diff --git a/addons/document/i18n/mn.po b/addons/document/i18n/mn.po
index e5fa3453a33..5039983b36e 100644
--- a/addons/document/i18n/mn.po
+++ b/addons/document/i18n/mn.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:18+0000\n"
+"PO-Revision-Date: 2010-09-06 09:42+0000\n"
"Last-Translator: ub121 \n"
"Language-Team: Mongolian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/i18n/ru.po b/addons/document/i18n/ru.po
index 3ab93e2ab7a..c303825574b 100644
--- a/addons/document/i18n/ru.po
+++ b/addons/document/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:31+0000\n"
+"PO-Revision-Date: 2010-09-06 12:27+0000\n"
"Last-Translator: devcode \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/i18n/tr.po b/addons/document/i18n/tr.po
index 44fb4964dc9..044064b8570 100644
--- a/addons/document/i18n/tr.po
+++ b/addons/document/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:31+0000\n"
+"PO-Revision-Date: 2010-09-06 13:59+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/i18n/zh_CN.po b/addons/document/i18n/zh_CN.po
index f3f37d06897..f7c460f4407 100644
--- a/addons/document/i18n/zh_CN.po
+++ b/addons/document/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:28+0000\n"
+"PO-Revision-Date: 2010-09-06 14:22+0000\n"
"Last-Translator: Black Jack \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/nodes.py b/addons/document/nodes.py
index cf590dafdad..b849396498d 100644
--- a/addons/document/nodes.py
+++ b/addons/document/nodes.py
@@ -121,7 +121,7 @@ class node_context(object):
if fbro.parent_id:
parent = self.get_dir_node(cr, fbro.parent_id)
- return node_file(fbro.name,parent,self,fbro)
+ return node_file(fbro.name, parent, self, fbro)
class node_descriptor(object):
@@ -644,7 +644,7 @@ class node_dir(node_database):
if (not self.parent) and ndir_node:
if not dbro.parent_id:
raise IOError(errno.EPERM, "Cannot move the root directory!")
- self.parent = self.context.get_dir_node(cr, dbro.parent_id.id)
+ self.parent = self.context.get_dir_node(cr, dbro.parent_id)
assert self.parent
if self.parent != ndir_node:
@@ -1187,7 +1187,7 @@ class node_file(node_class):
return ''
def move_to(self, cr, ndir_node, new_name=False, fil_obj=None, ndir_obj=None, in_write=False):
- if ndir_node.context != self.context:
+ if ndir_node and ndir_node.context != self.context:
raise NotImplementedError("Cannot move files between contexts")
if (not self.check_perms(8)) and ndir_node.check_perms(2):
@@ -1205,11 +1205,11 @@ class node_file(node_class):
if (not self.parent):
# there *must* be a parent node for this one
- self.parent = self.context.get_dir_node(cr, dbro.parent_id.id)
+ self.parent = self.context.get_dir_node(cr, dbro.parent_id)
assert self.parent
ret = {}
- if self.parent != ndir_node:
+ if ndir_node and self.parent != ndir_node:
if not (isinstance(self.parent, node_dir) and isinstance(ndir_node, node_dir)):
logger.debug('Cannot move file %r from %r to %r', self, self.parent, ndir_node)
raise NotImplementedError('Cannot move files between dynamic folders')
diff --git a/addons/document/report/document_report.py b/addons/document/report/document_report.py
index 130a313dfd6..bccc46d463b 100644
--- a/addons/document/report/document_report.py
+++ b/addons/document/report/document_report.py
@@ -40,7 +40,6 @@ class report_document_user(osv.osv):
'file_size': fields.integer('File Size', readonly=True),
'nbr':fields.integer('# of Files', readonly=True),
'type':fields.char('Directory Type',size=64,readonly=True),
- 'partner':fields.char('Partner',size=64,readonly=True),
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'report_document_user')
@@ -72,12 +71,7 @@ class report_files_partner(osv.osv):
_auto = False
_columns = {
'name': fields.char('Year',size=64,required=False, readonly=True),
- 'directory': fields.char('Directory',size=64,readonly=True),
- 'create_date': fields.datetime('Date Created', readonly=True),
- 'change_date': fields.datetime('Modified Date', readonly=True),
- 'file_size': fields.integer('File Size', readonly=True),
'nbr':fields.integer('# of Files', readonly=True),
- 'type':fields.char('Directory Type',size=64,readonly=True),
'partner':fields.char('Partner',size=64,readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
index 00f308ff022..f69a0bbbaad 100644
--- a/addons/document_ftp/ftpserver/abstracted_fs.py
+++ b/addons/document_ftp/ftpserver/abstracted_fs.py
@@ -74,7 +74,7 @@ class abstracted_fs(object):
if not cr.fetchone():
continue
- cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_ftp' AND state IN ('installed', 'to upgrade') ")
+ cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_ftp' AND state IN ('installed', 'to install', 'to upgrade') ")
res = cr.fetchone()
if res and len(res):
self.db_name_list.append(db_name)
@@ -287,7 +287,7 @@ class abstracted_fs(object):
raise IOError(errno.EPERM, 'Cannot perform operation at root dir')
dbname = p_parts[0]
if dbname not in self.db_list():
- raise IOError(errno.ENOENT,'Invalid database path')
+ raise IOError(errno.ENOENT,'Invalid database path: %s' % dbname)
try:
db = pooler.get_db(dbname)
except Exception:
diff --git a/addons/document_ftp/test/document_ftp_test2.yml b/addons/document_ftp/test/document_ftp_test2.yml
index e9ac2d84582..5a4df87fbe4 100644
--- a/addons/document_ftp/test/document_ftp_test2.yml
+++ b/addons/document_ftp/test/document_ftp_test2.yml
@@ -120,13 +120,23 @@
I delete the test2.txt from the server (RPC).
-
!delete { model: ir.attachment, id:, search: "[('name','=','test2.txt')]" }
+-
+ I also commit, because ftp would run in a different transaction.
+-
+ !python {model: ir.attachment}: |
+ cr.commit()
-
I check through FTP that test2.txt does not appear.
-
!python {model: ir.attachment}: |
from document_ftp import test_easyftp as te
+ import ftplib
ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
- assert ftp.nlst("test2.txt") == []
+ try:
+ nlst_result = ftp.nlst("test2.txt")
+ except ftplib.error_perm: # 550 error: 'path not exists'
+ nlst_result = []
+ assert "test2.txt" not in nlst_result, "Files: %r" % nlst_result
-
I create a "test-name.txt" file
-
@@ -152,7 +162,7 @@
ftp = te.get_ftp_folder(cr, uid, self, 'Documents')
try:
res = ftp.nlst("test-name.txt")
- assert res == []
+ assert res == [], "File has not been renamed!"
except error_perm, e:
pass
assert ftp.nlst("test-renamed.txt") == ['test-renamed.txt']
@@ -178,7 +188,7 @@
!python {model: ir.attachment}: |
from document_ftp import test_easyftp as te
ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
- assert ftp.nlst("test3.txt") == ['test3.txt']
+ assert ftp.nlst("test3.txt") == ['test3.txt'], "File test3.txt is not there!"
-
I create a new folder, 'Test-Folder3', through FTP
I try to move test3.txt to 'Test-Folder3'
@@ -211,10 +221,10 @@
from document_ftp import test_easyftp as te
ftp = te.get_ftp_folder(cr, uid, self, 'Documents/Test-Folder2')
# TODO speed
- assert len(ftp.nlst()) > 200
+ assert len(ftp.nlst()) >= 200, "We haven't managed to store 200 files!"
-
I read the 200 files, check speed
# TODO
-
I move the 200 files to 'Test-Folder2'
- # TODO
\ No newline at end of file
+ # TODO
diff --git a/addons/document_ftp/test/document_ftp_test4.yml b/addons/document_ftp/test/document_ftp_test4.yml
index 9c3baed0844..eeed4b17dda 100644
--- a/addons/document_ftp/test/document_ftp_test4.yml
+++ b/addons/document_ftp/test/document_ftp_test4.yml
@@ -110,7 +110,7 @@
I check at the server that the file is attached to Partner1
-
!assert {model: ir.attachment, id: , search: "[('name','=','pat1-dynamic.txt')]" }:
- - parent_id.name == 'Partners of Test'
+ - parent_id.name == 'Documents'
- res_model == 'res.partner'
- res_id != False
-
diff --git a/addons/document_ics/i18n/tr.po b/addons/document_ics/i18n/tr.po
index 8c345d81ee6..6f2b2e7820a 100644
--- a/addons/document_ics/i18n/tr.po
+++ b/addons/document_ics/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:16+0000\n"
+"PO-Revision-Date: 2010-09-06 11:47+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document_ics
diff --git a/addons/document_ics/i18n/zh_CN.po b/addons/document_ics/i18n/zh_CN.po
index c2828275b75..87833efa58c 100644
--- a/addons/document_ics/i18n/zh_CN.po
+++ b/addons/document_ics/i18n/zh_CN.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:14+0000\n"
+"PO-Revision-Date: 2010-09-06 11:34+0000\n"
"Last-Translator: Black Jack \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document_ics
diff --git a/addons/document_webdav/i18n/nl.po b/addons/document_webdav/i18n/nl.po
new file mode 100644
index 00000000000..a09b3d028f6
--- /dev/null
+++ b/addons/document_webdav/i18n/nl.po
@@ -0,0 +1,31 @@
+# Dutch translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-05-30 15:14+0000\n"
+"PO-Revision-Date: 2010-09-02 07:26+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Dutch \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-09-03 03:49+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: document_webdav_old
+#: model:ir.module.module,description:document_webdav_old.module_meta_information
+msgid ""
+"This is a complete document management system:\n"
+"\t* WebDav Interface\n"
+"\t* User Authentification\n"
+"\t* Document Indexation\n"
+msgstr ""
+"Dit is een compleet document management systeem:\n"
+"\t* WebDav Interface\n"
+"\t* Gebruiker authentificatie\n"
+"\t* Document Indexatie\n"
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index 39fcfcd24c4..078cbdc475c 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -123,7 +123,7 @@ class email_template(osv.osv):
_columns = {
'name' : fields.char('Name', size=100, required=True),
- 'object_name':fields.many2one('ir.model', 'Model'),
+ 'object_name':fields.many2one('ir.model', 'Resource'),
'model_int_name':fields.char('Model Internal Name', size=200,),
'from_account':fields.many2one(
'email_template.account',
@@ -132,31 +132,35 @@ class email_template(osv.osv):
'def_to':fields.char(
'Recipient (To)',
size=250,
- help="The default recipient of email."
- "Placeholders can be used here."),
+ help="The Recipient of email. "
+ "Placeholders can be used here. "
+ "e.g. ${object.email_to}"),
'def_cc':fields.char(
'CC',
size=250,
help="Carbon Copy address(es), comma-separated."
- " Placeholders can be used here."),
+ " Placeholders can be used here. "
+ "e.g. ${object.email_cc}"),
'def_bcc':fields.char(
'BCC',
size=250,
help="Blind Carbon Copy address(es), comma-separated."
- " Placeholders can be used here."),
+ " Placeholders can be used here. "
+ "e.g. ${object.email_bcc}"),
'reply_to':fields.char('Reply-To',
size=250,
help="The address recipients should reply to,"
- " if different from the From address."
- " Placeholders can be used here."),
+ " if different from the From address."
+ " Placeholders can be used here. "
+ "e.g. ${object.email_reply_to}"),
'message_id':fields.char('Message-ID',
size=250,
- help="The Message-ID header value, if you need to"
- "specify it, for example to automatically recognize the replies later."
- " Placeholders can be used here."),
- 'track_campaign_item':fields.boolean('Track campaign items',
- help="Enable this if you want the outgoing e-mails to include a tracking"
- " marker that makes it possible to identify the replies an link them back to the campaign item"),
+ help="Specify the Message-ID SMTP header to use in outgoing emails. Please note that this overrides the Resource tracking option! Placeholders can be used here."),
+ 'track_campaign_item':fields.boolean('Resource Tracking',
+ help="Enable this is you wish to include a special \
+tracking marker in outgoing emails so you can identify replies and link \
+them back to the corresponding resource record. \
+This is useful for CRM leads for example"),
'lang':fields.char(
'Language',
size=250,
@@ -164,9 +168,9 @@ class email_template(osv.osv):
" Placeholders can be used here. "
"eg. ${object.partner_id.lang}"),
'def_subject':fields.char(
- 'Default Subject',
+ 'Subject',
size=200,
- help="The default subject of email."
+ help="The subject of email."
" Placeholders can be used here.",
translate=True),
'def_body_text':fields.text(
@@ -201,10 +205,12 @@ class email_template(osv.osv):
'ref_ir_act_window':fields.many2one(
'ir.actions.act_window',
'Window Action',
+ help="Action that will open this email template on Resource records",
readonly=True),
'ref_ir_value':fields.many2one(
'ir.values',
'Wizard Button',
+ help="Button in the side bar of the form view of this Resource that will invoke the Window Action",
readonly=True),
'allowed_groups':fields.many2many(
'res.groups',
@@ -636,9 +642,13 @@ class email_template(osv.osv):
'mail_type':'multipart/alternative',
}
+ if template['message_id']:
+ # use provided message_id with placeholders
+ mailbox_values.update({'message_id': get_value(cursor, user, record_id, template['message_id'], template, context)})
+
if template['track_campaign_item']:
# get appropriate message-id
- mailbox_values.update(message_id=tools.misc.generate_tracking_message_id(record_id))
+ mailbox_values.update({'message_id': tools.misc.generate_tracking_message_id(record_id)})
if not mailbox_values['account_id']:
raise Exception("Unable to send the mail. No account linked to the template.")
diff --git a/addons/email_template/email_template_account.py b/addons/email_template/email_template_account.py
index b54d0fac4c5..fdbcaa703bc 100644
--- a/addons/email_template/email_template_account.py
+++ b/addons/email_template/email_template_account.py
@@ -80,7 +80,12 @@ class email_template_account(osv.osv):
'name': fields.char('Description',
size=64, required=True,
readonly=True, select=True,
+ help="The description is used as the Sender name along with the provided From Email, \
+unless it is already specified in the From Email, e.g: John Doe ",
states={'draft':[('readonly', False)]}),
+ 'auto_delete': fields.boolean('Auto Delete', size=64, readonly=True,
+ help="Permanently delete emails after sending",
+ states={'draft':[('readonly', False)]}),
'user':fields.many2one('res.users',
'Related User', required=True,
readonly=True, states={'draft':[('readonly', False)]}),
@@ -133,7 +138,7 @@ class email_template_account(osv.osv):
('suspended', 'Suspended'),
('approved', 'Approved')
],
- 'Status', required=True, readonly=True),
+ 'State', required=True, readonly=True),
}
_defaults = {
@@ -189,25 +194,7 @@ class email_template_account(osv.osv):
'Error: You are not allowed to have more than 1 account.',
[])
]
-
- def on_change_emailid(self, cursor, user, ids, name=None, email_id=None, context=None):
- """
- Called when the email ID field changes.
-
- UI enhancement
- Writes the same email value to the smtpusername
- and incoming username
- """
- #TODO: Check and remove the write. Is it needed?
- self.write(cursor, user, ids, {'state':'draft'}, context=context)
- return {
- 'value': {
- 'state': 'draft',
- 'smtpuname':email_id,
- 'isuser':email_id
- }
- }
-
+
def get_outgoing_server(self, cursor, user, ids, context=None):
"""
Returns the Out Going Connection (SMTP) object
diff --git a/addons/email_template/email_template_account_view.xml b/addons/email_template/email_template_account_view.xml
index 544ad016136..201f32db726 100644
--- a/addons/email_template/email_template_account_view.xml
+++ b/addons/email_template/email_template_account_view.xml
@@ -18,16 +18,17 @@
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
@@ -40,10 +41,10 @@
-
-
-
-
+
+
+
+
@@ -72,15 +73,16 @@
search
-
-
-
-
+
+
+
+
+
+
-
@@ -97,11 +99,25 @@
-
+ id="base.menu_marketing_config_root" sequence="20" groups="base.group_system"/>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/email_template/email_template_mailbox.py b/addons/email_template/email_template_mailbox.py
index 015d8ec297e..2eb0df13791 100644
--- a/addons/email_template/email_template_mailbox.py
+++ b/addons/email_template/email_template_mailbox.py
@@ -63,6 +63,7 @@ class email_template_mailbox(osv.osv):
def send_this_mail(self, cr, uid, ids=None, context=None):
result = True
+ attachment_pool = self.pool.get('ir.attachment')
for id in (ids or []):
try:
account_obj = self.pool.get('email_template.account')
@@ -70,7 +71,7 @@ class email_template_mailbox(osv.osv):
payload = {}
if values['attachments_ids']:
for attid in values['attachments_ids']:
- attachment = self.pool.get('ir.attachment').browse(cr, uid, attid, context)#,['datas_fname','datas'])
+ attachment = attachment_pool.browse(cr, uid, attid, context)#,['datas_fname','datas'])
payload[attachment.datas_fname] = attachment.datas
result = account_obj.send_mail(cr, uid,
[values['account_id'][0]],
@@ -84,8 +85,15 @@ class email_template_mailbox(osv.osv):
message_id=values['message_id'],
context=context)
if result == True:
- self.write(cr, uid, id, {'folder':'sent', 'state':'na', 'date_mail':time.strftime("%Y-%m-%d %H:%M:%S")}, context)
- self.historise(cr, uid, [id], "Email sent successfully", context)
+ account = account_obj.browse(cr, uid, values['account_id'][0], context=context)
+ if account.auto_delete:
+ self.write(cr, uid, id, {'folder': 'trash'}, context=context)
+ self.unlink(cr, uid, [id], context=context)
+ # Remove attachments for this mail
+ attachment_pool.unlink(cr, uid, values['attachments_ids'], context=context)
+ else:
+ self.write(cr, uid, id, {'folder':'sent', 'state':'na', 'date_mail':time.strftime("%Y-%m-%d %H:%M:%S")}, context)
+ self.historise(cr, uid, [id], "Email sent successfully", context)
else:
error = result['error_msg']
self.historise(cr, uid, [id], error, context)
@@ -100,7 +108,7 @@ class email_template_mailbox(osv.osv):
def historise(self, cr, uid, ids, message='', context=None):
for id in ids:
history = self.read(cr, uid, id, ['history'], context).get('history', '')
- self.write(cr, uid, id, {'history':history or '' + "\n" + time.strftime("%Y-%m-%d %H:%M:%S") + ": " + tools.ustr(message)}, context)
+ self.write(cr, uid, id, {'history': (history or '' )+ "\n" + time.strftime("%Y-%m-%d %H:%M:%S") + ": " + tools.ustr(message)}, context)
_columns = {
'email_from':fields.char(
@@ -171,8 +179,7 @@ class email_template_mailbox(osv.osv):
('na', 'Not Applicable'),
('sending', 'Sending'),
], 'Status', required=True),
- 'date_mail':fields.datetime(
- 'Rec/Sent Date'),
+ 'date_mail':fields.datetime('Rec/Sent Date', help="Date on which Email Sent or Received"),
'history':fields.text(
'History',
readonly=True,
@@ -184,6 +191,24 @@ class email_template_mailbox(osv.osv):
'folder': lambda * a: 'outbox',
}
+ def unlink(self, cr, uid, ids, context=None):
+ """
+ It just changes the folder of the item to "Trash", if it is no in Trash folder yet,
+ or completely deletes it if it is already in Trash.
+ """
+ if not context:
+ context = {}
+ to_update = []
+ to_remove = []
+ for mail in self.browse(cr, uid, ids, context=context):
+ if mail.folder == 'trash':
+ to_remove.append(mail.id)
+ else:
+ to_update.append(mail.id)
+ # Changes the folder to trash
+ self.write(cr, uid, to_update, {'folder': 'trash'}, context=context)
+ return super(email_template_mailbox, self).unlink(cr, uid, to_remove, context=context)
+
email_template_mailbox()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/email_template/email_template_mailbox_view.xml b/addons/email_template/email_template_mailbox_view.xml
index 018b1800ccc..586195155bd 100644
--- a/addons/email_template/email_template_mailbox_view.xml
+++ b/addons/email_template/email_template_mailbox_view.xml
@@ -7,7 +7,7 @@
email_template.mailboxform
-
Concessions, brevets, licences,..., droits et valeurs similaires
[[bavar4]]
[[-bavar4b]]
[[bavar4+bavar4b]]
Fonds commercial
[[bavar5]]
[[-bavar5b]]
[[bavar5+bavar5b]]
Autres
[[bavar6]]
[[-bavar6b]]
[[bavar6+bavar6b]]
Immobilisations incorporelles en cours
[[bavar7]]
[[-bavar7b]]
[[bavar7+bavar7b]]
Avances et acomptes
[[bavar8]]
[[bavar8]]
IMMOBILISATIONS CORPORELLES
Terrains
[[bavar9]]
[[-bavar9b]]
[[bavar9+bavar9b]]
Constructions
[[bavar10]]
[[-bavar10b]]
[[bavar10+bavar10b]]
Installations techniques,matériel et outillage
[[bavar11]]
[[-bavar11b]]
[[bavar11+bavar11b]]
Autres
[[bavar12]]
[[-bavar12b]]
[[bavar12+bavar12b]]
Immobilisations corporelles en cours
[[bavar13]]
[[-bavar13b]]
[[bavar13+bavar13b]]
Avances et acomptes
[[bavar14]]
[[bavar14]]
IMMOBILISATIONS FINANCIÉRES
Participations
[[bavar15]]
[[-bavar15b]]
[[bavar15+bavar15b]]
Créances rattachées à des participations
[[bavar16]]
[[-bavar16b]]
[[bavar16+bavar16b]]
Titres immobilisés de l'activité de portefeuille
[[bavar17]]
[[-bavar17b]]
[[bavar17+bavar17b]]
Autres titres immobilisés
[[bavar18]]
[[-bavar18b]]
[[bavar18+bavar18b]]
Prêts
[[bavar19]]
[[-bavar19b]]
[[bavar19+bavar19b]]
Autres
[[bavar20]]
[[-bavar20b]]
[[bavar20+bavar20b]]
TOTAL I
[[at1a]]
[[-at1b]]
[[at1]]
ACTIF CIRCULANT
STOCK EN COURS
Matières premières et autres approvisionnements
[[bavar21]]
[[-bavar21b]]
[[bavar21+bavar21b]]
En-cours de production [biens et services]
[[bavar22]]
[[-bavar22b]]
[[bavar22+bavar22b]]
Produits intermédiaires et finis
[[bavar23]]
[[-bavar23b]]
[[bavar23+bavar23b]]
Marchandises
[[bavar24]]
[[-bavar24b]]
[[bavar24+bavar24b]]
Avances et acomptes versés sur commandes
[[bavar25]]
[[bavar25]]
CRÉANCES
Créances clients et comptes rattachés
[[bavar26]]
[[-bavar26b]]
[[bavar26+bavar26b]]
Autres
[[bavar27]]
[[-bavar27b]]
[[bavar27+bavar27b]]
Capital souscrit - appelé , non versé
[[bavar28]]
[[bavar28]]
VALEURS MOBILIÈRES DE PLACEMENT
Actions propres
[[bavar29]]
[[-bavar29b]]
[[bavar29+bavar29b]]
Autres titres
[[bavar30]]
[[-bavar30b]]
[[bavar30+bavar30b]]
Instruments de trésorerie
[[bavar31]]
[[bavar31]]
Disponibilités
[[bavar32]]
[[bavar32]]
Charges constatés d'avance
[[bavar33]]
[[bavar33]]
TOTAL II
[[at2a]]
[[-at2b]]
[[at2]]
Charges à répartir sur plusieurs exercices ( III )
[[bavar34]]
[[bavar34]]
Primes de remboursement des emprunts ( IV )
[[bavar35]]
[[bavar35]]
Écarts de conversion actif ( V )
[[bavar36]]
[[bavar36]]
TOTAL ACTIF ( I + II + III + IV + V )
[[at1a+at2a]]
[[-at1b-at2b]]
[[actif]]
PASSIF
CAPITAUX PROPRES
Capital [dont versé...]
[[bpvar1]]
Primes d'émission, de fusion, d'apport
[[bpvar2]]
Écarts de réévaluation
[[bpvar3]]
Écart d'équivalence
[[bpvar4]]
RÉSERVES
Réserve légale
[[bpvar5]]
Réserves statutaires ou contractuelles
[[bpvar6]]
Réserves réglementées
[[bpvar7]]
Autres réserves
[[bpvar8]]
Report à nouveau
[[bpvar9]]
RÉSULTAT DE L'EXERCICE [bénéfice ou perte]
[[bpvar10]]
Subventions d'investissement
[[bpvar11]]
Provisions réglementées
[[bpvar12]]
TOTAL I
[[pt1]]
PROVISIONS
Provisions pour risques
[[bpvar13]]
Provisions pour charges
[[bpvar14]]
TOTAL II
[[pt2]]
DETTES
Emprunts obligataires convertibles
[[bpvar15]]
Autres emprunts obligataires
[[bpvar16]]
Emprunts et dettes auprès des établissements de crédit
[[bpvar17]]
Emprunts et dettes financières diverses
[[bpvar18]]
Avances et acomptes reçus sur commandes en cours
[[bpvar19]]
Dettes fournisseurs et comptes rattachés
[[bpvar20]]
Dettes fiscales et sociales
[[bpvar21]]
Dettes sur immobilisations et comptes rattachés
[[bpvar22]]
Autres dettes
[[bpvar23]]
Instruments de trésorerie
[[bpvar24]]
Produits constatés d'avance
[[bpvar25]]
TOTAL III
[[pt3]]
Écarts de conversion passif ( IV )
[[bpvar26]]
TOTAL GÉNÉRAL (I + II + III + IV)
[[passif]]
ACTIF - PASSIF
[[round(actif-passif,2)]]
[[ abs(bpcheck)<0.0001 and removeParentNode('para') ]] Attention, pour que votre bilan soit correct, vous devez solder les comptes 120 ou 129 (Résultat de l'exercice précédant) dans un compte de report à nouveau (compte 110 ou 119) ou dans le compte 108. Renseignez vous sur votre structure juridique et son fonctionnement comptable.
+[[ _load('bilan',data['form'])]][[ _set_variable('at1a',bavar1+bavar2+bavar3+bavar4+bavar5+bavar6+bavar7+bavar8+bavar9+bavar10+bavar11+bavar12+bavar13+bavar14+bavar15+bavar16+bavar17+bavar18+bavar19+bavar20)]][[ _set_variable('at1b', bavar2b+bavar3b+bavar4b+bavar5b+bavar6b+bavar7b+bavar9b+bavar10b+bavar11b+bavar12b+bavar13b+bavar15b+ bavar16b+bavar17b+bavar18b+bavar19b+bavar20b)]][[ _set_variable('at1', at1a+at1b)]][[ _set_variable('at2a', bavar21+bavar22+bavar23+bavar24+bavar25+bavar26+bavar27+bavar28+bavar29+bavar30+bavar31+bavar32+bavar33)]][[ _set_variable('at2b', bavar21b+bavar22b+bavar23b+bavar24b+bavar26b+bavar27b+bavar29b+bavar30b)]][[ _set_variable('at2', at2a+at2b)]][[ _set_variable('actif', at1+at2+bavar34+bavar35+bavar36)]][[ _set_variable('pt1', bpvar1+bpvar2+bpvar3+bpvar4+bpvar5+bpvar6+bpvar7+bpvar8+bpvar9+bpvar10+bpvar11+bpvar12)]][[ _set_variable('pt2', bpvar13+bpvar14)]][[ _set_variable('pt3', bpvar15+bpvar16+bpvar17+bpvar18+bpvar19+bpvar20+bpvar21+bpvar22+bpvar23+bpvar24+bpvar25)]][[ _set_variable('passif', pt1+pt2+pt3+bpvar26)]]
Concessions, brevets, licences,..., droits et valeurs similaires
[[bavar4]]
[[-bavar4b]]
[[bavar4+bavar4b]]
Fonds commercial
[[bavar5]]
[[-bavar5b]]
[[bavar5+bavar5b]]
Autres
[[bavar6]]
[[-bavar6b]]
[[bavar6+bavar6b]]
Immobilisations incorporelles en cours
[[bavar7]]
[[-bavar7b]]
[[bavar7+bavar7b]]
Avances et acomptes
[[bavar8]]
[[bavar8]]
IMMOBILISATIONS CORPORELLES
Terrains
[[bavar9]]
[[-bavar9b]]
[[bavar9+bavar9b]]
Constructions
[[bavar10]]
[[-bavar10b]]
[[bavar10+bavar10b]]
Installations techniques,matériel et outillage
[[bavar11]]
[[-bavar11b]]
[[bavar11+bavar11b]]
Autres
[[bavar12]]
[[-bavar12b]]
[[bavar12+bavar12b]]
Immobilisations corporelles en cours
[[bavar13]]
[[-bavar13b]]
[[bavar13+bavar13b]]
Avances et acomptes
[[bavar14]]
[[bavar14]]
IMMOBILISATIONS FINANCIÉRES
Participations
[[bavar15]]
[[-bavar15b]]
[[bavar15+bavar15b]]
Créances rattachées à des participations
[[bavar16]]
[[-bavar16b]]
[[bavar16+bavar16b]]
Titres immobilisés de l'activité de portefeuille
[[bavar17]]
[[-bavar17b]]
[[bavar17+bavar17b]]
Autres titres immobilisés
[[bavar18]]
[[-bavar18b]]
[[bavar18+bavar18b]]
Prêts
[[bavar19]]
[[-bavar19b]]
[[bavar19+bavar19b]]
Autres
[[bavar20]]
[[-bavar20b]]
[[bavar20+bavar20b]]
TOTAL I
[[at1a]]
[[-at1b]]
[[at1]]
ACTIF CIRCULANT
STOCK EN COURS
Matières premières et autres approvisionnements
[[bavar21]]
[[-bavar21b]]
[[bavar21+bavar21b]]
En-cours de production [biens et services]
[[bavar22]]
[[-bavar22b]]
[[bavar22+bavar22b]]
Produits intermédiaires et finis
[[bavar23]]
[[-bavar23b]]
[[bavar23+bavar23b]]
Marchandises
[[bavar24]]
[[-bavar24b]]
[[bavar24+bavar24b]]
Avances et acomptes versés sur commandes
[[bavar25]]
[[bavar25]]
CRÉANCES
Créances clients et comptes rattachés
[[bavar26]]
[[-bavar26b]]
[[bavar26+bavar26b]]
Autres
[[bavar27]]
[[-bavar27b]]
[[bavar27+bavar27b]]
Capital souscrit - appelé , non versé
[[bavar28]]
[[bavar28]]
VALEURS MOBILIÈRES DE PLACEMENT
Actions propres
[[bavar29]]
[[-bavar29b]]
[[bavar29+bavar29b]]
Autres titres
[[bavar30]]
[[-bavar30b]]
[[bavar30+bavar30b]]
Instruments de trésorerie
[[bavar31]]
[[bavar31]]
Disponibilités
[[bavar32]]
[[bavar32]]
Charges constatés d'avance
[[bavar33]]
[[bavar33]]
TOTAL II
[[at2a]]
[[-at2b]]
[[at2]]
Charges à répartir sur plusieurs exercices ( III )
[[bavar34]]
[[bavar34]]
Primes de remboursement des emprunts ( IV )
[[bavar35]]
[[bavar35]]
Écarts de conversion actif ( V )
[[bavar36]]
[[bavar36]]
TOTAL ACTIF ( I + II + III + IV + V )
[[at1a+at2a]]
[[-at1b-at2b]]
[[actif]]
PASSIF
CAPITAUX PROPRES
Capital [dont versé...]
[[bpvar1]]
Primes d'émission, de fusion, d'apport
[[bpvar2]]
Écarts de réévaluation
[[bpvar3]]
Écart d'équivalence
[[bpvar4]]
RÉSERVES
Réserve légale
[[bpvar5]]
Réserves statutaires ou contractuelles
[[bpvar6]]
Réserves réglementées
[[bpvar7]]
Autres réserves
[[bpvar8]]
Report à nouveau
[[bpvar9]]
RÉSULTAT DE L'EXERCICE [bénéfice ou perte]
[[bpvar10]]
Subventions d'investissement
[[bpvar11]]
Provisions réglementées
[[bpvar12]]
TOTAL I
[[pt1]]
PROVISIONS
Provisions pour risques
[[bpvar13]]
Provisions pour charges
[[bpvar14]]
TOTAL II
[[pt2]]
DETTES
Emprunts obligataires convertibles
[[bpvar15]]
Autres emprunts obligataires
[[bpvar16]]
Emprunts et dettes auprès des établissements de crédit
[[bpvar17]]
Emprunts et dettes financières diverses
[[bpvar18]]
Avances et acomptes reçus sur commandes en cours
[[bpvar19]]
Dettes fournisseurs et comptes rattachés
[[bpvar20]]
Dettes fiscales et sociales
[[bpvar21]]
Dettes sur immobilisations et comptes rattachés
[[bpvar22]]
Autres dettes
[[bpvar23]]
Instruments de trésorerie
[[bpvar24]]
Produits constatés d'avance
[[bpvar25]]
TOTAL III
[[pt3]]
Écarts de conversion passif ( IV )
[[bpvar26]]
TOTAL GÉNÉRAL (I + II + III + IV)
[[passif]]
ACTIF - PASSIF
[[round(actif-passif,2)]]
[[ abs(bpcheck)<0.0001 and removeParentNode('para') ]] Attention, pour que votre bilan soit correct, vous devez solder les comptes 120 ou 129 (Résultat de l'exercice précédant) dans un compte de report à nouveau (compte 110 ou 119) ou dans le compte 108. Renseignez vous sur votre structure juridique et son fonctionnement comptable.
diff --git a/addons/l10n_fr/report/compute_resultant_report.rml b/addons/l10n_fr/report/compute_resultant_report.rml
index 9d3693f0b52..de59b0201ee 100644
--- a/addons/l10n_fr/report/compute_resultant_report.rml
+++ b/addons/l10n_fr/report/compute_resultant_report.rml
@@ -1,3 +1,3 @@
-[[ _load('cdr',data['form'])]][[ _set_variable('ct1', cdrc1+cdrc2+cdrc3+cdrc4+cdrc5+cdrc6+cdrc7+cdrc8+cdrc9+cdrc10+cdrc11+cdrc12+cdrc13+cdrc14+cdrc15)]][[ _set_variable('ct3', cdrc17+cdrc18+cdrc19+cdrc20)]][[ _set_variable('ct4', cdrc21+cdrc22+cdrc23)]][[ _set_variable('charges', ct1+cdrc16+ct3+ct4+cdrc24+cdrc25)]][[ _set_variable('pta', cdrp1+cdrp2)]][[ _set_variable('ptb', cdrp3+cdrp4+cdrp5+cdrp6+cdrp7)]][[ _set_variable('pt1', pta+ptb)]][[ _set_variable('pt3', cdrp9+cdrp10+cdrp11+cdrp12+cdrp13+cdrp14)]][[ _set_variable('pt4', cdrp15+cdrp16+cdrp17)]][[ _set_variable('produits', pt1+cdrp8+pt3+pt4)]]
[[ company.name ]]période du [[ time.strftime('%d-%m-%Y',time.strptime(date_start,'%Y-%m-%d'))]] au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]]
Compte de résultat
Imprimé le : [[ time.strftime('%d-%m-%Y') ]]
Tenue de Compte : [[ company.currency_id.name ]]
CHARGES ( hors taxes )
CHARGES D'EXPLOITATION
Achat de marchandises
[[cdrc1]]
Variation des stocks
[[cdrc2]]
Achats de matières premières et autres approvisionnements
[[cdrc3]]
Variation des stocks
[[cdrc4]]
Autres achats et charges externes
[[cdrc5]]
Redevances de crédit-bail mobilier
[[cdrc6]]
Redevances de crédit-bail immobilier
[[cdrc7]]
Impôts, taxes et versements assimilés
[[cdrc8]]
Salaires et traitements
[[cdrc9]]
Charges sociales
[[cdrc10]]
Dotation aux amortissements et aux dépréciations
Sur immobilisations : dotations aux amortissements
[[cdrc11]]
Sur immobilisations : dotations aux dépréciations
[[cdrc12]]
Sur actif circulant : dotations aux dépréciations
[[cdrc13]]
Dotations aux provisions
[[cdrc14]]
Autres charges
[[cdrc15]]
TOTAL I
[[ct1]]
Quotes-parts de résultat sur opérations faites en commun ( II )
[[cdrc16]]
CHARGES FINANCIÈRES
Dotations aux amortissements, aux dépréciations et aux provisions
[[cdrc17]]
Intérêts et charges assimilées
[[cdrc18]]
Différences négatives de change
[[cdrc19]]
Charges nettes sur cessions de valeurs mobilières de placement
[[cdrc20]]
TOTAL III
[[ct3]]
CHARGES EXCEPTIONNELLES
Sur opérations de gestion
[[cdrc21]]
Sur opérations en capital
[[cdrc22]]
Dotations aux amortissements, aux dépréciations et aux provisions
[[cdrc23]]
TOTAL IV
[[ct4]]
Participation des salariés aux résultats ( V )
[[cdrc24]]
Impôts sur les bénéfices ( VI )
[[cdrc25]]
TOTAL CHARGES ( I + II + III + IV+ V+ VI )
[[charges]]
PRODUITS (hors taxes)
PRODUITS D'EXPLOITATION
Vente de marchandises
[[cdrp1]]
Production vendue [biens et services]
[[cdrp2]]
Sous-total A - Montant net du chiffre d'affaires
[[pta]]
Production stockée
[[cdrp3]]
Production immobilisée
[[cdrp4]]
Subventions d'exploitation
[[cdrp5]]
Reprises sur provisions, dépréciations (et amortissements) et transferts de charges
[[cdrp6]]
Autres produits
[[cdrp7]]
Sous-total B
[[ptb]]
TOTAL I ( A + B )
[[pt1]]
Quotes-parts de résultat sur opérations faites en commun (II)
[[cdrp8]]
PRODUITS FINANCIERS
De participation
[[cdrp9]]
D'autres valeurs mobilières et créances de l'actif immobilisé
[[cdrp10]]
Autres intérêts et produits assimilés
[[cdrp11]]
Reprises sur provisions, dépréciations et transferts de charges
[[cdrp12]]
Différences positives de change
[[cdrp13]]
Produits nets sur cessions de valeurs mobilières de placement
[[cdrp14]]
TOTAL III
[[pt3]]
PRODUITS EXCEPTIONNELS
Sur opérations de gestion
[[cdrp15]]
Sur opérations en capital
[[cdrp16]]
Reprises sur provisions, dépréciations et transferts de charges
[[ company.name ]]période du [[ time.strftime('%d-%m-%Y',time.strptime(date_start,'%Y-%m-%d'))]] au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]]
Compte de résultat
Imprimé le : [[ time.strftime('%d-%m-%Y') ]]
Tenue de Compte : [[ company.currency_id.name ]]
CHARGES ( hors taxes )
CHARGES D'EXPLOITATION
Achat de marchandises
[[cdrc1]]
Variation des stocks
[[cdrc2]]
Achats de matières premières et autres approvisionnements
[[cdrc3]]
Variation des stocks
[[cdrc4]]
Autres achats et charges externes
[[cdrc5]]
Redevances de crédit-bail mobilier
[[cdrc6]]
Redevances de crédit-bail immobilier
[[cdrc7]]
Impôts, taxes et versements assimilés
[[cdrc8]]
Salaires et traitements
[[cdrc9]]
Charges sociales
[[cdrc10]]
Dotation aux amortissements et aux dépréciations
Sur immobilisations : dotations aux amortissements
[[cdrc11]]
Sur immobilisations : dotations aux dépréciations
[[cdrc12]]
Sur actif circulant : dotations aux dépréciations
[[cdrc13]]
Dotations aux provisions
[[cdrc14]]
Autres charges
[[cdrc15]]
TOTAL I
[[ct1]]
Quotes-parts de résultat sur opérations faites en commun ( II )
[[cdrc16]]
CHARGES FINANCIÈRES
Dotations aux amortissements, aux dépréciations et aux provisions
[[cdrc17]]
Intérêts et charges assimilées
[[cdrc18]]
Différences négatives de change
[[cdrc19]]
Charges nettes sur cessions de valeurs mobilières de placement
[[cdrc20]]
TOTAL III
[[ct3]]
CHARGES EXCEPTIONNELLES
Sur opérations de gestion
[[cdrc21]]
Sur opérations en capital
[[cdrc22]]
Dotations aux amortissements, aux dépréciations et aux provisions
[[cdrc23]]
TOTAL IV
[[ct4]]
Participation des salariés aux résultats ( V )
[[cdrc24]]
Impôts sur les bénéfices ( VI )
[[cdrc25]]
TOTAL CHARGES ( I + II + III + IV+ V+ VI )
[[charges]]
PRODUITS (hors taxes)
PRODUITS D'EXPLOITATION
Vente de marchandises
[[cdrp1]]
Production vendue [biens et services]
[[cdrp2]]
Sous-total A - Montant net du chiffre d'affaires
[[pta]]
Production stockée
[[cdrp3]]
Production immobilisée
[[cdrp4]]
Subventions d'exploitation
[[cdrp5]]
Reprises sur provisions, dépréciations (et amortissements) et transferts de charges
[[cdrp6]]
Autres produits
[[cdrp7]]
Sous-total B
[[ptb]]
TOTAL I ( A + B )
[[pt1]]
Quotes-parts de résultat sur opérations faites en commun (II)
[[cdrp8]]
PRODUITS FINANCIERS
De participation
[[cdrp9]]
D'autres valeurs mobilières et créances de l'actif immobilisé
[[cdrp10]]
Autres intérêts et produits assimilés
[[cdrp11]]
Reprises sur provisions, dépréciations et transferts de charges
[[cdrp12]]
Différences positives de change
[[cdrp13]]
Produits nets sur cessions de valeurs mobilières de placement
[[cdrp14]]
TOTAL III
[[pt3]]
PRODUITS EXCEPTIONNELS
Sur opérations de gestion
[[cdrp15]]
Sur opérations en capital
[[cdrp16]]
Reprises sur provisions, dépréciations et transferts de charges
@@ -322,6 +339,8 @@
+
+
@@ -358,9 +377,9 @@
-
+
-
+
@@ -375,17 +394,21 @@
search
-
+
+
-
+
+
-
-
+
+
+
+
@@ -417,5 +440,19 @@
domain="[('campaign_id','=',active_id)]"
/>
+
+
+
+
+
+
diff --git a/addons/marketing_campaign/report/campaign_analysis.py b/addons/marketing_campaign/report/campaign_analysis.py
index f4a902f97cc..aa0e0e01a22 100644
--- a/addons/marketing_campaign/report/campaign_analysis.py
+++ b/addons/marketing_campaign/report/campaign_analysis.py
@@ -38,10 +38,11 @@ class campaign_analysis(osv.osv):
wi_ids = self.pool.get('marketing.campaign.workitem').search(cr, uid,
[('segment_id.campaign_id', '=', ca_obj.campaign_id.id)])
total_cost = ca_obj.activity_id.variable_cost + \
- (ca_obj.campaign_id.fixed_cost / len(wi_ids))
+ ((ca_obj.campaign_id.fixed_cost or 0.00) / len(wi_ids))
result[ca_obj.id] = total_cost
return result
_columns = {
+ 'res_id' : fields.integer('Resource', readonly=True),
'year': fields.char('Year', size=4, readonly=True),
'month':fields.selection([('01','January'), ('02','February'),
('03','March'), ('04','April'),('05','May'), ('06','June'),
@@ -69,6 +70,7 @@ class campaign_analysis(osv.osv):
create or replace view campaign_analysis as (
select
min(wi.id) as id,
+ min(wi.res_id) as res_id,
to_char(wi.date::date, 'YYYY') as year,
to_char(wi.date::date, 'MM') as month,
wi.date::date as date,
diff --git a/addons/marketing_campaign/report/campaign_analysis_view.xml b/addons/marketing_campaign/report/campaign_analysis_view.xml
index 94d31fcb441..d88be86d01e 100644
--- a/addons/marketing_campaign/report/campaign_analysis_view.xml
+++ b/addons/marketing_campaign/report/campaign_analysis_view.xml
@@ -15,6 +15,7 @@
+
@@ -35,7 +36,7 @@
-
@@ -59,7 +60,9 @@
-
+
+
+
diff --git a/addons/marketing_campaign_crm_demo/i18n/en_US.po b/addons/marketing_campaign_crm_demo/i18n/en_US.po
new file mode 100644
index 00000000000..a47822331de
--- /dev/null
+++ b/addons/marketing_campaign_crm_demo/i18n/en_US.po
@@ -0,0 +1,178 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign_crm_demo
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 08:33:08+0000\n"
+"PO-Revision-Date: 2010-08-20 08:33:08+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
+msgid "Marketing campaign demo report"
+msgstr "Marketing campaign demo report"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_1
+msgid "Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,"
+msgstr "Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr "Error! You can not create recursive Directories."
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,description:marketing_campaign_crm_demo.module_meta_information
+msgid "Demo data for the module marketing_campaign."
+msgstr "Demo data for the module marketing_campaign."
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_4
+msgid "Hello,Thanks for showing intrest and buying the OpenERP book.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello,Thanks for showing intrest and buying the OpenERP book.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_2
+msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
+msgstr "Propose to subscribe to the OpenERP Discovery Day on May 2010"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_6
+msgid "Propose paid training to Silver partners"
+msgstr "Propose paid training to Silver partners"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_1
+msgid "Thanks for showing interest in OpenERP"
+msgstr "Thanks for showing interest in OpenERP"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_4
+msgid "Thanks for buying the OpenERP book"
+msgstr "Thanks for buying the OpenERP book"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_5
+msgid "Propose a free technical training to Gold partners"
+msgstr "Propose a free technical training to Gold partners"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_7
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are offering Gold partnership.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are offering Gold partnership.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Partner :"
+msgstr "Partner :"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_8
+msgid "Hello, Thanks for showing intrest and for subscribing to technical training.If any further information required kindly revert back.I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello, Thanks for showing intrest and for subscribing to technical training.If any further information required kindly revert back.I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Company :"
+msgstr "Company :"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_8
+msgid "Thanks for subscribing to technical training"
+msgstr "Thanks for subscribing to technical training"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_3
+msgid "Thanks for subscribing to the OpenERP Discovery Day"
+msgstr "Thanks for subscribing to the OpenERP Discovery Day"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_5
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our gold partners,We are arranging free technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello, We have very good offer that might suit you.\n"
+" For our gold partners,We are arranging free technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_3
+msgid "Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_2
+msgid "Hello,We have very good offer that might suit you.\n"
+" We propose you to subscribe to the OpenERP Discovery Day on May 2010.\n"
+" If any further information required kindly revert back.\n"
+" We really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello,We have very good offer that might suit you.\n"
+" We propose you to subscribe to the OpenERP Discovery Day on May 2010.\n"
+" If any further information required kindly revert back.\n"
+" We really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_6
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are paid technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are paid technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
+msgid "Dummy Action"
+msgstr "Dummy Action"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,shortdesc:marketing_campaign_crm_demo.module_meta_information
+msgid "marketing_campaign_crm_demo"
+msgstr "marketing_campaign_crm_demo"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_7
+msgid "Propose gold partnership to silver partners"
+msgstr "Propose gold partnership to silver partners"
+
diff --git a/addons/marketing_campaign_crm_demo/i18n/fr.po b/addons/marketing_campaign_crm_demo/i18n/fr.po
new file mode 100644
index 00000000000..09b6f96106e
--- /dev/null
+++ b/addons/marketing_campaign_crm_demo/i18n/fr.po
@@ -0,0 +1,170 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign_crm_demo
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 08:14+0000\n"
+"PO-Revision-Date: 2010-08-30 12:19+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
+msgid "Marketing campaign demo report"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_1
+msgid ""
+"Hello,Thanks for generous interest you have shown in the "
+"openERP.Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,description:marketing_campaign_crm_demo.module_meta_information
+msgid "Demo data for the module marketing_campaign."
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_4
+msgid ""
+"Hello,Thanks for showing intrest and buying the OpenERP book.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_2
+msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_6
+msgid "Propose paid training to Silver partners"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_1
+msgid "Thanks for showing interest in OpenERP"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_4
+msgid "Thanks for buying the OpenERP book"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_5
+msgid "Propose a free technical training to Gold partners"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_7
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are offering Gold partnership.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Partner :"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_8
+msgid ""
+"Hello, Thanks for showing intrest and for subscribing to technical "
+"training.If any further information required kindly revert back.I really "
+"appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Company :"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_8
+msgid "Thanks for subscribing to technical training"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_3
+msgid "Thanks for subscribing to the OpenERP Discovery Day"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_5
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our gold partners,We are arranging free technical training "
+"on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_3
+msgid ""
+"Hello,Thanks for showing intrest and for subscribing to the OpenERP "
+"Discovery Day.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_2
+msgid ""
+"Hello,We have very good offer that might suit you.\n"
+" We propose you to subscribe to the OpenERP Discovery Day on May "
+"2010.\n"
+" If any further information required kindly revert back.\n"
+" We really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_6
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are paid technical training on "
+"june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
+msgid "Dummy Action"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,shortdesc:marketing_campaign_crm_demo.module_meta_information
+msgid "marketing_campaign_crm_demo"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_7
+msgid "Propose gold partnership to silver partners"
+msgstr ""
diff --git a/addons/marketing_campaign_crm_demo/i18n/marketing_campaign_crm_demo.pot b/addons/marketing_campaign_crm_demo/i18n/marketing_campaign_crm_demo.pot
new file mode 100644
index 00000000000..cf1870852fb
--- /dev/null
+++ b/addons/marketing_campaign_crm_demo/i18n/marketing_campaign_crm_demo.pot
@@ -0,0 +1,155 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign_crm_demo
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 08:14:28+0000\n"
+"PO-Revision-Date: 2010-08-20 08:14:28+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
+msgid "Marketing campaign demo report"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_1
+msgid "Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,description:marketing_campaign_crm_demo.module_meta_information
+msgid "Demo data for the module marketing_campaign."
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_4
+msgid "Hello,Thanks for showing intrest and buying the OpenERP book.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_2
+msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_6
+msgid "Propose paid training to Silver partners"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_1
+msgid "Thanks for showing interest in OpenERP"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_4
+msgid "Thanks for buying the OpenERP book"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_5
+msgid "Propose a free technical training to Gold partners"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_7
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are offering Gold partnership.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Partner :"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_8
+msgid "Hello, Thanks for showing intrest and for subscribing to technical training.If any further information required kindly revert back.I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: rml:crm.lead.demo:0
+msgid "Company :"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_8
+msgid "Thanks for subscribing to technical training"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_3
+msgid "Thanks for subscribing to the OpenERP Discovery Day"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_5
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our gold partners,We are arranging free technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_3
+msgid "Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_2
+msgid "Hello,We have very good offer that might suit you.\n"
+" We propose you to subscribe to the OpenERP Discovery Day on May 2010.\n"
+" If any further information required kindly revert back.\n"
+" We really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_6
+msgid "Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are paid technical training on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
+msgid "Dummy Action"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,shortdesc:marketing_campaign_crm_demo.module_meta_information
+msgid "marketing_campaign_crm_demo"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_7
+msgid "Propose gold partnership to silver partners"
+msgstr ""
+
diff --git a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
index 88b12552d60..ee11fbcdb75 100644
--- a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
@@ -191,7 +191,7 @@
- paper
+ report
@@ -220,7 +220,7 @@
- paper
+ report
diff --git a/addons/marketing_campaign_mailchimp/__openerp__.py b/addons/marketing_campaign_mailchimp/__openerp__.py
index ef3a0a82e65..b046b4ef782 100644
--- a/addons/marketing_campaign_mailchimp/__openerp__.py
+++ b/addons/marketing_campaign_mailchimp/__openerp__.py
@@ -26,11 +26,13 @@
"depends" : ['marketing_campaign'],
"author" : "OpenERP SA",
"category": 'Generic Modules/Marketing',
- "description": """
- """,
+ "description": """
+ This module provides integration of the mailchimp.com marketing campaign and mailing-list service, connecting via Mailchimp's WebServices API.
+ You can define multiple Mailchimp accounts and then use them as you wish through a new type of activity, providing direct connection to your Mailchimp Lists.""",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
+ "security/ir.model.access.csv",
'marketing_campaign_mailchimp_view.xml',
'wizard/create_list_view.xml',
],
diff --git a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
index 3b971093ab7..a340c5c9d68 100644
--- a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
+++ b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp_view.xml
@@ -31,14 +31,14 @@
-->
-
+ mailchimp.account.treemailchimp.accounttree
-
+
@@ -70,7 +70,7 @@
- All Mailchimp Accounts
+ Mailchimp Accountsir.actions.act_windowmailchimp.accountform
diff --git a/addons/marketing_campaign_mailchimp/security/ir.model.access.csv b/addons/marketing_campaign_mailchimp/security/ir.model.access.csv
index d54743b7ed8..893cd2e9e2c 100644
--- a/addons/marketing_campaign_mailchimp/security/ir.model.access.csv
+++ b/addons/marketing_campaign_mailchimp/security/ir.model.access.csv
@@ -1,5 +1,4 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_mailchimp_account_user","mailchimp.account.user","marketing_campaign_mailchimp.model_mailchimp_account","base.res_groups_email_template_admin",1,1,1,1
-"access_mailchimp_account_system","mailchimp.account.user","marketing_campaign_mailchimp.model_mailchimp_account","base.groups_system",1,0,0,0
-"access_email_template_account_system","email_template_account_user","marketing_campaign_mailchimp.model_email_template_account","base.res_groups_email_template_admin",1,1,1,1
-"access_email_template_campaign","email_template_campaign","model_email_template","base.res_groups_email_template_admin",1,1,1,1
+"access_mailchimp_account_system","mailchimp.account.user","marketing_campaign_mailchimp.model_mailchimp_account","base.res_groups_email_template_admin",1,0,0,0
+"access_mailchimp_account_user","mailchimp_account_user","model_mailchimp_account","base.res_groups_email_template_admin",1,1,1,1
diff --git a/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml b/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
index d978527f3e3..6d8f8fe9296 100755
--- a/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
+++ b/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
@@ -5,7 +5,8 @@
create.listform
-
+
+
@@ -19,14 +20,18 @@
- Update List
+ Manual Mailchimp List Updateir.actions.act_windowcreate.listformnew
-
+
+
-
+
diff --git a/addons/membership/i18n/de.po b/addons/membership/i18n/de.po
index 7e038adc70c..c627ed1b6e3 100644
--- a/addons/membership/i18n/de.po
+++ b/addons/membership/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-22 19:09+0000\n"
-"Last-Translator: Ferdinand @ ChriCar \n"
+"PO-Revision-Date: 2010-08-29 10:19+0000\n"
+"Last-Translator: Ferdinand-chricar \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
@@ -215,7 +215,9 @@ msgstr "in Rechnung gestelltes Mitglied kann aufgenommenes Mitglied werden"
#. module: membership
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
-msgstr "Fehler: UOS sollte in einer anderen Kategorie sein als UOM"
+msgstr ""
+"Fehler: Verkaufseinheit sollte in einer anderen Kategorie sein als "
+"Mengeneinheit (ME)"
#. module: membership
#: model:ir.ui.menu,name:membership.menu_membership_products
@@ -280,8 +282,8 @@ msgstr "MItglieder Verkaufspreisliste Version"
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
-"Fehler: Die Standard UOM sowie die Beschaffungs UOM muss in derselben "
-"Kategorie sein."
+"Fehler: Die Standard Mengeneinheit sowie die Beschaffungs Mengeneinheit muss "
+"in derselben Kategorie sein."
#. module: membership
#: help:res.partner,membership_amount:0
diff --git a/addons/membership/i18n/tr.po b/addons/membership/i18n/tr.po
index ff4d025b180..9f6102466af 100644
--- a/addons/membership/i18n/tr.po
+++ b/addons/membership/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:22+0000\n"
+"PO-Revision-Date: 2010-09-06 11:20+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py
index fc14b65f698..1bfdce82404 100644
--- a/addons/membership/report/report_membership.py
+++ b/addons/membership/report/report_membership.py
@@ -38,7 +38,7 @@ class report_membership(osv.osv):
('07', 'July'), ('08', 'August'),\
('09', 'September'), ('10', 'October'),\
('11', 'November'), ('12', 'December')], 'Month', readonly=True),
- 'create_date': fields.datetime('Create Date', readonly=True),
+ 'date': fields.datetime('Create Date', readonly=True),
'canceled_number': fields.integer('Canceled', readonly=True),
'waiting_number': fields.integer('Waiting', readonly=True),
'invoiced_number': fields.integer('Invoiced', readonly=True),
@@ -78,7 +78,7 @@ class report_membership(osv.osv):
SUM(awaiting) as waiting_amount,
year,
month,
- create_date,
+ date,
partner_id,
membership_id,
state,
@@ -104,7 +104,7 @@ class report_membership(osv.osv):
ELSE 0 END AS awaiting,
TO_CHAR(ml.date_from, 'YYYY') AS year,
TO_CHAR(ml.date_from, 'MM')as month,
- TO_CHAR(ml.date_from, 'YYYY-MM-DD') as create_date,
+ TO_CHAR(ml.date_from, 'YYYY-MM-DD') as date,
ai.partner_id AS partner_id,
ai.currency_id AS currency,
ai.state as state,
@@ -119,7 +119,7 @@ class report_membership(osv.osv):
ON (ml.partner = p.id)
GROUP BY TO_CHAR(ml.date_from, 'YYYY'), TO_CHAR(ml.date_from, 'MM'), TO_CHAR(ml.date_from, 'YYYY-MM-DD'), ai.state, ai.partner_id,
ai.currency_id, ml.id, ml.membership_id) AS foo
- GROUP BY year, month, create_date, currency, partner_id, membership_id, state)
+ GROUP BY year, month, date, currency, partner_id, membership_id, state)
""")
report_membership()
diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml
index bdb5065b766..90330a92a55 100644
--- a/addons/membership/report/report_membership_view.xml
+++ b/addons/membership/report/report_membership_view.xml
@@ -31,9 +31,9 @@
+ domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"/>
+ domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/>
res.company.mrp.configres.companyform
+ 22
diff --git a/addons/mrp/i18n/de.po b/addons/mrp/i18n/de.po
index b74b5f450c6..baf284c2b45 100644
--- a/addons/mrp/i18n/de.po
+++ b/addons/mrp/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 07:31+0000\n"
+"PO-Revision-Date: 2010-08-29 10:22+0000\n"
"Last-Translator: Ferdinand-chricar \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:43+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -883,7 +883,7 @@ msgstr "Arbeitsplätze"
#. module: mrp
#: view:mrp.procurement:0
msgid "UOM"
-msgstr "UoM"
+msgstr "ME"
#. module: mrp
#: selection:mrp.procurement,procure_method:0
@@ -921,7 +921,7 @@ msgstr "Anzahl Zyklen"
#. module: mrp
#: wizard_field:mrp.workcenter.load,init,measure_unit:0
msgid "Amount measuring unit"
-msgstr "Menge (UoM)"
+msgstr "Menge (ME)"
#. module: mrp
#: view:mrp.procurement:0
@@ -1399,7 +1399,7 @@ msgstr "Produktstruktur"
#: field:mrp.production.product.line,product_uom:0
#: field:stock.warehouse.orderpoint,product_uom:0
msgid "Product UOM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: mrp
#: help:mrp.procurement,origin:0
@@ -1437,7 +1437,7 @@ msgstr "Produkt UoS"
#. module: mrp
#: field:mrp.procurement,product_uom:0
msgid "Product UoM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_workcenter
@@ -2063,4 +2063,4 @@ msgstr "Lagerwert Veränderungen"
#. module: mrp
#: view:board.board:0
msgid "Next production orders"
-msgstr ""
+msgstr "Nächste Produktionsaufträge"
diff --git a/addons/mrp/i18n/pt_BR.po b/addons/mrp/i18n/pt_BR.po
index 6cc5a71c215..2b29385232b 100644
--- a/addons/mrp/i18n/pt_BR.po
+++ b/addons/mrp/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:19+0000\n"
+"PO-Revision-Date: 2010-09-06 11:03+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/i18n/ru.po b/addons/mrp/i18n/ru.po
index 27792c605cf..6155915744d 100644
--- a/addons/mrp/i18n/ru.po
+++ b/addons/mrp/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-08 08:53+0000\n"
+"PO-Revision-Date: 2010-08-31 08:13+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:44+0000\n"
+"X-Launchpad-Export-Date: 2010-09-01 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -24,7 +24,7 @@ msgstr "Перемещение создано"
#. module: mrp
#: rml:mrp.production.order:0
msgid "No. Of Cycles"
-msgstr "№ цикла"
+msgstr "Кол-во циклов"
#. module: mrp
#: help:mrp.procurement.compute.all,init,automatic:0
@@ -42,7 +42,7 @@ msgstr "Планирование материальных ресурсов"
#. module: mrp
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: mrp
#: field:mrp.bom.revision,indice:0
@@ -64,7 +64,7 @@ msgstr "Исключения поставок"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Workcenters"
-msgstr ""
+msgstr "Участки обработки в маршруте"
#. module: mrp
#: help:mrp.property,composition:0
@@ -80,7 +80,7 @@ msgstr "Техн. маршруты"
#. module: mrp
#: field:mrp.production,picking_id:0
msgid "Packing list"
-msgstr "Упаковочный перечень"
+msgstr "Упаковочный лист"
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
@@ -158,7 +158,7 @@ msgid ""
"represent a team of 5 workers, the capacity per cycle is 5."
msgstr ""
"Количество одновременно выполняемых операций на участке. Например, если "
-"участке обработки пять рабочих, то производительность на цикл равен 5."
+"участке обработки пять рабочих, то производительность на цикл равна 5."
#. module: mrp
#: wizard_button:product.product.procurement,init,create:0
@@ -168,7 +168,7 @@ msgstr ""
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_reordering
msgid "Automatic Procurements"
-msgstr ""
+msgstr "Автоматическое снабжение"
#. module: mrp
#: wizard_field:change_production_qty,confirm,product_qty:0
@@ -196,12 +196,12 @@ msgstr ""
#. module: mrp
#: selection:mrp.production,state:0
msgid "Packing Exception"
-msgstr ""
+msgstr "Исключение снабжения"
#. module: mrp
#: model:process.node,note:mrp.process_node_orderrfq0
msgid "A purchase order is created for a sub-contracting demand."
-msgstr ""
+msgstr "Заказ на закупку создаётся в целях субконтрактинга"
#. module: mrp
#: rml:mrp.production.order:0
@@ -273,7 +273,7 @@ msgstr ""
#. module: mrp
#: help:mrp.bom,position:0
msgid "Reference to a position in an external plan."
-msgstr ""
+msgstr "Позиция на сборочном чертеже или схеме"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockrfq0
@@ -292,6 +292,9 @@ msgid ""
"When the virtual stock goes belong the Min Quantity, Open ERP generates a "
"procurement to bring the virtual stock to the Max Quantity."
msgstr ""
+"Когда запасы(с учётом неподтверждённых операций) достигают минимального "
+"значения, Open ERP автоматически планирует снабжения до достижения "
+"максимального количества."
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockmts0
@@ -353,7 +356,7 @@ msgstr "Подробности"
#. module: mrp
#: model:process.process,name:mrp.process_process_procurementprocess0
msgid "Procurement Process"
-msgstr ""
+msgstr "Процесс снабжения"
#. module: mrp
#: field:mrp.production,date_planned_date:0
@@ -398,7 +401,7 @@ msgstr "Структура спецификации"
#. module: mrp
#: wizard_field:product.product.procurement,init,product_id:0
msgid "product"
-msgstr ""
+msgstr "изделие"
#. module: mrp
#: selection:mrp.property,composition:0
@@ -437,6 +440,7 @@ msgstr ""
#: model:process.transition,note:mrp.process_transition_stockproduction0
msgid "If Procure method is Make to order and supply method is produce"
msgstr ""
+"Если метод снабжния - изготовлние на заказ, и метод поставки - производство."
#. module: mrp
#: field:res.company,po_lead:0
@@ -539,7 +543,7 @@ msgstr "Исключительные ситуации снабжения, тре
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Ready"
-msgstr ""
+msgstr "Готово"
#. module: mrp
#: view:mrp.routing:0
@@ -560,7 +564,7 @@ msgstr "Коэффициент, на который умножаются все
#. module: mrp
#: help:mrp.workcenter,time_cycle:0
msgid "Time in hours for doing one cycle."
-msgstr ""
+msgstr "Время в часах на выполнение одного цикла"
#. module: mrp
#: field:mrp.production,date_finnished:0
@@ -619,7 +623,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.workcenter.load,init,time_unit:0
msgid "Per month"
-msgstr ""
+msgstr "В месяц"
#. module: mrp
#: field:mrp.procurement,product_uos_qty:0
@@ -681,13 +685,13 @@ msgstr "Позиции снабжения"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
msgid "If Product type is service and procure method is Make to stock"
-msgstr ""
+msgstr "Если это услуга и метод снабжения - изготовление про запас"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "If Product type is service"
-msgstr ""
+msgstr "Если услуга"
#. module: mrp
#: field:res.company,security_lead:0
@@ -698,7 +702,7 @@ msgstr ""
#: view:mrp.production:0
#: field:mrp.production,cycle_total:0
msgid "Total Cycles"
-msgstr ""
+msgstr "Всего циклов"
#. module: mrp
#: selection:mrp.production,state:0
@@ -732,7 +736,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_mts0
msgid "The system waits for requested products in stock."
-msgstr ""
+msgstr "Ожидание требуемого материала/изделия на складе"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemto0
@@ -748,7 +752,7 @@ msgstr ""
#: model:process.node,name:mrp.process_node_stockproduct0
#: model:process.node,name:mrp.process_node_stockproduct1
msgid "Stockable Product"
-msgstr ""
+msgstr "Подлежащая учёту продукция"
#. module: mrp
#: view:mrp.production:0
@@ -766,7 +770,7 @@ msgstr "Код"
#. module: mrp
#: rml:mrp.production.order:0
msgid "No. Of Hours"
-msgstr ""
+msgstr "Количество часов"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_property_group
@@ -812,7 +816,7 @@ msgstr "Машина"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr ""
+msgstr "Изготовление про запас"
#. module: mrp
#: field:mrp.workcenter,name:0
@@ -890,7 +894,7 @@ msgstr "Название"
#. module: mrp
#: field:mrp.routing.workcenter,cycle_nbr:0
msgid "Number of Cycle"
-msgstr ""
+msgstr "Кол-во циклов"
#. module: mrp
#: wizard_field:mrp.workcenter.load,init,measure_unit:0
@@ -913,7 +917,7 @@ msgstr ""
#. module: mrp
#: field:mrp.workcenter,time_efficiency:0
msgid "Time Efficiency"
-msgstr ""
+msgstr "Коэффициент эффективности"
#. module: mrp
#: help:res.company,manufacturing_lead:0
@@ -928,7 +932,7 @@ msgstr "Параметры планировщика"
#. module: mrp
#: help:mrp.routing.workcenter,cycle_nbr:0
msgid "A cycle is defined in the workcenter definition."
-msgstr ""
+msgstr "Цикл задаётся для каждого участка обработки"
#. module: mrp
#: selection:mrp.workcenter.load,init,measure_unit:0
@@ -1052,7 +1056,7 @@ msgstr ""
#. module: mrp
#: field:mrp.production,sale_ref:0
msgid "Sale Ref"
-msgstr ""
+msgstr "Номер заказа на продажу"
#. module: mrp
#: field:mrp.procurement,priority:0
@@ -1076,7 +1080,7 @@ msgstr "Новое снабжение"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Production Order N° :"
-msgstr ""
+msgstr "Заказ на производство №"
#. module: mrp
#: selection:mrp.workcenter,type:0
@@ -1093,22 +1097,22 @@ msgstr "Местоположение расходных материалов д
#: rml:mrp.production.order:0
#: wizard_field:product.product.procurement,init,date_planned:0
msgid "Planned Date"
-msgstr ""
+msgstr "Планируемая дата"
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "Procurement orders"
-msgstr ""
+msgstr "Заказы на производство"
#. module: mrp
#: model:process.node,name:mrp.process_node_mts0
msgid "Make to Stock"
-msgstr ""
+msgstr "Изготовление про запас"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemto0
msgid "If product type is service and procure method is Make to order"
-msgstr ""
+msgstr "Если услуга и метод снабжния - изготовление на заказ"
#. module: mrp
#: field:res.company,schedule_range:0
@@ -1186,7 +1190,7 @@ msgstr ""
#. module: mrp
#: field:mrp.bom,method:0
msgid "Method"
-msgstr ""
+msgstr "Способ"
#. module: mrp
#: wizard_view:product_price,init:0
@@ -1196,7 +1200,7 @@ msgstr "Оплачено ?"
#. module: mrp
#: model:process.node,note:mrp.process_node_routing0
msgid "Define a routing to describe the manufacturing steps."
-msgstr ""
+msgstr "Задайте маршрут обработки"
#. module: mrp
#: field:mrp.bom,active:0
@@ -1221,7 +1225,7 @@ msgstr ""
#: field:mrp.procurement,property_ids:0
#: view:mrp.property:0
msgid "Properties"
-msgstr ""
+msgstr "Свойства"
#. module: mrp
#: field:mrp.procurement,date_planned:0
@@ -1238,7 +1242,7 @@ msgstr "Доп. информация"
#. module: mrp
#: model:process.node,note:mrp.process_node_billofmaterial0
msgid "Define the product structure, with sub-products and/or components."
-msgstr ""
+msgstr "Задайте структуру изделия, с вложенными сборками и компонентами"
#. module: mrp
#: model:process.node,note:mrp.process_node_minimumstockrule0
@@ -1246,6 +1250,7 @@ msgid ""
"Procurement is created if the product quantity is lower than the minimum "
"limit."
msgstr ""
+"Снабжение начинаетя, если количество продукта ниже минимального предела"
#. module: mrp
#: field:mrp.procurement,date_close:0
@@ -1266,12 +1271,12 @@ msgstr "Составление свойств"
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
#: model:ir.ui.menu,name:mrp.menu_production_orders_waiting4
msgid "Production Orders Waiting Products"
-msgstr "Продукция в ожидании заказов на производство"
+msgstr "Заказы на производство в ожидании материалов"
#. module: mrp
#: rml:mrp.production.order:0
msgid "SO Number"
-msgstr ""
+msgstr "Номер заказа клиента"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wizard_change_production_qty
@@ -1325,7 +1330,7 @@ msgstr "Правила минимальных запасов"
#. module: mrp
#: field:mrp.workcenter,capacity_per_cycle:0
msgid "Capacity per Cycle"
-msgstr ""
+msgstr "Количество одновременно изготавливаемых деталей"
#. module: mrp
#: field:mrp.bom,product_id:0
@@ -1341,7 +1346,7 @@ msgstr "Продукция"
#: view:mrp.production:0
#: field:mrp.production,hour_total:0
msgid "Total Hours"
-msgstr ""
+msgstr "Общее время"
#. module: mrp
#: field:mrp.production,location_src_id:0
@@ -1378,7 +1383,7 @@ msgstr ""
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockproduct0
msgid "Product type is Stockable and procure method is make to stock"
-msgstr ""
+msgstr "Изделие подлежит учёту и метод снабжения - изготовление про запас"
#. module: mrp
#: help:mrp.bom,date_start:0
@@ -1465,7 +1470,7 @@ msgstr "численные индексы"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicerfq0
msgid "If Procure method is Make to order and supply method is buy"
-msgstr ""
+msgstr "Если способ снабжения \"изготовление на заказ\" и изделие закупается"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_procurestockableproduct0
@@ -1519,7 +1524,7 @@ msgstr "Время цикла (часов)"
#. module: mrp
#: wizard_view:product.product.procurement,done:0
msgid "Your procurement request has been sent !"
-msgstr ""
+msgstr "Заявка на снабжение отправлена!"
#. module: mrp
#: wizard_view:product.product.procurement,init:0
@@ -1616,7 +1621,7 @@ msgstr ""
msgid ""
"Efficiency on the production. A factor of 0.9 means a loss of 10% in the "
"production."
-msgstr ""
+msgstr "Коэффициент потерь. Значение 0,9 означает потерю 10% продукции."
#. module: mrp
#: field:mrp.bom,product_rounding:0
@@ -1636,7 +1641,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceonorder0
msgid "If procurement is make to order"
-msgstr ""
+msgstr "Если изделие изготовляется на заказ"
#. module: mrp
#: selection:mrp.bom,method:0
@@ -1672,7 +1677,7 @@ msgstr "Общее кол-во"
#. module: mrp
#: field:mrp.routing.workcenter,hour_nbr:0
msgid "Number of Hours"
-msgstr ""
+msgstr "Количество часов"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action
@@ -1719,6 +1724,8 @@ msgid ""
"operations and to plan futur loads on workcenters based on production "
"plannification."
msgstr ""
+"Список операций и участков обработки для производства готового изделия. "
+"Обычно используется для расчёта и планирования загрузки участков."
#. module: mrp
#: selection:mrp.production,state:0
@@ -1739,7 +1746,7 @@ msgstr "Новый заказ на производство"
#. module: mrp
#: model:process.node,note:mrp.process_node_rfq0
msgid "A Request for Quotation is created and sent to the supplier."
-msgstr ""
+msgstr "Заявка выслана поставщику"
#. module: mrp
#: field:mrp.bom.revision,last_indice:0
@@ -1918,7 +1925,7 @@ msgstr "Загрузка участка обработки"
#. module: mrp
#: help:mrp.workcenter,time_stop:0
msgid "Time in hours for the cleaning."
-msgstr ""
+msgstr "Время в часах на сбор отходов"
#. module: mrp
#: view:mrp.procurement:0
@@ -1928,7 +1935,7 @@ msgstr "Детали снабжения"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_bom0
msgid "You can see its bill of material which are used to make product"
-msgstr ""
+msgstr "Посмотреть спецификацию, по которой изготовляется изделие"
#. module: mrp
#: field:mrp.production,date_planned_end:0
diff --git a/addons/mrp/i18n/tr.po b/addons/mrp/i18n/tr.po
index 29ded99ff19..c344230b1cd 100644
--- a/addons/mrp/i18n/tr.po
+++ b/addons/mrp/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:32+0000\n"
+"PO-Revision-Date: 2010-09-06 12:09+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/i18n/zh_TW.po b/addons/mrp/i18n/zh_TW.po
index edbfb91b763..90358d1e3dc 100644
--- a/addons/mrp/i18n/zh_TW.po
+++ b/addons/mrp/i18n/zh_TW.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:29+0000\n"
+"PO-Revision-Date: 2010-09-06 11:58+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/installer.py b/addons/mrp/installer.py
index 361998f50bd..31a683fd3d9 100644
--- a/addons/mrp/installer.py
+++ b/addons/mrp/installer.py
@@ -37,10 +37,10 @@ class mrp_installer(osv.osv_memory):
"procurement scheduler manually."),
'mrp_operations': fields.boolean('Manufacturing Operations',
help="Enhances production orders with readiness states as well "
- "as the dates of start and end of execution of the order."),
+ "as the date of start and end of execution of the order."),
'mrp_subproduct': fields.boolean('MRP Subproducts',
help="Enables multiple product output from a single production "
- "order: without this, a productio order can have only one "
+ "order: without this, a production order can have only one "
"output product."),
'mrp_repair': fields.boolean('Repairs',
help="Enables warranty and repair management (and their impact "
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index fd9f8335987..fad20da2589 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -459,9 +459,9 @@ class mrp_production(osv.osv):
help="This is the internal picking list that brings the finished product to the production plan"),
'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True),
'move_lines': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consume', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
- 'move_lines2': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consumed Products', domain=[('state','in', ('done', 'cancel'))], readonly=True),
+ 'move_lines2': many2many_domain('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consumed Products', domain=[('state','in', ('done', 'cancel'))]),
'move_created_ids': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
- 'move_created_ids2': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','in', ('done', 'cancel'))], readonly=True),
+ 'move_created_ids2': one2many_domain('stock.move', 'production_id', 'Moves Created', domain=[('state','in', ('done', 'cancel'))]),
'product_lines': fields.one2many('mrp.production.product.line', 'production_id', 'Scheduled goods'),
'workcenter_lines': fields.one2many('mrp.production.workcenter.line', 'production_id', 'Work Centers Utilisation'),
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
diff --git a/addons/mrp/mrp_demo.xml b/addons/mrp/mrp_demo.xml
index fa54dc0096f..f454a8d14a8 100644
--- a/addons/mrp/mrp_demo.xml
+++ b/addons/mrp/mrp_demo.xml
@@ -713,6 +713,9 @@
12.0
+
+
+
diff --git a/addons/mrp/mrp_installer.xml b/addons/mrp/mrp_installer.xml
index 73fc81af73d..bcec9af75f6 100644
--- a/addons/mrp/mrp_installer.xml
+++ b/addons/mrp/mrp_installer.xml
@@ -8,7 +8,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/point_of_sale/report/pos_details_summary.py b/addons/point_of_sale/report/pos_details_summary.py
index 04e460ec6e5..2d1fd0b98c7 100644
--- a/addons/point_of_sale/report/pos_details_summary.py
+++ b/addons/point_of_sale/report/pos_details_summary.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -128,7 +128,7 @@ report_sxw.report_sxw('report.pos.details_summary',
'pos.order',
'addons/point_of_sale/report/pos_details_summary.rml',
parser=pos_details_summary,
- header=None)
+ header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/report/pos_details_summary.rml b/addons/point_of_sale/report/pos_details_summary.rml
index 254f397b6b6..3981f389166 100644
--- a/addons/point_of_sale/report/pos_details_summary.rml
+++ b/addons/point_of_sale/report/pos_details_summary.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_lines.py b/addons/point_of_sale/report/pos_lines.py
index 3076e1b6741..ad855087cad 100644
--- a/addons/point_of_sale/report/pos_lines.py
+++ b/addons/point_of_sale/report/pos_lines.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
@@ -52,7 +52,7 @@ class pos_lines(report_sxw.rml_parse):
return res
-report_sxw.report_sxw('report.pos.lines', 'pos.order', 'addons/point_of_sale/report/pos_lines.rml', parser=pos_lines)
+report_sxw.report_sxw('report.pos.lines', 'pos.order', 'addons/point_of_sale/report/pos_lines.rml', parser=pos_lines,header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/report/pos_lines.rml b/addons/point_of_sale/report/pos_lines.rml
index 5ff85f5afd1..0cc1c43520a 100644
--- a/addons/point_of_sale/report/pos_lines.rml
+++ b/addons/point_of_sale/report/pos_lines.rml
@@ -1,6 +1,6 @@
-
+
@@ -73,14 +73,14 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -90,8 +90,8 @@
-
-
+
+
@@ -106,14 +106,18 @@
+
- [[repeatIn(objects,'o')]][[ setLang(o.partner_id.lang) ]]
+ Sales lines
+
+
+
@@ -283,4 +287,4 @@
-
+
\ No newline at end of file
diff --git a/addons/point_of_sale/report/pos_payment_report.py b/addons/point_of_sale/report/pos_payment_report.py
index d2f05f85a06..3d82025da89 100644
--- a/addons/point_of_sale/report/pos_payment_report.py
+++ b/addons/point_of_sale/report/pos_payment_report.py
@@ -61,7 +61,7 @@ class pos_payment_report(report_sxw.rml_parse):
return self.total
-report_sxw.report_sxw('report.pos.payment.report', 'pos.order', 'addons/point_of_sale/report/pos_payment_report.rml', parser=pos_payment_report)
+report_sxw.report_sxw('report.pos.payment.report', 'pos.order', 'addons/point_of_sale/report/pos_payment_report.rml', parser=pos_payment_report,header='internal')
diff --git a/addons/point_of_sale/report/pos_payment_report.rml b/addons/point_of_sale/report/pos_payment_report.rml
index ebe30bdf3bc..c1980e9e209 100644
--- a/addons/point_of_sale/report/pos_payment_report.rml
+++ b/addons/point_of_sale/report/pos_payment_report.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_payment_report_date.py b/addons/point_of_sale/report/pos_payment_report_date.py
index af64e45cff4..38f87d533f2 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.py
+++ b/addons/point_of_sale/report/pos_payment_report_date.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -59,7 +59,7 @@ class pos_payment_report_date(report_sxw.rml_parse):
return res
-report_sxw.report_sxw('report.pos.payment.report.date', 'pos.order', 'addons/point_of_sale/report/pos_payment_report_date.rml', parser=pos_payment_report_date)
+report_sxw.report_sxw('report.pos.payment.report.date', 'pos.order', 'addons/point_of_sale/report/pos_payment_report_date.rml', parser=pos_payment_report_date,header='internal')
diff --git a/addons/point_of_sale/report/pos_payment_report_date.rml b/addons/point_of_sale/report/pos_payment_report_date.rml
index f83d985b6b4..1f220e253ca 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.rml
+++ b/addons/point_of_sale/report/pos_payment_report_date.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -10,35 +10,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -46,9 +40,8 @@
-
-
+
@@ -56,31 +49,24 @@
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+
+
+
+
@@ -90,8 +76,8 @@
-
-
+
+
@@ -105,17 +91,18 @@
-
+
-
-
+ [[ repeatIn(objects,'order') ]]
+
-
+ Payment
+
-
+
[[ formatLang(pos_payment_date_total(data['form'])) or removeParentNode('blockTable')]]
-
+
+
+
+
-
+
\ No newline at end of file
diff --git a/addons/point_of_sale/report/pos_payment_report_user.py b/addons/point_of_sale/report/pos_payment_report_user.py
index e84b3b792cc..48ea148d8d1 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.py
+++ b/addons/point_of_sale/report/pos_payment_report_user.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -58,7 +58,7 @@ class pos_payment_report_user(report_sxw.rml_parse):
return res
-report_sxw.report_sxw('report.pos.payment.report.user', 'pos.order', 'addons/point_of_sale/report/pos_payment_report_user.rml', parser=pos_payment_report_user)
+report_sxw.report_sxw('report.pos.payment.report.user', 'pos.order', 'addons/point_of_sale/report/pos_payment_report_user.rml', parser=pos_payment_report_user,header='internal')
diff --git a/addons/point_of_sale/report/pos_payment_report_user.rml b/addons/point_of_sale/report/pos_payment_report_user.rml
index f3a9311e186..fc874e52dac 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.rml
+++ b/addons/point_of_sale/report/pos_payment_report_user.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_receipt.rml b/addons/point_of_sale/report/pos_receipt.rml
index 313ba8cdb61..e722687f094 100644
--- a/addons/point_of_sale/report/pos_receipt.rml
+++ b/addons/point_of_sale/report/pos_receipt.rml
@@ -1,6 +1,6 @@
-
+
@@ -136,7 +136,7 @@
[[o.state=='cancel' and o.statement_ids and '-' or '']][['%.f' % line.qty ]]
-
+
[[o.state=='cancel' and o.statement_ids and '-' or '']][[ '%.2f' % net(line.id) ]] [[ line and line.discount == 0.0 and removeParentNode('font') ]] ([[ '%.2f' % line.discount ]]%)
diff --git a/addons/point_of_sale/report/pos_receipt_bis.rml b/addons/point_of_sale/report/pos_receipt_bis.rml
index 1080a69ea65..ab8af5ca999 100644
--- a/addons/point_of_sale/report/pos_receipt_bis.rml
+++ b/addons/point_of_sale/report/pos_receipt_bis.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_receipt_with_remboursment.rml b/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
index 01fa0e4ac1e..32dea8dcd48 100644
--- a/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
+++ b/addons/point_of_sale/report/pos_receipt_with_remboursment.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
index 0eb0dba773a..4e3b8ec64e1 100644
--- a/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
+++ b/addons/point_of_sale/report/pos_receipt_without_remboursment.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_sales_user.py b/addons/point_of_sale/report/pos_sales_user.py
index b110e4e2d00..4032f035bdf 100644
--- a/addons/point_of_sale/report/pos_sales_user.py
+++ b/addons/point_of_sale/report/pos_sales_user.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -46,7 +46,7 @@ class pos_sales_user(report_sxw.rml_parse):
data = self.cr.dictfetchall()
return data
-report_sxw.report_sxw('report.pos.sales.user', 'pos.order', 'addons/point_of_sale/report/pos_sales_user.rml', parser=pos_sales_user)
+report_sxw.report_sxw('report.pos.sales.user', 'pos.order', 'addons/point_of_sale/report/pos_sales_user.rml', parser=pos_sales_user,header='internal')
diff --git a/addons/point_of_sale/report/pos_sales_user.rml b/addons/point_of_sale/report/pos_sales_user.rml
index b6a3dae9685..cb817035a46 100644
--- a/addons/point_of_sale/report/pos_sales_user.rml
+++ b/addons/point_of_sale/report/pos_sales_user.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_sales_user_today.py b/addons/point_of_sale/report/pos_sales_user_today.py
index 4362cc8928c..7c9b9b5a563 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.py
+++ b/addons/point_of_sale/report/pos_sales_user_today.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -45,7 +45,7 @@ class pos_sales_user_today(report_sxw.rml_parse):
data = self.cr.dictfetchall()
return data
-report_sxw.report_sxw('report.pos.sales.user.today', 'pos.order', 'addons/point_of_sale/report/pos_sales_user_today.rml', parser=pos_sales_user_today)
+report_sxw.report_sxw('report.pos.sales.user.today', 'pos.order', 'addons/point_of_sale/report/pos_sales_user_today.rml', parser=pos_sales_user_today,header='internal')
diff --git a/addons/point_of_sale/report/pos_sales_user_today.rml b/addons/point_of_sale/report/pos_sales_user_today.rml
index 7db76e33ff4..39f6ddacb4c 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.rml
+++ b/addons/point_of_sale/report/pos_sales_user_today.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_sales_user_today_current_user.py b/addons/point_of_sale/report/pos_sales_user_today_current_user.py
index bd728441be2..7f4a8f827f5 100644
--- a/addons/point_of_sale/report/pos_sales_user_today_current_user.py
+++ b/addons/point_of_sale/report/pos_sales_user_today_current_user.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -63,7 +63,7 @@ class pos_sales_user_today_current_user(report_sxw.rml_parse):
def _get_data_current_user_qty(self, user):
return self.qty
-report_sxw.report_sxw('report.pos.sales.user.today.current.user', 'pos.order', 'addons/point_of_sale/report/pos_sales_user_today_current_user.rml', parser=pos_sales_user_today_current_user)
+report_sxw.report_sxw('report.pos.sales.user.today.current.user', 'pos.order', 'addons/point_of_sale/report/pos_sales_user_today_current_user.rml', parser=pos_sales_user_today_current_user,header='internal')
diff --git a/addons/point_of_sale/report/pos_sales_user_today_current_user.rml b/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
index 469fc5cdd33..475d045252b 100644
--- a/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
+++ b/addons/point_of_sale/report/pos_sales_user_today_current_user.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/report/pos_users_product.py b/addons/point_of_sale/report/pos_users_product.py
index a61f753ce7d..3a284f1957f 100644
--- a/addons/point_of_sale/report/pos_users_product.py
+++ b/addons/point_of_sale/report/pos_users_product.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,7 +15,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
import time
@@ -61,4 +61,4 @@ class pos_user_product(report_sxw.rml_parse):
def _get_total(self):
return self.total
-report_sxw.report_sxw('report.pos.user.product', 'account.bank.statement', 'addons/statement/report/pos_users_product.rml', parser=pos_user_product)
+report_sxw.report_sxw('report.pos.user.product', 'account.bank.statement', 'addons/statement/report/pos_users_product.rml', parser=pos_user_product,header='internal')
diff --git a/addons/point_of_sale/report/pos_users_product.rml b/addons/point_of_sale/report/pos_users_product.rml
index cbb309ceef2..ef911861d85 100644
--- a/addons/point_of_sale/report/pos_users_product.rml
+++ b/addons/point_of_sale/report/pos_users_product.rml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/point_of_sale/wizard/pos_box_entries.py b/addons/point_of_sale/wizard/pos_box_entries.py
index 25fdff2caa9..941b4f3c2d7 100644
--- a/addons/point_of_sale/wizard/pos_box_entries.py
+++ b/addons/point_of_sale/wizard/pos_box_entries.py
@@ -43,6 +43,7 @@ def get_journal(self, cr, uid, context):
res_obj = [(r1['id'])for r1 in res_obj]
res = statement_obj.read(cr, uid, obj_ids, ['journal_id'], context)
res = [(r['journal_id']) for r in res]
+ res.insert(0, ('', ''))
return res
class pos_box_entries(osv.osv_memory):
diff --git a/addons/process/i18n/tr.po b/addons/process/i18n/tr.po
index b5b9254e489..a7d7ff7ba84 100644
--- a/addons/process/i18n/tr.po
+++ b/addons/process/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:23+0000\n"
+"PO-Revision-Date: 2010-09-06 10:12+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: process
diff --git a/addons/process/process_view.xml b/addons/process/process_view.xml
index 2b94827ce1a..b743c82f84f 100644
--- a/addons/process/process_view.xml
+++ b/addons/process/process_view.xml
@@ -15,10 +15,10 @@
form
@@ -27,9 +27,9 @@
diff --git a/addons/product_expiry/i18n/de.po b/addons/product_expiry/i18n/de.po
new file mode 100644
index 00000000000..12f1b502c7a
--- /dev/null
+++ b/addons/product_expiry/i18n/de.po
@@ -0,0 +1,173 @@
+# German translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-06-30 15:09+0000\n"
+"PO-Revision-Date: 2010-08-29 10:20+0000\n"
+"Last-Translator: Ferdinand-chricar \n"
+"Language-Team: German \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_expiry
+#: field:product.product,life_time:0
+msgid "Product lifetime"
+msgstr "Produktlebensdauer"
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_from_product_template
+msgid "Ham"
+msgstr "Schinken"
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_lait_product_template
+msgid "Cow milk"
+msgstr "Kuhmilch"
+
+#. module: product_expiry
+#: model:ir.module.module,shortdesc:product_expiry.module_meta_information
+msgid "Products date of expiry"
+msgstr "Produkt Ablaufdatum"
+
+#. module: product_expiry
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+"Fehler: Die Standard Mengeneinheit sowie die Beschaffungs ME muss in "
+"derselben Kategorie sein."
+
+#. module: product_expiry
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: product_expiry
+#: help:stock.production.lot,life_date:0
+msgid "The date the lot may become dangerous and should not be consumed."
+msgstr ""
+"Das Ablaufdatum des Loses könnte gefährlich werde und sollte nicht "
+"konsumiert werden"
+
+#. module: product_expiry
+#: field:stock.production.lot,removal_date:0
+msgid "Removal Date"
+msgstr "Entnahmedatum"
+
+#. module: product_expiry
+#: model:ir.module.module,description:product_expiry.module_meta_information
+msgid ""
+"Track different dates on products and production lots:\n"
+" - end of life\n"
+" - best before date\n"
+" - removal date\n"
+" - alert date\n"
+"Used, for example, in food industries."
+msgstr ""
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_pain_product_template
+msgid "Bread"
+msgstr "Brot"
+
+#. module: product_expiry
+#: model:product.uom,name:product_expiry.product_uom_ltr
+#: model:product.uom.categ,name:product_expiry.product_uom_categ_vol
+msgid "LTR"
+msgstr ""
+
+#. module: product_expiry
+#: view:product.product:0
+#: view:stock.production.lot:0
+msgid "Dates"
+msgstr "Zeitpunkte"
+
+#. module: product_expiry
+#: constraint:product.template:0
+msgid "Error: UOS must be in a different category than the UOM"
+msgstr ""
+"Fehler: Die Verkaufseinheit sollte in einer anderen Kategorie sein als die "
+"Mengeneinheit"
+
+#. module: product_expiry
+#: field:stock.production.lot,life_date:0
+msgid "End of Life Date"
+msgstr "Ende der Lebensdauer"
+
+#. module: product_expiry
+#: field:stock.production.lot,use_date:0
+msgid "Best before Date"
+msgstr "Mindesthaltbarkeitsdatum"
+
+#. module: product_expiry
+#: help:stock.production.lot,use_date:0
+msgid "The date the lot starts deteriorating without becoming dangerous."
+msgstr ""
+"Das Datum, ab dem das Produkt schlechter wird ohne gefährlich zu werden."
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_jambon_product_template
+msgid "French cheese Camenbert"
+msgstr "französicher Camembert"
+
+#. module: product_expiry
+#: help:product.product,removal_time:0
+msgid "The number of days before a production lot should be removed."
+msgstr "Tage bevor ein Produktionslos entfernt werden soll"
+
+#. module: product_expiry
+#: field:product.product,use_time:0
+#: field:stock.production.lot,dlc:0
+msgid "Product usetime"
+msgstr "Produkt Verwendungsdauer"
+
+#. module: product_expiry
+#: field:stock.production.lot,alert_date:0
+msgid "Alert Date"
+msgstr "Alarmzeitpunkt"
+
+#. module: product_expiry
+#: field:product.product,removal_time:0
+msgid "Product removal time"
+msgstr "Produkt Entfernungszeitpunkt"
+
+#. module: product_expiry
+#: help:product.product,use_time:0
+msgid ""
+"The number of days before a production lot starts deteriorating without "
+"becoming dangerous."
+msgstr ""
+"Die Anzahl der Tage bevor ein Produktionslos schlechter wird ohne gefährlich "
+"zu werden"
+
+#. module: product_expiry
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Fehler: Falscher EAN code"
+
+#. module: product_expiry
+#: help:product.product,life_time:0
+msgid ""
+"The number of days before a production lot may become dangerous and should "
+"not be consumed."
+msgstr ""
+"Die Anzahl der Tage bevor ein Produkt gefährlich wird und nicht konsumiert "
+"werden soll"
+
+#. module: product_expiry
+#: help:stock.production.lot,removal_date:0
+msgid "The date the lot should be removed."
+msgstr "Datum an dem das Los entfernt werden soll"
+
+#. module: product_expiry
+#: field:product.product,alert_time:0
+msgid "Product alert time"
+msgstr "Produkt Alarmzeitpunkt"
diff --git a/addons/product_manufacturer/i18n/de.po b/addons/product_manufacturer/i18n/de.po
new file mode 100644
index 00000000000..530434654b3
--- /dev/null
+++ b/addons/product_manufacturer/i18n/de.po
@@ -0,0 +1,95 @@
+# German translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2010-08-12 12:35+0000\n"
+"PO-Revision-Date: 2010-08-22 07:28+0000\n"
+"Last-Translator: Ferdinand @ ChriCar \n"
+"Language-Team: German \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-23 04:02+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_manufacturer
+#: model:ir.module.module,description:product_manufacturer.module_meta_information
+msgid "A module that add manufacturers and attributes on the product form"
+msgstr "Dieses Modul fügt Hersteller und Merkmale zum Produkt hinzu"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pref:0
+msgid "Manufacturer Product Code"
+msgstr "Hersteller Produkt Nummer"
+
+#. module: product_manufacturer
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+msgid "Product Template Name"
+msgstr "Produkt Vorlage NAme"
+
+#. module: product_manufacturer
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Der Objektname muss mit \"x_\" beginnen und darf keine Sonderzeichen "
+"beinhalten!"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
+msgid "Product attributes"
+msgstr "Produkt Merkmale"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+#: view:product.product:0
+msgid "Product Attributes"
+msgstr "Produkt Merkmale"
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,name:0
+msgid "Attribute"
+msgstr "Merkmale"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
+#: field:product.manufacturer.attribute,product_id:0
+msgid "Product"
+msgstr "Produkt"
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,value:0
+msgid "Value"
+msgstr "Wert"
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,attribute_ids:0
+msgid "Attributes"
+msgstr "Eigenschaften"
+
+#. module: product_manufacturer
+#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
+msgid "Products Attributes & Manufacturers"
+msgstr "Produkt Merkmale & Hersteller"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pname:0
+msgid "Manufacturer Product Name"
+msgstr "Produktename des Herstellers"
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,manufacturer:0
+msgid "Manufacturer"
+msgstr "Hersteller"
diff --git a/addons/product_margin/i18n/pt_BR.po b/addons/product_margin/i18n/pt_BR.po
index 465fe5ec090..c13188dbd79 100644
--- a/addons/product_margin/i18n/pt_BR.po
+++ b/addons/product_margin/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:07+0000\n"
+"PO-Revision-Date: 2010-09-06 10:30+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_margin
diff --git a/addons/product_margin/i18n/tr.po b/addons/product_margin/i18n/tr.po
index 54c24591151..02d80a348b8 100644
--- a/addons/product_margin/i18n/tr.po
+++ b/addons/product_margin/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:31+0000\n"
+"PO-Revision-Date: 2010-09-06 12:07+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_margin
diff --git a/addons/product_visible_discount/i18n/de.po b/addons/product_visible_discount/i18n/de.po
new file mode 100644
index 00000000000..6e189f19097
--- /dev/null
+++ b/addons/product_visible_discount/i18n/de.po
@@ -0,0 +1,46 @@
+# German translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-03-25 12:11+0000\n"
+"PO-Revision-Date: 2010-08-23 06:41+0000\n"
+"Last-Translator: Ferdinand-chricar \n"
+"Language-Team: German \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-25 03:56+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice "
+"lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the "
+"pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, "
+"and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: "
+"Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and "
+"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+
+#. module: product_visible_discount
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "sichtbarer Nachlass"
diff --git a/addons/profile_tools/installer.py b/addons/profile_tools/installer.py
index 1a793352b6e..1e2ff655353 100644
--- a/addons/profile_tools/installer.py
+++ b/addons/profile_tools/installer.py
@@ -25,10 +25,11 @@ class misc_tools_installer(osv.osv_memory):
_inherit = 'res.config.installer'
_columns = {
- 'lunch':fields.boolean('Lunch Orders',help='Installs tools for lunch module'),
- 'subscription':fields.boolean('Recurring Documents',help='Installs tools for subscription module'),
- 'survey':fields.boolean('Survey',help='Installs tools for survey module'),
- 'audittrail':fields.boolean('Audit Trail',help='Installs tools for audittrail module'),
+ 'lunch':fields.boolean('Lunch',help='Helps to manage Lunch Orders'),
+ 'subscription':fields.boolean('Recurring Documents',help='Helps to add subscription on documents'),
+ 'survey':fields.boolean('Survey',help='Manages Custom Surveys'),
+ 'idea':fields.boolean('Idea',help='Manages ideas and votes'),
+ 'audittrail':fields.boolean('Audit Trail',help="Lets you to track user's operations on specific Objects."),
}
_defaults = {
'lunch': True,
diff --git a/addons/profile_tools/misc_tools_installer.xml b/addons/profile_tools/misc_tools_installer.xml
index 64bb428e278..2fcb2a3e0c4 100644
--- a/addons/profile_tools/misc_tools_installer.xml
+++ b/addons/profile_tools/misc_tools_installer.xml
@@ -10,8 +10,8 @@
Tools Modules Configuration
-
-
+
+
@@ -19,7 +19,7 @@
- Here are a few useful applications which, while they do not directly contribute to your business, can help you to improve your organization.
+ Here are applications which, while they do not directly contribute to your business, can help you to improve your organization.Configure
@@ -28,6 +28,7 @@
+
@@ -48,16 +49,5 @@
3
-
- ir.actions.todo
- misc_installer_action_replace
- tree
-
-
-
-
-
-
-
diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py
index b0e3880c243..3177744ea9c 100644
--- a/addons/project/__openerp__.py
+++ b/addons/project/__openerp__.py
@@ -31,14 +31,14 @@
work done on tasks, eso. It is able to render planning, order tasks, eso.
Dashboard for project members that includes:
* List of my open tasks
- * List of messages
* Members list of project
- * Issues
""",
"init_xml": [],
"update_xml": [
"security/project_security.xml",
"wizard/project_task_delegate_view.xml",
+ "wizard/project_task_close_view.xml",
+ "wizard/project_task_reevaluate_view.xml",
"security/ir.model.access.csv",
"project_data.xml",
"project_view.xml",
@@ -46,7 +46,6 @@ work done on tasks, eso. It is able to render planning, order tasks, eso.
"project_installer.xml",
"res_partner_view.xml",
"report/project_report_view.xml",
- "wizard/project_close_task_view.xml",
"board_project_view.xml",
'board_project_manager_view.xml'
],
diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml
index 661a67f561d..c3b4b0c8000 100644
--- a/addons/project/board_project_view.xml
+++ b/addons/project/board_project_view.xml
@@ -78,17 +78,6 @@
tree,form[('type','=','Project')]
-
-
-
-
- Messages
- project.message
- form
- tree,form
-
-
-
board.project.formboard.board
diff --git a/addons/project/i18n/fr.po b/addons/project/i18n/fr.po
index 21e0b999cfe..6c10f457c6c 100644
--- a/addons/project/i18n/fr.po
+++ b/addons/project/i18n/fr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:15+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-09-02 07:22+0000\n"
+"Last-Translator: Quentin THEURET \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:40+0000\n"
+"X-Launchpad-Export-Date: 2010-09-03 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@@ -49,7 +49,7 @@ msgstr "Tâche projet"
#. module: project
#: model:process.transition,name:project.process_transition_opendonetask0
msgid "Open Done Task"
-msgstr "Ouvrir les tâches ouvertes"
+msgstr "Rouvrir les tâches terminées"
#. module: project
#: constraint:ir.actions.act_window:0
@@ -64,7 +64,7 @@ msgstr "Heures à Validé"
#. module: project
#: field:project.project,progress_rate:0
msgid "Progress"
-msgstr "Achevé"
+msgstr "Avancement"
#. module: project
#: help:config.compute.remaining,remaining_hours:0
@@ -79,7 +79,7 @@ msgstr ""
#. module: project
#: field:project.project,child_id:0
msgid "Subproject"
-msgstr "Sous projet"
+msgstr "Sous-projet"
#. module: project
#: field:project.project,members:0
@@ -114,7 +114,7 @@ msgstr ""
#. module: project
#: field:project.task,priority:0
msgid "Importance"
-msgstr "Important"
+msgstr "Priorité"
#. module: project
#: view:config.compute.remaining:0
@@ -276,7 +276,7 @@ msgstr "Tâche terminée"
#. module: project
#: model:process.node,note:project.process_node_donetask0
msgid "Task is Completed"
-msgstr "La tâche est complète"
+msgstr "La tâche est terminée"
#. module: project
#: model:process.transition,note:project.process_transition_delegate0
@@ -787,7 +787,7 @@ msgstr "Mois"
#. module: project
#: model:process.transition,note:project.process_transition_opendonetask0
msgid "When task is completed, it will come into the done state."
-msgstr "Quand une tâche est complète, elle deviendra dans l'état terminer"
+msgstr "Quand une tâche est complète, elle passera à l'état terminé"
#. module: project
#: field:project.task.work,date:0
@@ -1004,7 +1004,7 @@ msgstr "Fermer (sans mail)"
#. module: project
#: help:project.task.delegate,init,prefix:0
msgid "New title of your own task to validate the work done."
-msgstr "Nouveau titre de votre tâche pour valider le travail terminer."
+msgstr "Nouveau titre de votre tâche pour valider le travail effectué."
#. module: project
#: field:project.task,progress:0
@@ -1166,7 +1166,7 @@ msgstr "Date d'arrêt: %(date_stop)s"
#. module: project
#: field:project.project,date_end:0
msgid "Expected End"
-msgstr "Fin attendu"
+msgstr "Fin prévue"
#. module: project
#: model:process.node,note:project.process_node_taskbydelegate0
@@ -1216,7 +1216,7 @@ msgstr "Tableau de bord de projet"
#. module: project
#: model:ir.module.module,shortdesc:project.module_meta_information
msgid "Board for project users"
-msgstr ""
+msgstr "Tableau de bord pour les utilisateurs de projet"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_pipeline_user
@@ -1279,7 +1279,7 @@ msgstr "Mon pipeline"
#. module: project
#: view:board.board:0
msgid "My Timesheet"
-msgstr ""
+msgstr "Ma feuille de présence"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_tree_month
@@ -1428,7 +1428,7 @@ msgstr ""
#. module: project
#: field:report.task.user.pipeline.open,task_nbr:0
msgid "Task Number"
-msgstr ""
+msgstr "Numéro de tâche"
#. module: project
#: model:ir.model,name:project.model_report_timesheet_task_user
@@ -1448,7 +1448,7 @@ msgstr ""
#. module: project
#: model:ir.model,name:project.model_report_closed_task
msgid "Closed Task Report"
-msgstr ""
+msgstr "Rapport des tâches terminées"
#. module: project
#: field:report.timesheet.task.user,timesheet_hrs:0
@@ -1458,4 +1458,4 @@ msgstr ""
#. module: project
#: view:report.closed.task:0
msgid "Closed Tasks"
-msgstr ""
+msgstr "Tâches terminées"
diff --git a/addons/project/i18n/lt.po b/addons/project/i18n/lt.po
index 82240327948..5f872e25926 100644
--- a/addons/project/i18n/lt.po
+++ b/addons/project/i18n/lt.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:21+0000\n"
+"PO-Revision-Date: 2010-09-06 12:01+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/i18n/pt_BR.po b/addons/project/i18n/pt_BR.po
index e39cd3b3af0..a6196b26e5a 100644
--- a/addons/project/i18n/pt_BR.po
+++ b/addons/project/i18n/pt_BR.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: pt_BR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:20+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-09-01 06:55+0000\n"
+"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:41+0000\n"
+"X-Launchpad-Export-Date: 2010-09-02 03:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@@ -1183,35 +1183,35 @@ msgstr "Projetos em execução"
#. module: project
#: view:board.board:0
msgid "My project's planning"
-msgstr ""
+msgstr "Meu planejamento do projeto"
#. module: project
#: view:hr_timesheet_sheet.sheet:0
#: model:ir.actions.act_window,name:project.act_hr_timesheet_sheet
msgid "Timesheets"
-msgstr ""
+msgstr "Planilhas de Horas"
#. module: project
#: model:ir.actions.act_window,name:project.action_view_task_tree_deadline
msgid "My Task's Deadlines"
-msgstr ""
+msgstr "Meus prazos finais das tarefas"
#. module: project
#: view:board.board:0
#: model:ir.actions.act_window,name:project.action_view_board_note_tree
msgid "Public Notes"
-msgstr ""
+msgstr "Anotações Públicas"
#. module: project
#: model:ir.actions.act_window,name:project.open_board_project
#: model:ir.ui.menu,name:project.menu_board_project
msgid "Project Dashboard"
-msgstr ""
+msgstr "Painel de projeto"
#. module: project
#: model:ir.module.module,shortdesc:project.module_meta_information
msgid "Board for project users"
-msgstr ""
+msgstr "Quadro para usuários do projeto"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_pipeline_user
@@ -1221,50 +1221,50 @@ msgstr ""
#. module: project
#: view:board.board:0
msgid "My Planning"
-msgstr ""
+msgstr "Meu Planejamento"
#. module: project
#: view:board.board:0
#: model:ir.actions.act_window,name:project.act_my_account
msgid "My accounts to invoice"
-msgstr ""
+msgstr "Minhas contas a faturar"
#. module: project
#: model:ir.actions.act_window,name:project.open_board_project_manager
#: model:ir.ui.menu,name:project.menu_board_project_manager
msgid "Project Manager Dashboard"
-msgstr ""
+msgstr "Painel de Gerência de Projeto"
#. module: project
#: view:board.board:0
msgid "My Deadlines"
-msgstr ""
+msgstr "Meus Prazos Finais"
#. module: project
#: view:board.board:0
msgid "User's timesheets"
-msgstr ""
+msgstr "Planilha de horas do usuário"
#. module: project
#: view:board.board:0
msgid "Project manager board"
-msgstr ""
+msgstr "Quadro de Gestão do Projeto"
#. module: project
#: view:board.board:0
#: model:ir.actions.act_window,name:project.action_view_task_tree
msgid "My Open Tasks"
-msgstr ""
+msgstr "Minhas Tarefas Abertas"
#. module: project
#: view:board.board:0
msgid "My Board"
-msgstr ""
+msgstr "Meu Quadro"
#. module: project
#: view:board.board:0
msgid "My tasks board"
-msgstr ""
+msgstr "Meu quadro de tarefas"
#. module: project
#: view:board.board:0
@@ -1274,62 +1274,62 @@ msgstr ""
#. module: project
#: view:board.board:0
msgid "My Timesheet"
-msgstr ""
+msgstr "Minha Planilha de Horas"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_tree_month
#: model:ir.ui.menu,name:project.menu_project_task_tree_month
msgid "Tasks finished by project (this month)"
-msgstr ""
+msgstr "Tarefas concluídas por projeto (este mês)"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
#: model:ir.ui.menu,name:project.menu_project_task_user_tree
msgid "Tasks Closed by Project and User"
-msgstr ""
+msgstr "Tarefas Encerradas por Projeto e Usuário"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_user_tree_month
#: model:ir.ui.menu,name:project.menu_project_task_user_tree_month
msgid "Tasks finished by project and user (this month)"
-msgstr ""
+msgstr "Tarefas finalizadas por projeto e usuário (este mês)"
#. module: project
#: field:report.project.task,hours_effective:0
#: field:report.project.task.user,hours_effective:0
msgid "Effective Hours"
-msgstr ""
+msgstr "Horas efetivas"
#. module: project
#: model:ir.model,name:project.model_report_project_task_user
msgid "Tasks by user and project"
-msgstr ""
+msgstr "Tarefas por usuário e projeto"
#. module: project
#: field:report.project.task,task_closed:0
#: field:report.project.task.user,task_closed:0
msgid "Task Closed"
-msgstr ""
+msgstr "Tarefas Encerradas"
#. module: project
#: view:report.project.task:0
msgid "Tasks by Project"
-msgstr ""
+msgstr "Tarefas por Projeto"
#. module: project
#: model:ir.module.module,shortdesc:project.module_meta_information
msgid "Sales Management - Reporting"
-msgstr ""
+msgstr "Gerenciamento de Vendas - Relatório"
#. module: project
#: field:report.project.task.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Usuário"
#. module: project
#: view:report.project.task.user:0
msgid "Tasks by Project and User"
-msgstr ""
+msgstr "Tarefas por Projeto e Usuário"
#. module: project
#: model:ir.ui.menu,name:project.next_id_63
@@ -1339,19 +1339,19 @@ msgstr "Este mes"
#. module: project
#: view:report.project.task.user:0
msgid "Tasks by projects and users"
-msgstr ""
+msgstr "Tarefas por projeto e usuário"
#. module: project
#: field:report.project.task,closing_days:0
#: field:report.project.task.user,closing_days:0
msgid "Avg Closing Delay"
-msgstr ""
+msgstr "Atraso Médio no Encerramento"
#. module: project
#: model:ir.model,name:project.model_report_project_task
#: view:report.project.task:0
msgid "Tasks by project"
-msgstr ""
+msgstr "Tarefas por projeto"
#. module: project
#: field:report.project.task,hours_delay:0
@@ -1362,41 +1362,41 @@ msgstr ""
#. module: project
#: field:report.project.task,name:0 field:report.project.task.user,name:0
msgid "Month"
-msgstr ""
+msgstr "Mês"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task_tree
#: model:ir.ui.menu,name:project.menu_project_task_tree
msgid "Tasks Closed by Project"
-msgstr ""
+msgstr "Tarefas Encerradas por Projeto"
#. module: project
#: model:ir.actions.act_window,name:project.action_project_task
#: model:ir.ui.menu,name:project.menu_project_task_user_tree
#: view:report.task.user.pipeline.open:0
msgid "Tasks by User"
-msgstr ""
+msgstr "Tarefas por Usuário"
#. module: project
#: selection:report.task.user.pipeline.open,task_state:0
msgid "No Task"
-msgstr ""
+msgstr "Nenhuma tarefa"
#. module: project
#: model:ir.module.module,shortdesc:project.module_meta_information
msgid "Report on tasks by user for projects"
-msgstr ""
+msgstr "Relatório para projetos de tarefas por usuário"
#. module: project
#: model:ir.actions.act_window,name:project.action_report_timesheet_task_user
#: model:ir.ui.menu,name:project.menu_timesheet_task_user
msgid "Timesheet / Task Hours Per Month"
-msgstr ""
+msgstr "Planilha de Horas / Horas por Tarefa por Mês"
#. module: project
#: field:report.task.user.pipeline.open,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Empresa"
#. module: project
#: model:ir.ui.menu,name:project.next_id_57
@@ -1412,18 +1412,18 @@ msgstr ""
#. module: project
#: model:ir.actions.act_window,name:project.action_closed_task_board
msgid "Task Closed Within Past 15 Days"
-msgstr ""
+msgstr "Tarefas Encerradas a menos de 15 Dias"
#. module: project
#: field:report.task.user.pipeline.open,task_hrs:0
#: field:report.timesheet.task.user,task_hrs:0
msgid "Task Hours"
-msgstr ""
+msgstr "Horas-Tarefa"
#. module: project
#: field:report.task.user.pipeline.open,task_nbr:0
msgid "Task Number"
-msgstr ""
+msgstr "Número da Tarefa"
#. module: project
#: model:ir.model,name:project.model_report_timesheet_task_user
@@ -1433,24 +1433,24 @@ msgstr ""
#. module: project
#: view:report.timesheet.task.user:0
msgid "Timesheet/Task hours Report Per Month"
-msgstr ""
+msgstr "Relatório de Planilha de Horas/Horas-Tarefa por Mês"
#. module: project
#: field:report.task.user.pipeline.open,task_progress:0
msgid "Task Progress"
-msgstr ""
+msgstr "Progresso da Tarefa"
#. module: project
#: model:ir.model,name:project.model_report_closed_task
msgid "Closed Task Report"
-msgstr ""
+msgstr "Relatório de Tarefas Encerradas"
#. module: project
#: field:report.timesheet.task.user,timesheet_hrs:0
msgid "Timesheet Hours"
-msgstr ""
+msgstr "Quantidade de Horas da Planilha de Horas"
#. module: project
#: view:report.closed.task:0
msgid "Closed Tasks"
-msgstr ""
+msgstr "Tarefas Encerradas"
diff --git a/addons/project/i18n/ru.po b/addons/project/i18n/ru.po
index aa07eb4e397..d37050874cf 100644
--- a/addons/project/i18n/ru.po
+++ b/addons/project/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:19+0000\n"
+"PO-Revision-Date: 2010-09-06 10:24+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/i18n/tr.po b/addons/project/i18n/tr.po
index 76cc8427612..8e726932a79 100644
--- a/addons/project/i18n/tr.po
+++ b/addons/project/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:19+0000\n"
+"PO-Revision-Date: 2010-09-06 10:18+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/project.py b/addons/project/project.py
index ffba90d55c9..16d85ce1bd4 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -25,6 +25,7 @@ from datetime import datetime, date
from tools.translate import _
from osv import fields, osv
+from tools import email_send as email
class project_task_type(osv.osv):
_name = 'project.task.type'
@@ -171,7 +172,7 @@ class project(osv.osv):
'planned_hours': fields.function(_progress_rate, multi="progress", method=True, string='Planned Time', help="Sum of planned hours of all tasks related to this project and its child projects."),
'effective_hours': fields.function(_progress_rate, multi="progress", method=True, string='Time Spent', help="Sum of spent hours of all tasks related to this project and its child projects."),
'total_hours': fields.function(_progress_rate, multi="progress", method=True, string='Total Time', help="Sum of total hours of all tasks related to this project and its child projects."),
- 'progress_rate': fields.function(_progress_rate, multi="progress", method=True, string='Progress', type='float', help="Percent of tasks closed according to the total of tasks todo."),
+ 'progress_rate': fields.function(_progress_rate, multi="progress", method=True, string='Progress', type='float', group_operator="avg", help="Percent of tasks closed according to the total of tasks todo."),
'warn_customer': fields.boolean('Warn Partner', help="If you check this, the user will have a popup when closing a task that propose a message to send by email to the customer.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
@@ -427,7 +428,7 @@ class task(osv.osv):
'effective_hours': fields.function(_hours_get, method=True, string='Hours Spent', multi='hours', store=True, help="Computed using the sum of the task work done."),
'remaining_hours': fields.float('Remaining Hours', digits=(16,2), help="Total remaining time, can be re-estimated periodically by the assignee of the task."),
'total_hours': fields.function(_hours_get, method=True, string='Total Hours', multi='hours', store=True, help="Computed as: Time Spent + Remaining Time."),
- 'progress': fields.function(_hours_get, method=True, string='Progress (%)', multi='hours', store=True, help="Computed as: Time Spent / Total Time."),
+ 'progress': fields.function(_hours_get, method=True, string='Progress (%)', multi='hours', group_operator="avg", store=True, help="Computed as: Time Spent / Total Time."),
'delay_hours': fields.function(_hours_get, method=True, string='Delay Hours', multi='hours', store=True, help="Computed as difference of the time estimated by the project manager and the real time to close the task."),
'user_id': fields.many2one('res.users', 'Assigned to'),
@@ -486,18 +487,17 @@ class task(osv.osv):
res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
return res
- def do_close(self, cr, uid, ids, *args):
- mail_send = False
- mod_obj = self.pool.get('ir.model.data')
+ def do_close(self, cr, uid, ids, context=None):
+ """
+ Close Task
+ """
+ if context is None:
+ context = {}
request = self.pool.get('res.request')
- tasks = self.browse(cr, uid, ids)
- task_id = ids[0]
- cntx = {}
- if len(args):
- cntx = args[0]
- for task in tasks:
+ for task in self.browse(cr, uid, ids, context=context):
project = task.project_id
if project:
+ # Send request to project manager
if project.warn_manager and project.user_id and (project.user_id.id != uid):
request.create(cr, uid, {
'name': _("Task '%s' closed") % task.name,
@@ -508,12 +508,7 @@ class task(osv.osv):
'ref_doc1': 'project.task,%d'% (task.id,),
'ref_doc2': 'project.project,%d'% (project.id,),
})
- elif (project.warn_manager or project.warn_customer) and cntx.get('mail_send',True):
- cntx.update({'send_manager': project.warn_manager, 'send_partner': project.warn_customer})
- mail_send = True
- message = _('Task ') + " '" + task.name + "' "+ _("is Done.")
- self.log(cr, uid, task.id, message)
-
+
for parent_id in task.parent_ids:
if parent_id.state in ('pending','draft'):
reopen = True
@@ -522,29 +517,16 @@ class task(osv.osv):
reopen = False
if reopen:
self.do_reopen(cr, uid, [parent_id.id])
- if mail_send:
- model_data_ids = mod_obj.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_project_close_task')])
- resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id']
- cntx.update({'task_id': task_id})
- return {
- 'name': _('Email Send to Customer'),
- 'view_type': 'form',
- 'context': cntx, # improve me
- 'view_mode': 'tree,form',
- 'res_model': 'close.task',
- 'views': [(resource_id,'form')],
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- 'nodestroy': True
- }
- else:
- self.write(cr, uid, [task_id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
- return False
+ self.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
+ message = _('Task ') + " '" + task.name + "' "+ _("is Done.")
+ self.log(cr, uid, task.id, message)
+ return True
- def do_reopen(self, cr, uid, ids, *args):
+ def do_reopen(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
request = self.pool.get('res.request')
- tasks = self.browse(cr, uid, ids)
- for task in tasks:
+ for task in self.browse(cr, uid, ids, context=context):
project = task.project_id
if project and project.warn_manager and project.user_id.id and (project.user_id.id != uid):
request.create(cr, uid, {
@@ -592,6 +574,40 @@ class task(osv.osv):
self.write(cr, uid, ids, {'state': 'draft'})
return True
+ def do_delegate(self, cr, uid, task_id, delegate_data={}, context=None):
+ """
+ Delegate Task to another users.
+ """
+ if context is None:
+ context = {}
+ task = self.browse(cr, uid, task_id, context=context)
+ new_task_id = self.copy(cr, uid, task.id, {
+ 'name': delegate_data['name'],
+ 'user_id': delegate_data['user_id'],
+ 'planned_hours': delegate_data['planned_hours'],
+ 'remaining_hours': delegate_data['planned_hours'],
+ 'parent_ids': [(6, 0, [task.id])],
+ 'state': 'draft',
+ 'description': delegate_data['new_task_description'] or '',
+ 'child_ids': [],
+ 'work_ids': []
+ }, context)
+ newname = delegate_data['prefix'] or ''
+ self.write(cr, uid, [task.id], {
+ 'remaining_hours': delegate_data['planned_hours_me'],
+ 'planned_hours': delegate_data['planned_hours_me'] + (task.effective_hours or 0.0),
+ 'name': newname,
+ }, context)
+ if delegate_data['state'] == 'pending':
+ self.do_pending(cr, uid, [task.id], context)
+ else:
+ self.do_close(cr, uid, [task.id], context)
+ user_pool = self.pool.get('res.users')
+ delegrate_user = user_pool.browse(cr, uid, delegate_data['user_id'], context=context)
+ message = _('Task ') + " '" + delegate_data['name'] + "' "+ _("is Delegated to User:") +" '"+ delegrate_user.name +"' "
+ self.log(cr, uid, task.id, message)
+ return True
+
def do_pending(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'pending'})
for (id, name) in self.name_get(cr, uid, ids):
@@ -691,105 +707,6 @@ class project_work(osv.osv):
project_work()
-class config_compute_remaining(osv.osv_memory):
- _name='config.compute.remaining'
-
- def _get_remaining(self,cr, uid, context=None):
- if context and 'active_id' in context:
- return self.pool.get('project.task').browse(cr, uid, context['active_id'], context=context).remaining_hours
- return False
-
- _columns = {
- 'remaining_hours' : fields.float('Remaining Hours', digits=(16,2), help="Put here the remaining hours required to close the task."),
- }
-
- _defaults = {
- 'remaining_hours': _get_remaining
- }
-
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- users_obj = self.pool.get('res.users')
- obj_tm = users_obj.browse(cr, uid, uid, context).company_id.project_time_mode_id
- tm = obj_tm and obj_tm.name or 'Hours'
-
- res = super(config_compute_remaining, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
-
- if tm in ['Hours','Hour']:
- return res
-
- eview = etree.fromstring(res['arch'])
-
- def _check_rec(eview):
- if eview.attrib.get('widget','') == 'float_time':
- eview.set('widget','float')
- for child in eview:
- _check_rec(child)
- return True
-
- _check_rec(eview)
-
- res['arch'] = etree.tostring(eview)
-
- for f in res['fields']:
- if 'Hours' in res['fields'][f]['string']:
- res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
- return res
-
- def compute_hours(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
- task_obj = self.pool.get('project.task')
- request = self.pool.get('res.request')
- if 'active_id' in context:
- remaining_hrs = self.browse(cr,uid,ids)[0].remaining_hours
- task_obj.write(cr,uid,context['active_id'],{'remaining_hours':remaining_hrs})
- if context.get('button_reactivate', False):
- tasks = task_obj.browse(cr, uid, [context['active_id']], context=context)
- for task in tasks:
- project = task.project_id
- if project and project.warn_manager and project.user_id.id and (project.user_id.id != uid):
- request.create(cr, uid, {
- 'name': _("Task '%s' set in progress") % task.name,
- 'state': 'waiting',
- 'act_from': uid,
- 'act_to': project.user_id.id,
- 'ref_partner_id': task.partner_id.id,
- 'ref_doc1': 'project.task,%d' % task.id,
- 'ref_doc2': 'project.project,%d' % project.id,
- })
- task_obj.write(cr, uid, [task.id], {'state': 'open'})
- return {
- 'type': 'ir.actions.act_window_close',
- }
-
-config_compute_remaining()
-
-class message(osv.osv):
- _name = "project.message"
- _description = "Message"
-
- _columns = {
- 'subject': fields.char('Subject', size=128, required="True"),
- 'project_id': fields.many2one('project.project', 'Project', ondelete='cascade'),
- 'date': fields.date('Date', required=1),
- 'user_id': fields.many2one('res.users', 'User', required="True"),
- 'description': fields.text('Description'),
- }
-
- def _default_project(self, cr, uid, context=None):
- if context is None:
- context = {}
- if 'project_id' in context and context['project_id']:
- return int(context['project_id'])
- return False
-
- _defaults = {
- 'user_id': lambda self,cr,uid,ctx: uid,
- 'date': time.strftime('%Y-%m-%d'),
- 'project_id': _default_project
- }
-
-message()
class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml
index a8593bca9b8..e365d095a20 100644
--- a/addons/project/project_demo.xml
+++ b/addons/project/project_demo.xml
@@ -254,15 +254,5 @@
Latest in house tests
-
-
-
- Follow the procedure of Configuration wizard.
-- Add all required modules
-- Add chat of accounts
-- Create Users
- Configuration steps
-
-
diff --git a/addons/project/project_installer.xml b/addons/project/project_installer.xml
index 320b3302241..56064158683 100644
--- a/addons/project/project_installer.xml
+++ b/addons/project/project_installer.xml
@@ -7,7 +7,7 @@
form
-
+
Project Modules Configuration
@@ -15,24 +15,24 @@
Project Management
-
-
+
+
- Various OpenERP applications are available to manage your projects with different level of control and flexibility.
+ Various OpenERP applications are available to manage your projects with different level of control and flexibility.
- Configure
+ Configure
-
+
-
+
@@ -54,17 +54,5 @@
3
-
- ir.actions.todo
- project_installer_action_replace
- tree
-
-
-
-
-
-
-
-
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 154c2f28935..421729ccda5 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -109,7 +109,7 @@
-
+
@@ -189,33 +189,6 @@
-
-
-
-
- Compute Remaining Hours
- ir.actions.act_window
- config.compute.remaining
- form
- form
- new
-
-
project.task.form
@@ -244,7 +217,7 @@
-
+
@@ -263,10 +236,10 @@
-
+
-
+
@@ -343,7 +316,7 @@
-
+
@@ -421,7 +394,7 @@
-
+
@@ -564,82 +537,7 @@ Issues like bugs in a system, client complain, materials breakdown are collected
-
-
-
- project.message.form
- project.message
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- project.message.tree
- project.message
- tree
-
-
-
-
-
-
-
-
-
-
-
- project.message.search
- project.message
- search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Messages
- project.message
- form
- tree,form
-
- {"search_default_project_id":project_id, "search_default_user_id":uid}
-
- An in-project messagery system permits an efficient and trackable communication between project members. The messages are kept in the system and can then be used for post-analysis.
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index 06ad777069e..b9c22faee8b 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -33,7 +33,6 @@ class report_project_task_user(osv.osv):
'user_id': fields.many2one('res.users', 'Assigned To', readonly=True),
'date_start': fields.date('Starting Date',readonly=True),
'no_of_days': fields.integer('# of Days', size=128, readonly=True),
- 'description': fields.text('Description', readonly=True),
'date_end': fields.date('Ending Date', readonly=True),
'date_deadline': fields.date('Deadline', readonly=True),
'project_id': fields.many2one('project.project', 'Project', readonly=True),
@@ -41,7 +40,7 @@ class report_project_task_user(osv.osv):
'hours_effective': fields.float('Effective Hours', readonly=True),
'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True),
'remaining_hours': fields.float('Remaining Hours', readonly=True),
- 'progress': fields.float('Progress', readonly=True),
+ 'progress': fields.float('Progress', readonly=True, group_operator='avg'),
'total_hours': fields.float('Total Hours', readonly=True),
'closing_days': fields.float('Days to Close', digits=(16,2), readonly=True, group_operator="avg",
help="Number of Days to close the task"),
diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv
index 1a1a3f09daa..cdd939c79ec 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -1,15 +1,14 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_project_project_manager","project.project manager","model_project_project","project.group_project_manager",1,0,0,0
+"access_project_project_manager","project.project manager","model_project_project","project.group_project_manager",1,1,1,1
"access_account_analytic_account_manager","account.analytic.account","analytic.model_account_analytic_account","project.group_project_manager",1,0,0,0
"access_project_project","project.project","model_project_project","project.group_project_user",1,1,1,1
"access_account_analytic_account","account.analytic.account","analytic.model_account_analytic_account","project.group_project_user",1,1,1,1
"access_project_task_type_user","project.task.type user","model_project_task_type","project.group_project_user",1,1,1,1
"access_project_task_type","project.task.type","model_project_task_type","project.group_project_manager",1,1,1,1
-"access_project_task_manager","project.task manager","model_project_task","project.group_project_manager",1,0,0,0
+"access_project_task_manager","project.task manager","model_project_task","project.group_project_manager",1,1,1,1
"access_project_task","project.task","model_project_task","project.group_project_user",1,1,1,1
"access_project_task_work","project.task.work","model_project_task_work","project.group_project_user",1,1,1,1
"access_project_task_work_manager","project.task.work.manager","model_project_task_work","project.group_project_manager",1,1,1,1
-"access_project_message","project.message","model_project_message","project.group_project_user",1,1,1,1
"access_report_project_task_user","report.project.task.user","model_report_project_task_user","project.group_project_manager",1,1,1,1
"access_project_vs_hours","project.vs.hours","model_project_vs_hours","project.group_project_user",1,1,1,1
"access_task_by_days","task.by.days","model_task_by_days","project.group_project_user",1,1,1,1
@@ -19,8 +18,6 @@
"access_partner_address_task manager","base.res.partner.address manager","base.model_res_partner_address","project.group_project_manager",1,0,0,0
"access_task_on_partner","project.task on partners","model_project_task","base.group_user",1,0,0,0
"access_project_on_partner","project.project on partners","model_project_project","base.group_user",1,0,0,0
-"access_project_message_manager","project.message manager","model_project_message","project.group_project_manager",1,0,0,0
-"access_project_message_system","project.message system","model_project_message","base.group_system",1,0,0,0
"access_project_task_system","project.task system","model_project_task","base.group_system",1,0,0,0
"access_project_project_system","project.project system","model_project_project","base.group_system",1,1,1,1
"access_project_task_work_system","project.task.work system","model_project_task_work","base.group_system",1,0,0,0
diff --git a/addons/project/test/test_project.yml b/addons/project/test/test_project.yml
index 8cb3dbb7692..d57cc274366 100644
--- a/addons/project/test/test_project.yml
+++ b/addons/project/test/test_project.yml
@@ -51,7 +51,6 @@
new_prj = self.read(cr, uid, [new_id], ['name', 'state'])[0]
state = new_prj['state']
name = new_prj['name']
- print "Project '%s' created"%name
assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state
-
Reset project template to normal project
@@ -122,12 +121,12 @@
-
Now in order to reactivate the task 'Technical Training', i click on the "Reactivate" button and fill the remaining hour field
-
- !record {model: config.compute.remaining, id: project_task_technicaltraining_remainingwiz0}:
+ !record {model: project.task.reevaluate, id: project_task_technicaltraining_remainingwiz0}:
remaining_hours: 30.0
- |
I click the apply button
-
- !python {model: config.compute.remaining}: |
+ !python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref('project_task_technicaltraining_remainingwiz0')], {'active_id': ref("project_task_technicaltraining0"),'button_reactivate': True})
- |
Check if task 'Technical Training' in open state and for other initial values
@@ -142,7 +141,7 @@
-
Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours
-
- !record {model: project.task, id: project_task_technicaltraining0}:
+ !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
work_ids:
- date: '2010-05-31 15:04:22'
hours: 10.0
@@ -159,7 +158,7 @@
-
Make a work task entry 'Training on OpenERP xml views' of 10 hours
-
- !record {model: project.task, id: project_task_technicaltraining0}:
+ !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
work_ids:
- date: '2010-06-01 15:04:46'
hours: 10.0
@@ -176,7 +175,7 @@
-
Make a work task entry 'Training on workflows' of 10 hours
-
- !record {model: project.task, id: project_task_technicaltraining0}:
+ !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
work_ids:
- date: '2010-06-02 15:05:24'
hours: 10.0
@@ -193,12 +192,12 @@
-
Set remaining hours of 10 hours for reevaluating the task
-
- !record {model: config.compute.remaining, id: config_compute_remaining_0}:
+ !record {model: project.task.reevaluate, id: config_compute_remaining_0}:
remaining_hours: 10.0
-
Reevaluate the task
-
- !python {model: config.compute.remaining}: |
+ !python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref("config_compute_remaining_0")], {"lang": "en_US",
"project_id": False, "tz": False, "active_model": "project.task", "search_default_project_id":
False, "search_default_user_id": 1, "search_default_current": 1, "active_ids":
@@ -216,7 +215,7 @@
-
Make a work task entry 'Training on reports and wizards' of 10 hours
-
- !record {model: project.task, id: project_task_technicaltraining0}:
+ !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
work_ids:
- date: '2010-05-31 15:08:40'
hours: 10.0
@@ -248,12 +247,12 @@
-
Reactivate task
-
- !record {model: config.compute.remaining, id: config_compute_remaining_1}:
+ !record {model: project.task.reevaluate, id: config_compute_remaining_1}:
remaining_hours: 10.0
-
Reevaluate the task with 10 hours remaining
-
- !python {model: config.compute.remaining}: |
+ !python {model: project.task.reevaluate}: |
self.compute_hours(cr, uid, [ref("config_compute_remaining_1")], {"lang": "en_US",
"project_id": False, "tz": False, "button_reactivate": True, "active_model":
"project.task", "search_default_project_id": False, "search_default_user_id":
@@ -271,7 +270,7 @@
-
Make a work task entry 'Training on yml' of 5 hours
-
- !record {model: project.task, id: project_task_technicaltraining0}:
+ !record {model: project.task, id: project_task_technicaltraining0, context: {'withoutemployee': True}}:
work_ids:
- date: '2010-05-31 16:55:27'
hours: 5.0
diff --git a/addons/project/test/test_project_delegation.yml b/addons/project/test/test_project_delegation.yml
index 97d6b26519c..f86f488dee7 100644
--- a/addons/project/test/test_project_delegation.yml
+++ b/addons/project/test/test_project_delegation.yml
@@ -61,7 +61,7 @@
Validating the delegate task
-
!python {model: project.task.delegate}: |
- self.validate(cr, uid, [ref("project_task_publish_book_delegate")],
+ self.delegate(cr, uid, [ref("project_task_publish_book_delegate")],
{"lang": "en_US", "active_model": "project.task", "tz": False, "record_id":
4, "active_ids": [ref("project_task_publish_book")], "active_id": ref("project_task_publish_book"),
})
@@ -227,4 +227,4 @@
Parent task 'Develop book for Technical and Functional reference' must be now in open state
-
!assert {model: project.task, id: project_task_documentation_book, severity: error, string: Task is in done state}:
- - state == "open"
\ No newline at end of file
+ - state == "open"
diff --git a/addons/project/wizard/__init__.py b/addons/project/wizard/__init__.py
index 618eecf4b62..69e1051e621 100644
--- a/addons/project/wizard/__init__.py
+++ b/addons/project/wizard/__init__.py
@@ -19,8 +19,9 @@
#
##############################################################################
-import project_close_task
+import project_task_close
import project_task_delegate
+import project_task_reevaluate
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/wizard/project_close_task.py b/addons/project/wizard/project_close_task.py
deleted file mode 100644
index eb5589f2e3a..00000000000
--- a/addons/project/wizard/project_close_task.py
+++ /dev/null
@@ -1,133 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero 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 Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import time
-
-from osv import fields, osv
-from tools.translate import _
-from tools import email_send as email
-
-class project_close_task(osv.osv_memory):
- """
- Close Task
- """
- _name = "close.task"
- _description = "Project Close Task"
- _columns = {
- 'manager_email': fields.char('Manager E-Mail ID', size=64, help="Email Address of Project's Manager"),
- 'partner_email': fields.char('Partner E-Mail ID', size=64, help="Email Address of Partner"),
- 'description': fields.text('Description'),
- }
-
- def _get_manager_email(self, cr, uid, context=None):
- if context is None:
- context = {}
- email = ''
- if context.get('send_manager', False) and ('task_id' in context):
- project_id = self.pool.get('project.task').read(cr, uid, context['task_id'], ['project_id'])['project_id'][0]
- project = self.pool.get('project.project').browse(cr, uid, project_id)
- manager_id = project.user_id or False
- if manager_id and manager_id.user_email:
- email = manager_id.user_email
- return email
-
- def _get_partner_email(self, cr, uid, context=None):
- if context is None:
- context = {}
- email = ''
- if context.get('send_partner', False) and ('task_id' in context):
- task = self.pool.get('project.task').browse(cr, uid, context['task_id'])
- partner_id = task.partner_id or task.project_id.partner_id
- if partner_id and len(partner_id.address) and partner_id.address[0].email:
- email = partner_id.address[0].email
- return email
-
- def _get_desc(self, cr, uid, context=None):
- if context is None:
- context = {}
- if 'task_id' in context:
- task = self.pool.get('project.task').browse(cr, uid, context['task_id'])
- return task.description or task.name
- return ''
-
- _defaults = {
- 'manager_email': _get_manager_email,
- 'partner_email': _get_partner_email,
- 'description': _get_desc,
- }
-
- def close(self, cr, uid, ids, context=None):
- if 'task_id' in context:
- self.pool.get('project.task').write(cr, uid, [context['task_id']], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
- return {}
-
- def confirm(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
- if not 'task_id' in context:
- return {}
- close_task = self.read(cr, uid, ids[0], [])
- to_adr = []
- description = close_task['description']
-
- if 'task_id' in context:
- if context.get('send_manager', False) and not close_task.get('manager_email', False):
- raise osv.except_osv(_('Error'), _("Please specify the email address of Project Manager."))
-
- elif context.get('send_partner', False) and not close_task.get('partner_email', False):
- raise osv.except_osv(_('Error'), _("Please specify the email address of partner."))
-
- else:
- task_obj = self.pool.get('project.task')
- task = task_obj.browse(cr, uid, context['task_id'], context=context)
- project = task.project_id
- subject = "Task '%s' closed" % task.name
- if task.user_id and task.user_id.address_id and task.user_id.address_id.email:
- from_adr = task.user_id.address_id.email
- signature = task.user_id.signature
- else:
- raise osv.except_osv(_('Error'), _("Couldn't send mail because your email address is not configured!"))
- val = {
- 'name': task.name,
- 'user_id': task.user_id.name,
- 'task_id': "%d/%d" % (project.id, task.id),
- 'date_start': task.date_start,
- 'date_end': task.date_end,
- 'state': task.state
- }
-
- header = (project.warn_header or '') % val
- footer = (project.warn_footer or '') % val
- body = u'%s\n%s\n%s\n\n-- \n%s' % (header, description, footer, signature)
- to_adr.append(context.get('send_manager', '') and close_task.get('manager_email', '') or '')
- to_adr.append(context.get('send_partner', '') and close_task.get('partner_email', '') or '')
- mail_id = email(from_adr, to_adr, subject, body.encode('utf-8'), email_bcc=[from_adr])
- if not mail_id:
- raise osv.except_osv(_('Error'), _("Couldn't send mail! Check the email ids and smtp configuration settings"))
- task_obj.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
- message = _('Task ') + " '" + task.name + "' "+ _("is Done.")
- self.log(cr, uid, task.id, message)
-
- return {}
-
-project_close_task()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/wizard/project_close_task_view.xml b/addons/project/wizard/project_close_task_view.xml
deleted file mode 100644
index 37b6646232a..00000000000
--- a/addons/project/wizard/project_close_task_view.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
- Project Close Task
- close.task
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Close Task
- ir.actions.act_window
- close.task
- form
- form
-
- {'record_id' : active_id}
- new
-
-
-
-
diff --git a/addons/project/wizard/project_task_close.py b/addons/project/wizard/project_task_close.py
new file mode 100644
index 00000000000..99b6caef308
--- /dev/null
+++ b/addons/project/wizard/project_task_close.py
@@ -0,0 +1,126 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import time
+
+from osv import fields, osv
+from tools.translate import _
+from tools import email_send as email
+
+class project_task_close(osv.osv_memory):
+ """
+ Close Task
+ """
+ _name = "project.task.close"
+ _description = "Project Close Task"
+ _columns = {
+ 'manager_warn': fields.boolean("Warn Manager", help="Warn Manager by Email"),
+ 'partner_warn': fields.boolean("Warn Customer", help="Warn Customer by Email"),
+ 'manager_email': fields.char('Manager Email', size=128, help="Email Address of Project's Manager"),
+ 'partner_email': fields.char('Customer Email', size=128, help="Email Address of Customer"),
+ 'description': fields.text('Description'),
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ This function gets default values
+ """
+ if context is None:
+ context = {}
+ record_id = context and context.get('active_id', False) or False
+ task_pool = self.pool.get('project.task')
+ project_pool = self.pool.get('project.project')
+
+ res = super(project_task_close, self).default_get(cr, uid, fields, context=context)
+ task = task_pool.browse(cr, uid, record_id, context=context)
+ project = task.project_id
+ manager = project.user_id or False
+ partner = task.partner_id or task.project_id.partner_id
+
+ if 'description' in fields:
+ res.update({'description': task.description})
+ if 'manager_warn' in fields:
+ res.update({'manager_warn': project.warn_manager})
+ if 'partner_warn' in fields:
+ res.update({'partner_warn': project.warn_customer})
+ if 'manager_email' in fields:
+ res.update({'manager_email': manager and manager.user_email or False})
+ if partner and len(partner.address) and 'partner_email' in fields:
+ res.update({'partner_email': partner.address[0].email})
+ return res
+
+ def done(self, cr, uid, ids, context=None):
+ task_pool = self.pool.get('project.task')
+ task_id = context.get('active_id', False)
+ res = task_pool.do_close(cr, uid, [task_id], context=context)
+ return res
+
+ def confirm(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
+ task_pool = self.pool.get('project.task')
+ task_id = context.get('active_id', False)
+ if not task_id:
+ return {}
+ task = task_pool.browse(cr, uid, task_id, context=context)
+ for data in self.browse(cr, uid, ids, context=context):
+ res = task_pool.do_close(cr, uid, [task.id], context=context)
+ if res:
+ # Send Warn Message by Email to Manager and Customer
+ if data.manager_warn and not data.manager_email:
+ raise osv.except_osv(_('Error'), _("Please specify the email address of Project Manager."))
+
+ elif data.partner_warn and not data.partner_email:
+ raise osv.except_osv(_('Error'), _("Please specify the email address of Customer."))
+
+ elif data.manager_warn or data.partner_warn:
+ project = task.project_id
+ subject = _("Task '%s' Closed") % task.name
+ if task.user_id and task.user_id.address_id and task.user_id.address_id.email:
+ from_adr = task.user_id.address_id.email
+ signature = task.user_id.signature
+ else:
+ raise osv.except_osv(_('Error'), _("Couldn't send mail because your email address is not configured!"))
+ val = {
+ 'name': task.name,
+ 'user_id': task.user_id.name,
+ 'task_id': "%d/%d" % (project.id, task.id),
+ 'date_start': task.date_start,
+ 'date_end': task.date_end,
+ 'state': task.state
+ }
+
+ header = (project.warn_header or '') % val
+ footer = (project.warn_footer or '') % val
+ body = u'%s\n%s\n%s\n\n-- \n%s' % (header, description, footer, signature)
+ if data.manager_warn and data.manager_email:
+ to_adr.append(data.manager_email)
+ if data.partner_warn and data.partner_email:
+ to_adr.append(data.partner_email)
+ mail_id = email(from_adr, to_adr, subject, tools.ustr(body), email_bcc=[from_adr])
+ if not mail_id:
+ raise osv.except_osv(_('Error'), _("Couldn't send mail! Check the email ids and smtp configuration settings"))
+ return {}
+
+project_task_close()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/wizard/project_task_close_view.xml b/addons/project/wizard/project_task_close_view.xml
new file mode 100644
index 00000000000..9692fe9a733
--- /dev/null
+++ b/addons/project/wizard/project_task_close_view.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+ Done Task
+ project.task.close
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Done Task
+ ir.actions.act_window
+ project.task.close
+ form
+ form
+
+ new
+
+
+
+
diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py
index 535d527f45b..2ce74ceefc8 100644
--- a/addons/project/wizard/project_task_delegate.py
+++ b/addons/project/wizard/project_task_delegate.py
@@ -38,67 +38,54 @@ class project_task_delegate(osv.osv_memory):
'state': fields.selection([('pending','Pending'), ('done','Done'), ], 'Validation State', required=True, help="New state of your own task. Pending will be reopened automatically when the delegated task is closed")
}
- def _get_name(self, cr, uid, context=None):
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ This function gets default values
+ """
+ res = super(project_task_delegate, self).default_get(cr, uid, fields, context=context)
if context is None:
context = {}
- if 'active_id' in context:
- task = self.pool.get('project.task').browse(cr, uid, context['active_id'])
+ record_id = context and context.get('active_id', False) or False
+ task_pool = self.pool.get('project.task')
+ task = task_pool.browse(cr, uid, record_id, context=context)
+ project = task.project_id
+ manager = project.user_id or False
+ partner = task.partner_id or task.project_id.partner_id
+
+ if 'name' in fields:
if task.name.startswith(_('CHECK: ')):
newname = str(task.name).replace(_('CHECK: '), '')
else:
newname = task.name or ''
- return newname
- return ''
-
- def _get_plan_hour(self, cr, uid, context=None):
- if context is None:
- context = {}
- if 'active_id' in context:
- task = self.pool.get('project.task').browse(cr, uid, context['active_id'])
- return task.remaining_hours
- return 0.0
-
- def _get_prefix(self, cr, uid, context=None):
- if context is None:
- context = {}
- if 'active_id' in context:
- task = self.pool.get('project.task').browse(cr, uid, context['active_id'])
+ res.update({'name': newname})
+ if 'planned_hours' in fields:
+ res.update({'planned_hours': task.remaining_hours or 0.0})
+ if 'prefix' in fields:
if task.name.startswith(_('CHECK: ')):
newname = str(task.name).replace(_('CHECK: '), '')
else:
newname = task.name or ''
- return _('CHECK: ') + newname
- return ''
+ prefix = _('CHECK: ') + newname
+ res.update({'prefix': prefix})
+ if 'new_task_description' in fields:
+ res.update({'new_task_description': task.description})
+ return res
- def _get_new_desc(self, cr, uid, context=None):
- if context is None:
- context = {}
- if 'active_id' in context:
- task = self.pool.get('project.task').browse(cr, uid, context['active_id'])
- return task.description
- return ''
_defaults = {
- 'name': _get_name,
- 'planned_hours': _get_plan_hour,
'planned_hours_me': 1.0,
- 'prefix': _get_prefix,
- 'new_task_description': _get_new_desc,
'state': 'pending',
}
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- users_obj = self.pool.get('res.users')
- obj_tm = users_obj.browse(cr, uid, uid, context).company_id.project_time_mode_id
- tm = obj_tm and obj_tm.name or 'Hours'
-
res = super(project_task_delegate, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
-
+ users_pool = self.pool.get('res.users')
+ obj_tm = users_pool.browse(cr, uid, uid, context).company_id.project_time_mode_id
+ tm = obj_tm and obj_tm.name or 'Hours'
if tm in ['Hours','Hour']:
return res
eview = etree.fromstring(res['arch'])
-
def _check_rec(eview):
if eview.attrib.get('widget','') == 'float_time':
eview.set('widget','float')
@@ -107,47 +94,19 @@ class project_task_delegate(osv.osv_memory):
return True
_check_rec(eview)
-
res['arch'] = etree.tostring(eview)
-
- for f in res['fields']:
- if 'Hours' in res['fields'][f]['string']:
- res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
-
+ for field in res['fields']:
+ if 'Hours' in res['fields'][field]['string']:
+ res['fields'][field]['string'] = res['fields'][field]['string'].replace('Hours',tm)
return res
- def validate(self, cr, uid, ids, context=None):
+ def delegate(self, cr, uid, ids, context=None):
if context is None:
context = {}
- task_obj = self.pool.get('project.task')
- user_obj = self.pool.get('res.users')
+ task_id = context.get('active_id', False)
+ task_pool = self.pool.get('project.task')
delegate_data = self.read(cr, uid, ids, context=context)[0]
- task = task_obj.browse(cr, uid, context['active_id'], context=context)
- newname = delegate_data['prefix'] or ''
- new_task_id = task_obj.copy(cr, uid, task.id, {
- 'name': delegate_data['name'],
- 'user_id': delegate_data['user_id'],
- 'planned_hours': delegate_data['planned_hours'],
- 'remaining_hours': delegate_data['planned_hours'],
- 'parent_ids': [(6, 0, [task.id])],
- 'state': 'draft',
- 'description': delegate_data['new_task_description'] or '',
- 'child_ids': [],
- 'work_ids': []
- }, context)
- task_obj.write(cr, uid, [task.id], {
- 'remaining_hours': delegate_data['planned_hours_me'],
- 'planned_hours': delegate_data['planned_hours_me'] + (task.effective_hours or 0.0),
- 'name': newname,
- }, context)
- if delegate_data['state'] == 'pending':
- task_obj.do_pending(cr, uid, [task.id], context)
- else:
- context.update({'mail_send': False} )
- task_obj.do_close(cr, uid, [task.id], context)
- delegrate_user = user_obj.browse(cr, uid, delegate_data['user_id'], context=context)
- message = _('Task ') + " '" + delegate_data['name'] + "' "+ _("is Delegated to User:") +" '"+ delegrate_user.name +"' "
- self.log(cr, uid, task.id, message)
+ task_pool.do_delegate(cr, uid, task_id, delegate_data, context=context)
return {}
project_task_delegate()
diff --git a/addons/project/wizard/project_task_delegate_view.xml b/addons/project/wizard/project_task_delegate_view.xml
index 68ebb1692d2..7bedecd8f53 100644
--- a/addons/project/wizard/project_task_delegate_view.xml
+++ b/addons/project/wizard/project_task_delegate_view.xml
@@ -8,25 +8,25 @@
form
diff --git a/addons/project/wizard/project_task_reevaluate.py b/addons/project/wizard/project_task_reevaluate.py
new file mode 100644
index 00000000000..e4e2fab66e3
--- /dev/null
+++ b/addons/project/wizard/project_task_reevaluate.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from lxml import etree
+from osv import fields, osv
+from tools.translate import _
+
+class project_task_reevaluate(osv.osv_memory):
+ _name = 'project.task.reevaluate'
+
+ def _get_remaining(self,cr, uid, context=None):
+ if context is None:
+ context = {}
+ active_id = context.get('active_id', False)
+ res = False
+ if active_id:
+ res = self.pool.get('project.task').browse(cr, uid, active_id, context=context).remaining_hours
+ return res
+
+ _columns = {
+ 'remaining_hours' : fields.float('Remaining Hours', digits=(16,2), help="Put here the remaining hours required to close the task."),
+ }
+
+ _defaults = {
+ 'remaining_hours': _get_remaining,
+ }
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ res = super(project_task_reevaluate, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
+ users_pool = self.pool.get('res.users')
+ time_mode = users_pool.browse(cr, uid, uid, context).company_id.project_time_mode_id
+ time_mode_name = time_mode and time_mode.name or 'Hours'
+ if time_mode_name in ['Hours','Hour']:
+ return res
+
+ eview = etree.fromstring(res['arch'])
+
+ def _check_rec(eview):
+ if eview.attrib.get('widget','') == 'float_time':
+ eview.set('widget','float')
+ for child in eview:
+ _check_rec(child)
+ return True
+
+ _check_rec(eview)
+
+ res['arch'] = etree.tostring(eview)
+
+ for field in res['fields']:
+ if 'Hours' in res['fields'][field]['string']:
+ res['fields'][field]['string'] = res['fields'][field]['string'].replace('Hours',time_mode_name)
+ return res
+
+ def compute_hours(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ data = self.browse(cr, uid, ids, context=context)[0]
+ task_pool = self.pool.get('project.task')
+ task_id = context.get('active_id', False)
+ if task_id:
+ task_pool.write(cr, uid, task_id, {'remaining_hours': data.remaining_hours})
+ if context.get('button_reactivate', False):
+ task_pool.do_reopen(cr, uid, [task_id], context=context)
+ return {}
+project_task_reevaluate()
diff --git a/addons/project/wizard/project_task_reevaluate_view.xml b/addons/project/wizard/project_task_reevaluate_view.xml
new file mode 100644
index 00000000000..5e0e7c89069
--- /dev/null
+++ b/addons/project/wizard/project_task_reevaluate_view.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ Re-evaluate Task
+ project.task.reevaluate
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Re-evaluate Task
+ ir.actions.act_window
+ project.task.reevaluate
+ form
+ form
+ new
+
+
+
diff --git a/addons/project_caldav/project_caldav_view.xml b/addons/project_caldav/project_caldav_view.xml
index 01133108b6d..259d336c398 100644
--- a/addons/project_caldav/project_caldav_view.xml
+++ b/addons/project_caldav/project_caldav_view.xml
@@ -72,7 +72,7 @@
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"
name="open_meeting" icon="gtk-edit"
type="object" />
-
-
+
-
+
diff --git a/addons/project_gtd/i18n/tr.po b/addons/project_gtd/i18n/tr.po
index 07cc85baa4f..db20a77d0e9 100644
--- a/addons/project_gtd/i18n/tr.po
+++ b/addons/project_gtd/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:21+0000\n"
+"PO-Revision-Date: 2010-09-06 12:15+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_gtd
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
index 343d0e98b35..30b6815e450 100644
--- a/addons/project_issue/board_project_issue_view.xml
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -7,7 +7,7 @@
project.issueformtree,form
- [('user_id','=',uid),('state','in',['draft','open'])]
+ [('state','in',['draft','open'])]
@@ -16,7 +16,7 @@
project.issueformtree,form
- [('user_id','=',uid),('state','=','pending')]
+ [('state','=','pending')]
@@ -25,7 +25,7 @@
project.issue.reportformgraph
- [('user_id','=',uid)]
+ []
@@ -47,7 +47,7 @@
project.issue.reportformgraph
- [('user_id','=',uid)]
+ []
@@ -86,6 +86,7 @@
diff --git a/addons/project_issue/i18n/en_US.po b/addons/project_issue/i18n/en_US.po
new file mode 100644
index 00000000000..e015c70de7c
--- /dev/null
+++ b/addons/project_issue/i18n/en_US.po
@@ -0,0 +1,951 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:01:46+0000\n"
+"PO-Revision-Date: 2010-08-20 10:01:46+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,priority:0
+msgid "Severity"
+msgstr "Severity"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Open."
+msgstr "is Open."
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr "Avg. Delay to Open"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr "Working Hours to Open the Issue"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " 7 Days "
+msgstr " 7 Days "
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr "Opened"
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr "Date of Opening"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr "March"
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr "Watchers Emails"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Close Working hours"
+msgstr "Close Working hours"
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr "Days to Open"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Date Closed"
+msgstr "Date Closed"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr "Day"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "An Issue created"
+msgstr "An Issue created"
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr "Task"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By Stage"
+msgstr "Issues By Stage"
+
+#. module: project_issue
+#: field:project.issue,partner_mobile:0
+msgid "Mobile"
+msgstr "Mobile"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "365 Days"
+msgstr "365 Days"
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr "Project"
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage2
+msgid "Fixed"
+msgstr "Fixed"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Warning !"
+
+#. module: project_issue
+#: field:project.issue.report,date_closed:0
+msgid "Date of Closing"
+msgstr "Date of Closing"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Search"
+msgstr "Issue Tracker Search"
+
+#. module: project_issue
+#: field:project.issue.report,user_id2losed:0
+msgid "Close Date"
+msgstr "Close Date"
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_open:0
+msgid "Avg. Working Hours to Open"
+msgstr "Avg. Working Hours to Open"
+
+#. module: project_issue
+#: field:project.issue,date_action_next:0
+msgid "Next Action"
+msgstr "Next Action"
+
+#. module: project_issue
+#: help:project.project,project_escalation_id:0
+msgid "If any issue is escalated from the current Project, it will be listed under the project selected here."
+msgstr "If any issue is escalated from the current Project, it will be listed under the project selected here."
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr "Deadline"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!"
+msgstr "You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,partner_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type2
+msgid "Version 4.4"
+msgstr "Version 4.4"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Statistics"
+msgstr "Statistics"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Convert To Task"
+msgstr "Convert To Task"
+
+#. module: project_issue
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,section_id:0
+msgid "Section"
+msgstr "Section"
+
+#. module: project_issue
+#: field:project.issue.report,perc_done:0
+msgid "%Done"
+msgstr "%Done"
+
+#. module: project_issue
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,priority:0
+msgid "Priority"
+msgstr "Priority"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Send New Email"
+msgstr "Send New Email"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,type_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,type_id:0
+msgid "Version"
+msgstr "Version"
+
+#. module: project_issue
+#: model:ir.module.module,shortdesc:project_issue.module_meta_information
+msgid "Issue Management in Project Management"
+msgstr "Issue Management in Project Management"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Pending Issues"
+msgstr "Pending Issues"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Open Working Hours"
+msgstr "Open Working Hours"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action
+msgid "Issue Categories"
+msgstr "Issue Categories"
+
+#. module: project_issue
+#: field:project.issue,email_from:0
+msgid "Email"
+msgstr "Email"
+
+#. module: project_issue
+#: field:project.issue,canal_id:0
+#: field:project.issue.report,canal_id:0
+msgid "Channel"
+msgstr "Channel"
+
+#. module: project_issue
+#: field:project.issue.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr "Avg. Answers"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Lowest"
+msgstr "Lowest"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage3
+msgid "Won't fix"
+msgstr "Won't fix"
+
+#. module: project_issue
+#: field:project.issue,create_date:0
+#: field:project.issue.report,creation_date:0
+msgid "Creation Date"
+msgstr "Creation Date"
+
+#. module: project_issue
+#: field:project.issue,partner_phone:0
+msgid "Phone"
+msgstr "Phone"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reset to Draft"
+msgstr "Reset to Draft"
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+#: selection:project.issue.report,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.open_board_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue
+msgid "Project Issue Dashboard"
+msgstr "Project Issue Dashboard"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr "References"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "July"
+msgstr "July"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,stage_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,stage_id:0
+msgid "Stage"
+msgstr "Stage"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History Information"
+msgstr "History Information"
+
+#. module: project_issue
+#: field:project.issue,date_closed:0
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree
+#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree
+msgid "Project issues"
+msgstr "Project issues"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Contact"
+msgstr "Contact"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Board"
+msgstr "My Board"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication"
+msgstr "Communication"
+
+#. module: project_issue
+#: help:project.issue,canal_id:0
+msgid "The channels represent the different communication modes available with the customer. With each commercial opportunity, you can indicate the canall which is this opportunity source."
+msgstr "The channels represent the different communication modes available with the customer. With each commercial opportunity, you can indicate the canall which is this opportunity source."
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Tasks"
+msgstr "Tasks"
+
+#. module: project_issue
+#: field:project.issue.report,perc_cancel:0
+msgid "%Cancel"
+msgstr "%Cancel"
+
+#. module: project_issue
+#: field:project.issue.report,nbr:0
+msgid "# of Issues"
+msgstr "# of Issues"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "September"
+msgstr "September"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication history"
+msgstr "Communication history"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Tree"
+msgstr "Issue Tracker Tree"
+
+#. module: project_issue
+#: help:project.issue,assigned_to:0
+msgid "This is the current user to whom the related task have been assigned"
+msgstr "This is the current user to whom the related task have been assigned"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr "project.issue.report"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Escalate"
+msgstr "Escalate"
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.feature_request_categ
+msgid "Feature Requests"
+msgstr "Feature Requests"
+
+#. module: project_issue
+#: field:project.issue,write_date:0
+msgid "Update Date"
+msgstr "Update Date"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Salesman"
+msgstr "Salesman"
+
+#. module: project_issue
+#: model:ir.module.module,description:project_issue.module_meta_information
+msgid "\n"
+" This module provide Issues/Bugs Management in Project\n"
+" "
+msgstr "\n"
+" This module provide Issues/Bugs Management in Project\n"
+" "
+
+#. module: project_issue
+#: field:project.issue,categ_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,categ_id:0
+msgid "Category"
+msgstr "Category"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Number of Project Issues"
+msgstr "#Number of Project Issues"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_stage_act
+msgid "Issue Stages"
+msgstr "Issue Stages"
+
+#. module: project_issue
+#: help:project.issue,email_cc:0
+msgid "These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"
+msgstr "These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type1
+msgid "Version 4.2"
+msgstr "Version 4.2"
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Low"
+msgstr "Low"
+
+#. module: project_issue
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: project_issue
+#: field:project.issue.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr "Avg. Delay to Close"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage6
+msgid "Works For Me"
+msgstr "Works For Me"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "7 Days"
+msgstr "7 Days"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Status"
+msgstr "Status"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Project Issues"
+msgstr "#Project Issues"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Current Issues"
+msgstr "Current Issues"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "August"
+msgstr "August"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Global CC"
+msgstr "Global CC"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "June"
+msgstr "June"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Issue "
+msgstr "Issue "
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "30 Days"
+msgstr "30 Days"
+
+#. module: project_issue
+#: field:project.issue,day_close:0
+msgid "Days to Close"
+msgstr "Days to Close"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage5
+msgid "Awaiting Response"
+msgstr "Awaiting Response"
+
+#. module: project_issue
+#: field:project.issue,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "November"
+msgstr "November"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Extended Filters..."
+msgstr "Extended Filters..."
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Search"
+msgstr "Search"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "October"
+msgstr "October"
+
+#. module: project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_stage_act
+msgid "Stages"
+msgstr "Stages"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "January"
+msgstr "January"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Tree"
+msgstr "Feature Tracker Tree"
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.bug_categ
+msgid "Bugs"
+msgstr "Bugs"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By State"
+msgstr "Issues By State"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr "from Mailgate."
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " Today "
+msgstr " Today "
+
+#. module: project_issue
+#: field:project.issue,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Partner Contact"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage1
+msgid "Accepted as Bug"
+msgstr "Accepted as Bug"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Resolution"
+msgstr "Resolution"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History"
+msgstr "History"
+
+#. module: project_issue
+#: field:project.issue,assigned_to:0
+#: view:project.issue.report:0
+#: field:project.issue.report,assigned_to:0
+msgid "Assigned to"
+msgstr "Assigned to"
+
+#. module: project_issue
+#: field:project.project,reply_to:0
+msgid "Reply-To Email Address"
+msgstr "Reply-To Email Address"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr "Highest"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Form"
+msgstr "Issue Tracker Form"
+
+#. module: project_issue
+#: field:project.issue,state:0
+#: view:project.issue.report:0
+#: field:project.issue.report,state:0
+msgid "State"
+msgstr "State"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "General"
+msgstr "General"
+
+#. module: project_issue
+#: field:project.issue.report,user_id2:0
+msgid "Assignee"
+msgstr "Assignee"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Done"
+msgstr "Done"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "December"
+msgstr "December"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue.report,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_track
+#: view:project.issue:0
+msgid "Issues"
+msgstr "Issues"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "In Progress"
+msgstr "In Progress"
+
+#. module: project_issue
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "The Object name must start with x_ and not contain any special character !"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state
+#: model:ir.model,name:project_issue.model_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_confi
+#: view:project.issue.report:0
+msgid "Project Issue"
+msgstr "Project Issue"
+
+#. module: project_issue
+#: field:project.issue,user_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: project_issue
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr "Working Time"
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage4
+msgid "Invalid"
+msgstr "Invalid"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Current"
+msgstr "Current"
+
+#. module: project_issue
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr "Timetable working hours to adjust the gantt diagram report"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Details"
+msgstr "Details"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reply"
+msgstr "Reply"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Search"
+msgstr "Feature Tracker Search"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "May"
+msgstr "May"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+msgid "Issue Analysis"
+msgstr "Issue Analysis"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,email:0
+msgid "# Emails"
+msgstr "# Emails"
+
+#. module: project_issue
+#: field:project.issue,partner_name:0
+msgid "Employee's Name"
+msgstr "Employee's Name"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Emails"
+msgstr "Emails"
+
+#. module: project_issue
+#: help:project.issue,state:0
+msgid "The state is set to 'Draft', when a case is created. \n"
+"If the case is in progress the state is set to 'Open'. \n"
+"When the case is over, the state is set to 'Done'. \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+msgstr "The state is set to 'Draft', when a case is created. \n"
+"If the case is in progress the state is set to 'Open'. \n"
+"When the case is over, the state is set to 'Done'. \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "February"
+msgstr "February"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature description"
+msgstr "Feature description"
+
+#. module: project_issue
+#: field:project.project,project_escalation_id:0
+msgid "Project Escalation"
+msgstr "Project Escalation"
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+
+#. module: project_issue
+#: help:project.issue,email_from:0
+msgid "These people will receive email."
+msgstr "These people will receive email."
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr "Working Hours to Close the Issue"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Closed."
+msgstr "is Closed."
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr "Number of Days to close the project issue"
+
+#. module: project_issue
+#: selection:project.issue,state:0
+msgid "Todo"
+msgstr "Todo"
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr "Avg. Working Hours to Close"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr "High"
+
+#. module: project_issue
+#: field:project.issue,section_id:0
+msgid "Sales Team"
+msgstr "Sales Team"
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr "Last Action"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr "Year"
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr "Duration"
+
diff --git a/addons/project_issue/i18n/fr.po b/addons/project_issue/i18n/fr.po
new file mode 100644
index 00000000000..218c37a2cbf
--- /dev/null
+++ b/addons/project_issue/i18n/fr.po
@@ -0,0 +1,964 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 09:23+0000\n"
+"PO-Revision-Date: 2010-08-30 12:19+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,priority:0
+msgid "Severity"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Open."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " 7 Days "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Close Working hours"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Date Closed"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "An Issue created"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By Stage"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "365 Days"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage2
+msgid "Fixed"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,date_closed:0
+msgid "Date of Closing"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,user_id2losed:0
+msgid "Close Date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_open:0
+msgid "Avg. Working Hours to Open"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: project_issue
+#: help:project.project,project_escalation_id:0
+msgid ""
+"If any issue is escalated from the current Project, it will be listed under "
+"the project selected here."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid ""
+"You cannot escalate this issue.\n"
+"The relevant Project has not configured the Escalation Project!"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,partner_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type2
+msgid "Version 4.4"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Statistics"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Convert To Task"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,perc_done:0
+msgid "%Done"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,type_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,type_id:0
+msgid "Version"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.module.module,shortdesc:project_issue.module_meta_information
+msgid "Issue Management in Project Management"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Pending Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Open Working Hours"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action
+msgid "Issue Categories"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,canal_id:0
+#: field:project.issue.report,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage3
+msgid "Won't fix"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,create_date:0
+#: field:project.issue.report,creation_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+#: selection:project.issue.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.open_board_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue
+msgid "Project Issue Dashboard"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,stage_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History Information"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_closed:0
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree
+#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree
+msgid "Project issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Contact"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Board"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,canal_id:0
+msgid ""
+"The channels represent the different communication modes available with the "
+"customer. With each commercial opportunity, you can indicate the canall "
+"which is this opportunity source."
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Tasks"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,perc_cancel:0
+msgid "%Cancel"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,nbr:0
+msgid "# of Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication history"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,assigned_to:0
+msgid "This is the current user to whom the related task have been assigned"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Escalate"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.feature_request_categ
+msgid "Feature Requests"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Salesman"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.module.module,description:project_issue.module_meta_information
+msgid ""
+"\n"
+" This module provide Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,categ_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Number of Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_stage_act
+msgid "Issue Stages"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type1
+msgid "Version 4.2"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage6
+msgid "Works For Me"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Status"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Current Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Global CC"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Issue "
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "30 Days"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage5
+msgid "Awaiting Response"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,active:0
+msgid "Active"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Search"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.bug_categ
+msgid "Bugs"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By State"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,date:0
+msgid "Date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " Today "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage1
+msgid "Accepted as Bug"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Resolution"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,assigned_to:0
+#: view:project.issue.report:0
+#: field:project.issue.report,assigned_to:0
+msgid "Assigned to"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,reply_to:0
+msgid "Reply-To Email Address"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Attachments"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Form"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,state:0
+#: view:project.issue.report:0
+#: field:project.issue.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "General"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,user_id2:0
+msgid "Assignee"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Done"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_track
+#: view:project.issue:0
+msgid "Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state
+#: model:ir.model,name:project_issue.model_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_confi
+#: view:project.issue.report:0
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,user_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage4
+msgid "Invalid"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Current"
+msgstr ""
+
+#. module: project_issue
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Details"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reply"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,description:0
+msgid "Description"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+msgid "Issue Analysis"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,email:0
+msgid "# Emails"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Emails"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,state:0
+msgid ""
+"The state is set to 'Draft', when a case is created. "
+" \n"
+"If the case is in progress the state is set to 'Open'. "
+" \n"
+"When the case is over, the state is set to 'Done'. "
+" \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature description"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,project_escalation_id:0
+msgid "Project Escalation"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid ""
+"Sales team to which Case belongs to. Define "
+"Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Closed."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+msgid "Todo"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr ""
diff --git a/addons/project_issue/i18n/project_issue.pot b/addons/project_issue/i18n/project_issue.pot
new file mode 100644
index 00000000000..d409b33816c
--- /dev/null
+++ b/addons/project_issue/i18n/project_issue.pot
@@ -0,0 +1,946 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 09:23:21+0000\n"
+"PO-Revision-Date: 2010-08-20 09:23:21+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,priority:0
+msgid "Severity"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Open."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " 7 Days "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Close Working hours"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Date Closed"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "An Issue created"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By Stage"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "365 Days"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage2
+msgid "Fixed"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,date_closed:0
+msgid "Date of Closing"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,user_id2losed:0
+msgid "Close Date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_open:0
+msgid "Avg. Working Hours to Open"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: project_issue
+#: help:project.project,project_escalation_id:0
+msgid "If any issue is escalated from the current Project, it will be listed under the project selected here."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,partner_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type2
+msgid "Version 4.4"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Statistics"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Convert To Task"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,perc_done:0
+msgid "%Done"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,type_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,type_id:0
+msgid "Version"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.module.module,shortdesc:project_issue.module_meta_information
+msgid "Issue Management in Project Management"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Pending Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Open Working Hours"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action
+msgid "Issue Categories"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,canal_id:0
+#: field:project.issue.report,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage3
+msgid "Won't fix"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,create_date:0
+#: field:project.issue.report,creation_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+#: selection:project.issue.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.open_board_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue
+msgid "Project Issue Dashboard"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,stage_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History Information"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_closed:0
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree
+#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree
+msgid "Project issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Contact"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Board"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,canal_id:0
+msgid "The channels represent the different communication modes available with the customer. With each commercial opportunity, you can indicate the canall which is this opportunity source."
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Tasks"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,perc_cancel:0
+msgid "%Cancel"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,nbr:0
+msgid "# of Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication history"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,assigned_to:0
+msgid "This is the current user to whom the related task have been assigned"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Escalate"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.feature_request_categ
+msgid "Feature Requests"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Salesman"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.module.module,description:project_issue.module_meta_information
+msgid "\n"
+" This module provide Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,categ_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Number of Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_stage_act
+msgid "Issue Stages"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,email_cc:0
+msgid "These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.resource.type,name:project_issue.type1
+msgid "Version 4.2"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage6
+msgid "Works For Me"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Status"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Current Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Global CC"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "Issue "
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "30 Days"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage5
+msgid "Awaiting Response"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,active:0
+msgid "Active"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Search"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.bug_categ
+msgid "Bugs"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By State"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,date:0
+msgid "Date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid " Today "
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage1
+msgid "Accepted as Bug"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Resolution"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,assigned_to:0
+#: view:project.issue.report:0
+#: field:project.issue.report,assigned_to:0
+msgid "Assigned to"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,reply_to:0
+msgid "Reply-To Email Address"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Attachments"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Form"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,state:0
+#: view:project.issue.report:0
+#: field:project.issue.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "General"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,user_id2:0
+msgid "Assignee"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Done"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_track
+#: view:project.issue:0
+msgid "Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project_issue
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state
+#: model:ir.model,name:project_issue.model_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_confi
+#: view:project.issue.report:0
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,user_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.stage,name:project_issue.stage4
+msgid "Invalid"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Current"
+msgstr ""
+
+#. module: project_issue
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Details"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reply"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,description:0
+msgid "Description"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+msgid "Issue Analysis"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,email:0
+msgid "# Emails"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Emails"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,state:0
+msgid "The state is set to 'Draft', when a case is created. \n"
+"If the case is in progress the state is set to 'Open'. \n"
+"When the case is over, the state is set to 'Done'. \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature description"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,project_escalation_id:0
+msgid "Project Escalation"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:0
+#, python-format
+msgid "is Closed."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+msgid "Todo"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index fb0335967a3..5c5a8907dc9 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -314,7 +314,7 @@ class project_issue(crm.crm_case, osv.osv):
mailgate_pool = self.pool.get('email.server.tools')
- subject = msg.get('subject')
+ subject = msg.get('subject') or _('No Title')
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
@@ -332,6 +332,7 @@ class project_issue(crm.crm_case, osv.osv):
res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
if res:
vals.update(res)
+ context.update({'state_to' : 'draft'})
res = self.create(cr, uid, vals, context)
message = _('An Issue created') + " '" + subject + "' " + _("from Mailgate.")
self.log(cr, uid, res, message)
diff --git a/addons/project_issue/project_issue_data.xml b/addons/project_issue/project_issue_data.xml
index fb914dfaca2..0ad753b0004 100644
--- a/addons/project_issue/project_issue_data.xml
+++ b/addons/project_issue/project_issue_data.xml
@@ -1,75 +1,75 @@
-
+
-
-
-
-
- Bugs
-
-
-
+
+
-
- Feature Requests
-
-
-
+
+ Maintenance
+
+
+
-
-
-
- Version 4.2
-
-
-
-
-
- Version 4.4
-
-
-
+
+ Feature Requests
+
+
+
-
-
-
-
- Accepted as Bug
-
-
-
-
- Fixed
-
-
-
-
- Won't fix
-
-
-
-
- Invalid
-
-
-
-
- Awaiting Response
-
-
-
-
- Works For Me
-
-
-
+
+
+
+ Version 4.2
+
+
+
-
+
+ Version 5.0
+
+
+
+
+
+ Version 6.0
+
+
+
+
+
+
+
+
+ Accepted as Bug
+
+
+
+
+ Fixed
+
+
+
+
+ Won't fix
+
+
+
+
+ Invalid
+
+
+
+
+ Awaiting Response
+
+
+
+
+ Works For Me
+
+
+
+
+
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 78e27854c09..f1e4d34f54c 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -13,6 +13,8 @@
{'object_id':'project.issue'}
+
+
Issue Stagescrm.case.stage
@@ -63,10 +65,10 @@
-
-
+
+
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index d0bf5e29336..bf8085ba932 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -35,7 +35,7 @@ class project_issue_report(osv.osv):
_name = "project.issue.report"
_auto = False
- def _get_data(self, cr, uid, ids, field_name, arg, context=None):
+ def _get_data(self, cr, uid, ids, field_names, arg, context=None):
if context is None:
context = {}
""" @param cr: the current row, from the database cursor,
@@ -46,40 +46,24 @@ class project_issue_report(osv.osv):
res = {}
avg_ans = 0.0
- for case in self.browse(cr, uid, ids, context):
- if field_name != 'avg_answers':
- state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
- section_id =%s and state='%s'"%(case.section_id.id, state))
- state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr)) * 100
-
- res[case.id] = perc_state
- else:
- model_name = self._name.split('report.')
- if len(model_name) < 2:
- res[case.id] = 0.0
- else:
- model_name = model_name[1]
-
- cr.execute("select count(*) from crm_case_log l, ir_model m \
- where l.model_id=m.id and m.model = '%s'" , model_name)
- logs = cr.fetchone()[0]
-
- avg_ans = logs / case.nbr
- res[case.id] = avg_ans
+ for report in self.browse(cr, uid, ids, context):
+ res[report.id]= {
+ 'avg_answers': 0.0,
+ 'perc_done' : 0.0,
+ 'perc_cancel': 0.0
+ }
+ #TODO: Calculate
return res
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
- 'user_id2':fields.many2one('res.users', 'Assignee', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
- 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
- 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
- 'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
+ 'avg_answers': fields.function(_get_data, group_operator='avg', string='Avg. Answers', multi='avg_answers', method=True, type="integer"),
+ 'perc_done': fields.function(_get_data, group_operator='avg', string='%Done', multi='perc_done', method=True, type="float"),
+ 'perc_cancel': fields.function(_get_data, group_operator='avg', string='%Cancel', multi='perc_cancel', method=True, type="float"),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
@@ -104,7 +88,6 @@ class project_issue_report(osv.osv):
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'project_id':fields.many2one('project.project', 'Project',readonly=True),
'type_id': fields.many2one('crm.case.resource.type', 'Version', domain="[('object_id.model', '=', 'project.issue')]"),
- 'user_id2losed': fields.date('Close Date', readonly=True),
'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True),
'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"),
'canal_id': fields.many2one('res.partner.canal', 'Channel',readonly=True),
diff --git a/addons/project_issue_sheet/i18n/en_US.po b/addons/project_issue_sheet/i18n/en_US.po
new file mode 100644
index 00000000000..020118f5fc6
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/en_US.po
@@ -0,0 +1,86 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue_sheet
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:09:09+0000\n"
+"PO-Revision-Date: 2010-08-20 10:09:09+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue_sheet
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,description:project_issue_sheet.module_meta_information
+msgid "\n"
+" This module adds the Timesheet support for the Issues/Bugs Management in Project\n"
+" "
+msgstr "\n"
+" This module adds the Timesheet support for the Issues/Bugs Management in Project\n"
+" "
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "Analytic Line"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr "Project Issue"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr "Timesheet Line"
+
+#. module: project_issue_sheet
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "The Object name must start with x_ and not contain any special character !"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Timesheet"
+msgstr "Timesheet"
+
+#. module: project_issue_sheet
+#: field:project.issue,analytic_account_id:0
+msgid "Analytic Account"
+msgstr "Analytic Account"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr "Worklogs"
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr "Create Date"
+
+#. module: project_issue_sheet
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr "Timesheets"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
+msgid "Add the Timesheet support for Issue Management in Project Management"
+msgstr "Add the Timesheet support for Issue Management in Project Management"
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr "Issue"
+
diff --git a/addons/project_issue_sheet/i18n/fr.po b/addons/project_issue_sheet/i18n/fr.po
new file mode 100644
index 00000000000..d98bd1db1fc
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/fr.po
@@ -0,0 +1,87 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue_sheet
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:05+0000\n"
+"PO-Revision-Date: 2010-08-30 12:19+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: project_issue_sheet
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.module.module,description:project_issue_sheet.module_meta_information
+msgid ""
+"\n"
+" This module adds the Timesheet support for the "
+"Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Timesheet"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:project.issue,analytic_account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
+msgid "Add the Timesheet support for Issue Management in Project Management"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr ""
diff --git a/addons/project_issue_sheet/i18n/project_issue_sheet.pot b/addons/project_issue_sheet/i18n/project_issue_sheet.pot
new file mode 100644
index 00000000000..37f03be85e7
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/project_issue_sheet.pot
@@ -0,0 +1,84 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue_sheet
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:05:59+0000\n"
+"PO-Revision-Date: 2010-08-20 10:05:59+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue_sheet
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.module.module,description:project_issue_sheet.module_meta_information
+msgid "\n"
+" This module adds the Timesheet support for the Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Timesheet"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:project.issue,analytic_account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
+msgid "Add the Timesheet support for Issue Management in Project Management"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr ""
+
diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml
index ffc3332ab8c..ac842d7e018 100644
--- a/addons/project_issue_sheet/project_issue_sheet_view.xml
+++ b/addons/project_issue_sheet/project_issue_sheet_view.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index c98c85006fa..0d03b5f7315 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -27,14 +27,14 @@
"category": "Generic Modules/Projects & Services",
"depends": ["resource", "project"],
"description": """
-
- Long Term Project management module that tracks planning, scheduling, resources allocation.
- Mainly used with Big project management.
- - Project Phases will be maintained by Manager of the project
- - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.
- If no project given then all the draft,open and pending state phases will be taken
- - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as argument and computes all the open,draft and pending tasks
- - Schedule Tasks: All the tasks which are in draft,pending and open state are scheduled with taking the phase's start date
+Long Term Project management module that tracks planning, scheduling, resources allocation.
+Features.
+ - Manage Big project.
+ - Define various Phases of Project.
+ - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.
+ If no project given then all the draft,open and pending state phases will be taken
+ - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as argument and computes all the open,draft and pending tasks
+ - Schedule Tasks: All the tasks which are in draft,pending and open state are scheduled with taking the phase's start date
""",
"init_xml": [],
diff --git a/addons/project_long_term/i18n/en_US.po b/addons/project_long_term/i18n/en_US.po
new file mode 100644
index 00000000000..00e0d982c1c
--- /dev/null
+++ b/addons/project_long_term/i18n/en_US.po
@@ -0,0 +1,550 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_long_term
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:27:00+0000\n"
+"PO-Revision-Date: 2010-08-20 10:27:00+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_long_term
+#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
+msgid "Long Term Project Management"
+msgstr "Long Term Project Management"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Phases"
+msgstr "Compute Scheduling of Phases"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr "Next Phases"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr "Project's Tasks"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+#: view:project.phase:0
+msgid "Phases"
+msgstr "Phases"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "_Compute"
+msgstr "_Compute"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: project_long_term
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr "Error! project start-date must be lower then project end-date."
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Schedule"
+msgstr "Schedule"
+
+#. module: project_long_term
+#: model:ir.module.module,description:project_long_term.module_meta_information
+msgid "\n"
+"\n"
+" Long Term Project management module that tracks planning, scheduling, resources allocation.\n"
+" Mainly used with Big project management.\n"
+" - Project Phases will be maintained by Manager of the project\n"
+" - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.\n"
+" If no project given then all the draft,open and pending state phases will be taken\n"
+" - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as argument and computes all the open,draft and pending tasks\n"
+" - Schedule Tasks: All the tasks which are in draft,pending and open state are scheduled with taking the phase's start date\n"
+"\n"
+" "
+msgstr "\n"
+"\n"
+" Long Term Project management module that tracks planning, scheduling, resources allocation.\n"
+" Mainly used with Big project management.\n"
+" - Project Phases will be maintained by Manager of the project\n"
+" - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.\n"
+" If no project given then all the draft,open and pending state phases will be taken\n"
+" - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as argument and computes all the open,draft and pending tasks\n"
+" - Schedule Tasks: All the tasks which are in draft,pending and open state are scheduled with taking the phase's start date\n"
+"\n"
+" "
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
+#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
+#: view:project.resource.allocation:0
+msgid "Resource Allocations"
+msgstr "Resource Allocations"
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "R.A."
+msgstr "R.A."
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr "Error! You cannot assign escalation to the same project!"
+
+#. module: project_long_term
+#: code:addons/project_long_term/project_long_term.py:0
+#, python-format
+msgid "Day"
+msgstr "Day"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr "Task"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr "Compute a Single Project"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr "Previous Phases"
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
+msgstr "UoM (Unit of Measure) is the unit of measurement for Duration"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_project
+#: field:project.compute.phases,project_id:0
+#: field:project.compute.tasks,project_id:0
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+msgid "Project"
+msgstr "Project"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Error!"
+msgstr "Error!"
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: project_long_term
+#: field:project.resource.allocation,useability:0
+msgid "Usability"
+msgstr "Usability"
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid "Usability of this resource for this project phase in percentage (=50%)"
+msgstr "Usability of this resource for this project phase in percentage (=50%)"
+
+#. module: project_long_term
+#: help:project.phase,date_end:0
+#: field:project.resource.allocation,phase_id_date_end:0
+msgid "Ending Date of the phase"
+msgstr "Ending Date of the phase"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "This wizard will schedule phases for all or specified project"
+msgstr "This wizard will schedule phases for all or specified project"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr "Planning"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "_Cancel"
+msgstr "_Cancel"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
+#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
+msgid "Compute Phase Scheduling"
+msgstr "Compute Phase Scheduling"
+
+#. module: project_long_term
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr "The chosen company is not in the allowed companies for this user"
+
+#. module: project_long_term
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr "Error! You can not create recursive analytic accounts."
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr "State"
+
+#. module: project_long_term
+#: field:project.phase,product_uom:0
+msgid "Duration UoM"
+msgstr "Duration UoM"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
+#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
+msgid "Compute Task Scheduling"
+msgstr "Compute Task Scheduling"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_resource_allocation
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Project Resource Allocation"
+msgstr "Project Resource Allocation"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+msgid "Resources"
+msgstr "Resources"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Related Tasks"
+msgstr "Related Tasks"
+
+#. module: project_long_term
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr "force the phase to start after this date"
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr "Project Tasks"
+
+#. module: project_long_term
+#: field:project.phase,resource_ids:0
+msgid "Project Resources"
+msgstr "Project Resources"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "_Ok"
+msgstr "_Ok"
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr "Phase start-date must be lower than phase end-date."
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_schedule_tasks
+msgid "project.schedule.tasks"
+msgstr "project.schedule.tasks"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,constraint_date_start:0
+#: field:project.phase,date_start:0
+msgid "Start Date"
+msgstr "Start Date"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Resource Allocation"
+msgstr "Resource Allocation"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr "force the phase to finish before this date"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#, python-format
+msgid "Project must have members assigned !"
+msgstr "Project must have members assigned !"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: project_long_term
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: project_long_term
+#: constraint:project.task:0
+msgid "Error! Task start-date must be lower then task end-date."
+msgstr "Error! Task start-date must be lower then task end-date."
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr "Remaining Hours"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "User"
+msgstr "User"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr "Task Detail"
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute"
+msgstr "Compute"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_tasks
+msgid "Project Compute Tasks"
+msgstr "Project Compute Tasks"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "No responsible person assigned !"
+msgstr "No responsible person assigned !"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Error"
+msgstr "Error"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "You must assign a responsible person for phase '%s' !"
+msgstr "You must assign a responsible person for phase '%s' !"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Constraints"
+msgstr "Constraints"
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr "Gives the sequence order when displaying a list of phases."
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase
+#: view:project.phase:0
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr "Project Phases"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr "In Progress"
+
+#. module: project_long_term
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "The Object name must start with x_ and not contain any special character !"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Phase must have resources assigned !"
+msgstr "Phase must have resources assigned !"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Other Info"
+msgstr "Other Info"
+
+#. module: project_long_term
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr "Start Phase"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr "Please Specify Project to be schedule"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr "Task Scheduling completed successfully."
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Phase"
+msgstr "Phase"
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+#: field:project.resource.allocation,phase_id_date_start:0
+msgid "Starting Date of the phase"
+msgstr "Starting Date of the phase"
+
+#. module: project_long_term
+#: help:project.phase,state:0
+msgid "If the phase is created the state 'Draft'.\n"
+" If the phase is started, the state becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' state. \n"
+" If the phase is over, the states is set to 'Done'."
+msgstr "If the phase is created the state 'Draft'.\n"
+" If the phase is started, the state becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' state. \n"
+" If the phase is over, the states is set to 'Done'."
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+#: field:project.phase,date_end:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,resource_id:0
+msgid "Resource"
+msgstr "Resource"
+
+#. module: project_long_term
+#: field:project.phase,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Period"
+msgstr "Working Period"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+#: view:project.phase:0
+msgid "Scheduling"
+msgstr "Scheduling"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
+#: view:project.phase:0
+#: field:project.resource.allocation,phase_id:0
+#: field:project.task,phase_id:0
+msgid "Project Phase"
+msgstr "Project Phase"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr "Project Compute Phases"
+
+#. module: project_long_term
+#: field:project.schedule.tasks,msg:0
+msgid "Message"
+msgstr "Message"
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr "Loops in phases not allowed"
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr "Sequence"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute All Projects"
+msgstr "Compute All Projects"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
+msgid "Resource Leaves"
+msgstr "Resource Leaves"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks
+#: view:project.phase:0
+#: view:project.schedule.tasks:0
+msgid "Schedule Tasks"
+msgstr "Schedule Tasks"
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr "By default in days"
+
+#. module: project_long_term
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr "Duration"
+
diff --git a/addons/project_long_term/i18n/fr.po b/addons/project_long_term/i18n/fr.po
new file mode 100644
index 00000000000..dbafb922c94
--- /dev/null
+++ b/addons/project_long_term/i18n/fr.po
@@ -0,0 +1,548 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_long_term
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:11+0000\n"
+"PO-Revision-Date: 2010-08-30 12:19+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: project_long_term
+#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
+msgid "Long Term Project Management"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+#: view:project.phase:0
+msgid "Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "_Compute"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr ""
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Schedule"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.module.module,description:project_long_term.module_meta_information
+msgid ""
+"\n"
+"\n"
+" Long Term Project management module that tracks planning, "
+"scheduling, resources allocation.\n"
+" Mainly used with Big project management.\n"
+" - Project Phases will be maintained by Manager of the project\n"
+" - Compute Phase Scheduling: Compute start date and end date of "
+"the phases which are in draft,open and pending state of the project given.\n"
+" If no project given then all the "
+"draft,open and pending state phases will be taken\n"
+" - Compute Task Scheduling: This works same as the scheduler "
+"button on project.phase. It takes the project as argument and computes all "
+"the open,draft and pending tasks\n"
+" - Schedule Tasks: All the tasks which are in draft,pending and "
+"open state are scheduled with taking the phase's start date\n"
+"\n"
+" "
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
+#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
+#: view:project.resource.allocation:0
+msgid "Resource Allocations"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "R.A."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/project_long_term.py:0
+#, python-format
+msgid "Day"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_project
+#: field:project.compute.phases,project_id:0
+#: field:project.compute.tasks,project_id:0
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.resource.allocation,useability:0
+msgid "Usability"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid ""
+"Usability of this resource for this project phase in percentage (=50%)"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_end:0
+#: field:project.resource.allocation,phase_id_date_end:0
+msgid "Ending Date of the phase"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "This wizard will schedule phases for all or specified project"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
+#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
+msgid "Compute Phase Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Dates"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,product_uom:0
+msgid "Duration UoM"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
+#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
+msgid "Compute Task Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_resource_allocation
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Project Resource Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+msgid "Resources"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Related Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,resource_ids:0
+msgid "Project Resources"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "_Ok"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_schedule_tasks
+msgid "project.schedule.tasks"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,constraint_date_start:0
+#: field:project.phase,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Resource Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#, python-format
+msgid "Project must have members assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.task:0
+msgid "Error! Task start-date must be lower then task end-date."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "User"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_tasks
+msgid "Project Compute Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "No responsible person assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "You must assign a responsible person for phase '%s' !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Constraints"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase
+#: view:project.phase:0
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Phase must have resources assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Other Info"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Phase"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+#: field:project.resource.allocation,phase_id_date_start:0
+msgid "Starting Date of the phase"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,state:0
+msgid ""
+"If the phase is created the state 'Draft'.\n"
+" If the phase is started, the state becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' state. "
+" \n"
+" If the phase is over, the states is set to 'Done'."
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+#: field:project.phase,date_end:0
+msgid "End Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,resource_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Period"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+#: view:project.phase:0
+msgid "Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
+#: view:project.phase:0
+#: field:project.resource.allocation,phase_id:0
+#: field:project.task,phase_id:0
+msgid "Project Phase"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.schedule.tasks,msg:0
+msgid "Message"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute All Projects"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
+msgid "Resource Leaves"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks
+#: view:project.phase:0
+#: view:project.schedule.tasks:0
+msgid "Schedule Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr ""
diff --git a/addons/project_long_term/i18n/project_long_term.pot b/addons/project_long_term/i18n/project_long_term.pot
new file mode 100644
index 00000000000..e508e1f3fba
--- /dev/null
+++ b/addons/project_long_term/i18n/project_long_term.pot
@@ -0,0 +1,537 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_long_term
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:11:42+0000\n"
+"PO-Revision-Date: 2010-08-20 10:11:42+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_long_term
+#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
+msgid "Long Term Project Management"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+#: view:project.phase:0
+msgid "Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "_Compute"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr ""
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Schedule"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.module.module,description:project_long_term.module_meta_information
+msgid "\n"
+"\n"
+" Long Term Project management module that tracks planning, scheduling, resources allocation.\n"
+" Mainly used with Big project management.\n"
+" - Project Phases will be maintained by Manager of the project\n"
+" - Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.\n"
+" If no project given then all the draft,open and pending state phases will be taken\n"
+" - Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as argument and computes all the open,draft and pending tasks\n"
+" - Schedule Tasks: All the tasks which are in draft,pending and open state are scheduled with taking the phase's start date\n"
+"\n"
+" "
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
+#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
+#: view:project.resource.allocation:0
+msgid "Resource Allocations"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "R.A."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/project_long_term.py:0
+#, python-format
+msgid "Day"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_project
+#: field:project.compute.phases,project_id:0
+#: field:project.compute.tasks,project_id:0
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.resource.allocation,useability:0
+msgid "Usability"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid "Usability of this resource for this project phase in percentage (=50%)"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_end:0
+#: field:project.resource.allocation,phase_id_date_end:0
+msgid "Ending Date of the phase"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "This wizard will schedule phases for all or specified project"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
+#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
+msgid "Compute Phase Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Dates"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,product_uom:0
+msgid "Duration UoM"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
+#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
+msgid "Compute Task Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_resource_allocation
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Project Resource Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+msgid "Resources"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Related Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,resource_ids:0
+msgid "Project Resources"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "_Ok"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_schedule_tasks
+msgid "project.schedule.tasks"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,constraint_date_start:0
+#: field:project.phase,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Resource Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#, python-format
+msgid "Project must have members assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.task:0
+msgid "Error! Task start-date must be lower then task end-date."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "User"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_tasks
+msgid "Project Compute Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "No responsible person assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_tasks.py:0
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "You must assign a responsible person for phase '%s' !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Constraints"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase
+#: view:project.phase:0
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_schedule_tasks.py:0
+#, python-format
+msgid "Phase must have resources assigned !"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Other Info"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:0
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Phase"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+#: field:project.resource.allocation,phase_id_date_start:0
+msgid "Starting Date of the phase"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,state:0
+msgid "If the phase is created the state 'Draft'.\n"
+" If the phase is started, the state becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' state. \n"
+" If the phase is over, the states is set to 'Done'."
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+#: field:project.phase,date_end:0
+msgid "End Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,resource_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Period"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+#: view:project.phase:0
+msgid "Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
+#: view:project.phase:0
+#: field:project.resource.allocation,phase_id:0
+#: field:project.task,phase_id:0
+msgid "Project Phase"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.schedule.tasks,msg:0
+msgid "Message"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute All Projects"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
+msgid "Resource Leaves"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks
+#: view:project.phase:0
+#: view:project.schedule.tasks:0
+msgid "Schedule Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index 671ca0f5c62..ee763b759b6 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -72,9 +72,9 @@
Resource Allocationsproject.resource.allocationform
- gantt,tree,form
+ tree,form,gantt{}
-
+
@@ -116,7 +116,7 @@
-
+
@@ -254,7 +254,7 @@
Project Phasesproject.phaseform
- gantt,tree,form,calendar
+ tree,form,gantt,calendar{'search_default_responsible_id':uid}You can subdivide your larger projects into several phases. For each phase, you can define your resources allocation (humans or engine), describe de differend task and link your phase with previous and next one, add constraints date and scheduling. A gantt view of your project phase is also available from this menu. Gantt view is a graphically draw of the project plan; it includes any task dependencies by visually adjusting task durations and priorities, and by linking tasks to each other.
@@ -314,13 +314,13 @@
+ id="menu_project_phase" parent="base.menu_project_long_term" sequence="1"/>
diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml
index 92286700e6c..323d9cbc8f2 100644
--- a/addons/project_long_term/test/schedule_phase_tasks.yml
+++ b/addons/project_long_term/test/schedule_phase_tasks.yml
@@ -41,7 +41,7 @@
state: draft
phase_id: project_phase_phase0
project_id: project_project_project0
-
+ user_id: project_long_term.res_users_userdeveloper0
-
Create the phase task 'Develop GUI for Modules Configuration'
@@ -53,7 +53,7 @@
state: draft
phase_id: project_phase_phase0
project_id: project_project_project0
-
+ user_id: project_long_term.res_users_userdeveloper0
-
Create the phase task 'Develop GUI for OpenERP Synchronisation'
-
@@ -64,8 +64,7 @@
state: draft
phase_id: project_phase_phase0
project_id: project_project_project0
-
-
+ user_id: project_long_term.res_users_userdeveloper0
-
Create the phase task 'Develop required Menus'
-
@@ -76,16 +75,19 @@
state: draft
phase_id: project_phase_phase0
project_id: project_project_project0
-
+ user_id: project_long_term.res_users_userdesign0
-
Schedule phase tasks
-
!python {model: project.schedule.tasks}: |
- self.compute_date(cr, uid, {"lang": "en_US",
- "active_model": "project.phase", "active_ids": [ref("project_phase_phase0")],
- "tz": False, "record_id": 138, "project_id": ref("project_project_project0"), "active_id": ref("project_phase_phase0"),
- })
+ res = self.compute_date(cr, uid, {"lang": "en_US", "tz": False,
+ "active_id": ref("project_phase_phase0"),
+ # rest may be obsolete:
+ # "active_model": "project.phase", "active_ids": [ref("project_phase_phase0")],
+ # "record_id": 138, "project_id": ref("project_project_project0"),
+ })
+ print res
-
Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null
@@ -93,5 +95,6 @@
!python {model: project.phase}: |
phase=self.browse(cr, uid, [ref("project_phase_phase0")])[0]
for task in phase.task_ids:
- if (not task.user_id) or (not task.date_start) or (not task.date_end):
- raise AssertionError("Phase Tasks not scheduled")
\ No newline at end of file
+ if (not task.user_id) or (not task.date_start) or (not task.date_end):
+ raise AssertionError("Phase Tasks not scheduled: %d uid=%r start=%r end=%r" % \
+ (task.id, task.user_id, task.date_start, task.date_end))
\ No newline at end of file
diff --git a/addons/project_long_term/test/schedule_project_tasks.yml b/addons/project_long_term/test/schedule_project_tasks.yml
index 012898b9860..b1cd70487f7 100644
--- a/addons/project_long_term/test/schedule_project_tasks.yml
+++ b/addons/project_long_term/test/schedule_project_tasks.yml
@@ -42,7 +42,7 @@
state: draft
phase_id: project_phase_phase1
project_id: project_project_project1
-
+ user_id: project_long_term.res_users_userdeveloper0
-
Create the phase task 'Develop GUI for Modules Configuration'
@@ -54,7 +54,7 @@
state: draft
phase_id: project_phase_phase1
project_id: project_project_project1
-
+ user_id: project_long_term.res_users_userdeveloper0
-
Create the phase task 'Develop GUI for OpenERP Synchronisation'
-
@@ -89,10 +89,10 @@
Schedule tasks
-
!python {model: project.compute.tasks}: |
- self.compute_date(cr, uid, [ref("project_compute_tasks_0")], {"lang": "en_US",
- "active_model": "ir.ui.menu", "active_ids": [ref("project_long_term.menu_compute_tasks")],
- "tz": False, "record_id": 138, "project_id": ref("project_project_project1"), "active_id": ref("project_long_term.menu_compute_tasks"),
- })
+ self.compute_date(cr, uid, [ref("project_compute_tasks_0")], {"lang": "en_US", "tz": False,
+ "active_id": ref("project_long_term.menu_compute_tasks"),
+ "active_model": "ir.ui.menu", "active_ids": [ref("project_long_term.menu_compute_tasks")],
+ })
-
Check if tasks scheduled, check that either of task's start_date, end_date and user_id is not null
diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml
index 3895b0cc4c8..8818684e8fa 100644
--- a/addons/project_long_term/wizard/project_compute_phases_view.xml
+++ b/addons/project_long_term/wizard/project_compute_phases_view.xml
@@ -8,20 +8,16 @@
form
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
diff --git a/addons/project_long_term/wizard/project_compute_tasks.py b/addons/project_long_term/wizard/project_compute_tasks.py
index c251ca6f332..8e98f26b353 100644
--- a/addons/project_long_term/wizard/project_compute_tasks.py
+++ b/addons/project_long_term/wizard/project_compute_tasks.py
@@ -113,12 +113,13 @@ class project_compute_tasks(osv.osv_memory):
hours = str(each_task.planned_hours )+ 'H'
if each_task.priority in priority_dict.keys():
priorty = priority_dict[each_task.priority]
+ rcre = False
if each_task.user_id:
for resrce in resources:
if resrce.__name__ == each_task.user_id.name: # check me!!
- task = create_tasks(i, hours, priorty, resrce)
- else:
- task = create_tasks(i, hours, priorty)
+ rcre = resrce
+ break
+ task = create_tasks(i, hours, priorty, rcre)
i += 1
project = BalancedProject(Project)
diff --git a/addons/project_long_term/wizard/project_compute_tasks_view.xml b/addons/project_long_term/wizard/project_compute_tasks_view.xml
index bf6fe379048..e0cd30d5622 100644
--- a/addons/project_long_term/wizard/project_compute_tasks_view.xml
+++ b/addons/project_long_term/wizard/project_compute_tasks_view.xml
@@ -7,12 +7,16 @@
project.compute.tasksform
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/project_long_term/wizard/project_schedule_tasks.py b/addons/project_long_term/wizard/project_schedule_tasks.py
index 5931451081b..c64e800c9c6 100644
--- a/addons/project_long_term/wizard/project_schedule_tasks.py
+++ b/addons/project_long_term/wizard/project_schedule_tasks.py
@@ -73,8 +73,6 @@ class project_schedule_task(osv.osv_memory):
return resource_objs
def compute_date(self, cr, uid, context=None):
- if context is None:
- context = {}
"""
Schedule the tasks according to resource available and priority.
"""
@@ -84,7 +82,8 @@ class project_schedule_task(osv.osv_memory):
user_obj = self.pool.get('res.users')
if context is None:
- context = {}
+ # It makes no sense to continue on empty context
+ return { 'warning': _("You must select some project phase to compute on")}
if not 'active_id' in context:
return {}
@@ -135,15 +134,18 @@ class project_schedule_task(osv.osv_memory):
hours = str(each_task.planned_hours )+ 'H'
if each_task.priority in priority_dict.keys():
priorty = priority_dict[each_task.priority]
+ resc = False
if each_task.user_id:
- for resrce in resources:
+ for resrce in resources:
if resrce.__name__ == each_task.user_id.name:
- task = create_tasks(i, hours, priorty, resrce)
- else:
- task = create_tasks(i, hours, priorty)
+ resc = resrce
+ break
+
+ task = create_tasks(i, hours, priorty, resc)
i += 1
project = BalancedProject(Project)
+
loop_no = 0
# Write back the computed dates
for t in project:
@@ -160,6 +162,8 @@ class project_schedule_task(osv.osv_memory):
}, context=ctx)
loop_no += 1
+ else:
+ return {"warning": _("No tasks to compute for this phase") }
return {}
project_schedule_task()
diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py
index bc7bc43df03..d402374b5ea 100644
--- a/addons/project_mailgate/project_mailgate.py
+++ b/addons/project_mailgate/project_mailgate.py
@@ -153,55 +153,4 @@ class project_tasks(osv.osv):
return res
project_tasks()
-
-class config_compute_remaining(osv.osv_memory):
- _inherit = "config.compute.remaining"
- _name='config.compute.remaining'
-
- def compute_hours(self, cr, uid, ids, context=None):
- res = super(config_compute_remaining, self).compute_hours(cr, uid, ids, context=context)
- task_obj = self.pool.get('project.task')
- if 'active_id' in context:
- task = task_obj.browse(cr, uid, context['active_id'])
- if task.state == 'open':
- task_obj._history(cr, uid, [task], _('Open'))
- return res
-config_compute_remaining()
-
-class project_close_task(osv.osv_memory):
- _inherit = "close.task"
- _name = "close.task"
-
- def close(self, cr, uid, ids, context=None):
- res = super(project_close_task, self).close(cr, uid, ids, context=context)
- if not context:
- context={}
- task_obj = self.pool.get('project.task')
-
- if 'task_id' in context:
- task = task_obj.browse(cr, uid, context['task_id'], context=context)
- task_obj._history(cr, uid, [task], _('Done'))
- return res
-
- def confirm(self, cr, uid, ids, context=None):
- res=super(project_close_task, self).confirm(cr, uid, ids, context=context)
- task_obj = self.pool.get('project.task')
-
- if 'task_id' in context:
- close_wizard = self.read(cr, uid, ids[0], [])
- to_adr = []
- to_adr.append(context.get('send_manager', '') and close_wizard.get('manager_email', '') or '')
- to_adr.append(context.get('send_partner', '') and close_wizard.get('partner_email', '') or '')
- description = close_wizard['description']
-
- task = task_obj.browse(cr, uid, context['task_id'], context=context)
- subject = "Task '%s' closed" % task.name
- from_adr = task.user_id.address_id.email
- task_obj._history(cr, uid, [task], _('Send'), history=True, subject=subject, email=to_adr, details=description, email_from=from_adr)
- if task.state == 'done':
- task_obj._history(cr, uid, [task], _('Done'))
- return res
-
-project_close_task()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_messages/i18n/en_US.po b/addons/project_messages/i18n/en_US.po
new file mode 100644
index 00000000000..dfb3b44c5b5
--- /dev/null
+++ b/addons/project_messages/i18n/en_US.po
@@ -0,0 +1,118 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_messages
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:34:15+0000\n"
+"PO-Revision-Date: 2010-08-20 10:34:15+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_messages
+#: field:project.messages,to_id:0
+msgid "To"
+msgstr "To"
+
+#. module: project_messages
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: project_messages
+#: field:project.messages,from_id:0
+msgid "From"
+msgstr "From"
+
+#. module: project_messages
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.messages_form
+#: model:ir.ui.menu,name:project_messages.menu_messages_form
+#: view:project.messages:0
+msgid "Communication Messages"
+msgstr "Communication Messages"
+
+#. module: project_messages
+#: help:project.messages,to_id:0
+msgid "Keep this empty to broadcast the message."
+msgstr "Keep this empty to broadcast the message."
+
+#. module: project_messages
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "The Object name must start with x_ and not contain any special character !"
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_messages
+msgid "project.messages"
+msgstr "project.messages"
+
+#. module: project_messages
+#: view:project.messages:0
+#: view:project.project:0
+#: field:project.project,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_project
+#: view:project.messages:0
+#: field:project.messages,project_id:0
+msgid "Project"
+msgstr "Project"
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: project_messages
+#: model:ir.module.module,description:project_messages.module_meta_information
+msgid "\n"
+" This module provides the functionality to send messages within a project.\n"
+" A user can send messages individually to other user. He can even broadcast\n"
+" it to all the users.\n"
+" "
+msgstr "\n"
+" This module provides the functionality to send messages within a project.\n"
+" A user can send messages individually to other user. He can even broadcast\n"
+" it to all the users.\n"
+" "
+
+#. module: project_messages
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message To"
+msgstr "Message To"
+
+#. module: project_messages
+#: view:project.messages:0
+#: field:project.messages,message:0
+#: view:project.project:0
+msgid "Message"
+msgstr "Message"
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message From"
+msgstr "Message From"
+
+#. module: project_messages
+#: model:ir.module.module,shortdesc:project_messages.module_meta_information
+msgid "In-Project Messaging System"
+msgstr "In-Project Messaging System"
+
diff --git a/addons/project_messages/i18n/fr.po b/addons/project_messages/i18n/fr.po
new file mode 100644
index 00000000000..44c435e3071
--- /dev/null
+++ b/addons/project_messages/i18n/fr.po
@@ -0,0 +1,118 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_messages
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:28+0000\n"
+"PO-Revision-Date: 2010-08-30 12:19+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: project_messages
+#: field:project.messages,to_id:0
+msgid "To"
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_messages
+#: field:project.messages,from_id:0
+msgid "From"
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.messages_form
+#: model:ir.ui.menu,name:project_messages.menu_messages_form
+#: view:project.messages:0
+msgid "Communication Messages"
+msgstr ""
+
+#. module: project_messages
+#: help:project.messages,to_id:0
+msgid "Keep this empty to broadcast the message."
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_messages
+msgid "project.messages"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+#: view:project.project:0
+#: field:project.project,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_project
+#: view:project.messages:0
+#: field:project.messages,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_messages
+#: model:ir.module.module,description:project_messages.module_meta_information
+msgid ""
+"\n"
+" This module provides the functionality to send messages within a "
+"project.\n"
+" A user can send messages individually to other user. He can even "
+"broadcast\n"
+" it to all the users.\n"
+" "
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message To"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+#: field:project.messages,message:0
+#: view:project.project:0
+msgid "Message"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message From"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.module.module,shortdesc:project_messages.module_meta_information
+msgid "In-Project Messaging System"
+msgstr ""
diff --git a/addons/project_messages/i18n/project_messages.pot b/addons/project_messages/i18n/project_messages.pot
new file mode 100644
index 00000000000..7c3229eaf44
--- /dev/null
+++ b/addons/project_messages/i18n/project_messages.pot
@@ -0,0 +1,114 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_messages
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:28:48+0000\n"
+"PO-Revision-Date: 2010-08-20 10:28:48+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_messages
+#: field:project.messages,to_id:0
+msgid "To"
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: project_messages
+#: field:project.messages,from_id:0
+msgid "From"
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.messages_form
+#: model:ir.ui.menu,name:project_messages.menu_messages_form
+#: view:project.messages:0
+msgid "Communication Messages"
+msgstr ""
+
+#. module: project_messages
+#: help:project.messages,to_id:0
+msgid "Keep this empty to broadcast the message."
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_messages
+msgid "project.messages"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+#: view:project.project:0
+#: field:project.project,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_project
+#: view:project.messages:0
+#: field:project.messages,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_messages
+#: model:ir.module.module,description:project_messages.module_meta_information
+msgid "\n"
+" This module provides the functionality to send messages within a project.\n"
+" A user can send messages individually to other user. He can even broadcast\n"
+" it to all the users.\n"
+" "
+msgstr ""
+
+#. module: project_messages
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message To"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+#: field:project.messages,message:0
+#: view:project.project:0
+msgid "Message"
+msgstr ""
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message From"
+msgstr ""
+
+#. module: project_messages
+#: model:ir.module.module,shortdesc:project_messages.module_meta_information
+msgid "In-Project Messaging System"
+msgstr ""
+
diff --git a/addons/project_messages/project_messages.py b/addons/project_messages/project_messages.py
index f71e64d2887..88142f78984 100644
--- a/addons/project_messages/project_messages.py
+++ b/addons/project_messages/project_messages.py
@@ -55,9 +55,7 @@ class project_with_message(osv.osv):
_inherit = 'project.project'
_columns = {
- 'message_ids':fields.one2many(
- 'project.messages', 'project_id', 'Messages',
- ),
+ 'message_ids':fields.one2many('project.messages', 'project_id', 'Messages'),
}
project_with_message()
diff --git a/addons/project_messages/project_messages_view.xml b/addons/project_messages/project_messages_view.xml
index ad1588797a1..9ef33c2643d 100644
--- a/addons/project_messages/project_messages_view.xml
+++ b/addons/project_messages/project_messages_view.xml
@@ -90,8 +90,20 @@
{"search_default_to_id":uid}
+ An in-project messagery system permits an efficient and trackable communication between project members. The messages are kept in the system and can then be used for post-analysis.
-
+
+
+
+
+
+
+ Messages
+ project.messages
+ form
+ tree,form
+
+
diff --git a/addons/project_mrp/__init__.py b/addons/project_mrp/__init__.py
index c2ef40bbb1e..364dec5a437 100644
--- a/addons/project_mrp/__init__.py
+++ b/addons/project_mrp/__init__.py
@@ -18,6 +18,6 @@
# along with this program. If not, see .
#
##############################################################################
+
import project_procurement
import project_mrp
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_mrp/i18n/tr.po b/addons/project_mrp/i18n/tr.po
index 439010fe693..2374df13342 100644
--- a/addons/project_mrp/i18n/tr.po
+++ b/addons/project_mrp/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 05:58+0000\n"
+"PO-Revision-Date: 2010-09-06 11:58+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_mrp
diff --git a/addons/project_mrp/project_mrp.py b/addons/project_mrp/project_mrp.py
index d5a76812a2d..4e99ee0b281 100644
--- a/addons/project_mrp/project_mrp.py
+++ b/addons/project_mrp/project_mrp.py
@@ -48,12 +48,13 @@ class project_task(osv.osv):
return True
project_task()
+
class product_product(osv.osv):
_inherit = "product.product"
_columns = {
'project_id': fields.many2one('project.project', 'Project', ondelete='set null',)
}
-product_product()
+product_product()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py
index 251a4600081..393961a005d 100644
--- a/addons/project_mrp/project_procurement.py
+++ b/addons/project_mrp/project_procurement.py
@@ -29,83 +29,32 @@ class procurement_order(osv.osv):
_columns = {
'task_id': fields.many2one('project.task', 'Task')
}
+ def check_produce_service(self, cr, uid, procurement, context=[]):
+ return True
def action_produce_assign_service(self, cr, uid, ids, context=None):
if context is None:
context = {}
for procurement in self.browse(cr, uid, ids):
- sline = self.pool.get('sale.order.line')
- product_obj=self.pool.get('product.product')
- content = ''
- sale_order = self.pool.get('sale.order')
- so_ref = procurement.name.split(':')[0]
- order_ids = sale_order.search(cr, uid, [('name', '=', so_ref)], context)
-
- if order_ids:
- sale_ids = sale_order.read(cr, uid, order_ids[0], ['order_line'], context=context)['order_line']
- else:
- so_ref = procurement.origin.split(':')[0]
- sale_ids = sline.search(cr, uid, [('procurement_id', '=',procurement.id)], context)
- l = None
- project_id = None
- analytic_account_id = False
- partner_id = False
-
- for line in sline.browse(cr, uid, sale_ids, context=context):
- content += (line.notes or '')
- l = line
- partner_id = line.order_id.partner_id.id
- if line.order_id.project_id:
- analytic_account_id = line.order_id.project_id.id
- partner_id = line.order_id.partner_id.id
- content+="\n\n"+line.order_id.project_id.complete_name
- break
-
- # Creating a project for task.Project is created from Procurement.
- project_obj = self.pool.get('project.project')
- proj_name = tools.ustr(so_ref)
- product_project = procurement.product_id.project_id or False
- proj_exist_id = project_obj.search(cr, uid, [('name', '=', proj_name)], context=context)
- if not proj_exist_id:
- parent_project = False
- if product_project:
- parent_project = product_project.analytic_account_id.id
- project_id = project_obj.create(cr, uid, {'name': proj_name, 'partner_id': partner_id, 'parent_id': parent_project})
- else:
- project_id = proj_exist_id[0]
-
self.write(cr, uid, [procurement.id], {'state': 'running'})
-
- name_task = ('','')
- planned_hours=0.0
- if procurement.product_id.type == 'service':
- proc_name = procurement.name
- if procurement.origin == proc_name:
- proc_name = procurement.product_id.name
-
- name_task = (procurement.origin, proc_name or '')
- else:
- name_task = (procurement.product_id.name or procurement.origin, procurement.name or '')
- planned_hours= procurement.product_id.sale_delay + procurement.product_id. produce_delay
+ planned_hours = procurement.product_qty
task_id = self.pool.get('project.task').create(cr, uid, {
- 'name': '%s:%s' % name_task,
+ 'name': '%s:%s' % (procurement.origin or '', procurement.name),
'date_deadline': procurement.date_planned,
'planned_hours':planned_hours,
'remaining_hours': planned_hours,
'user_id': procurement.product_id.product_manager.id,
- 'notes': "b"+(l and l.order_id.note or ''),
+ 'notes': procurement.note,
'procurement_id': procurement.id,
- 'description': content,
+ 'description': procurement.note,
'date_deadline': procurement.date_planned,
+ 'project_id': procurement.product_id.project_id and procurement.product_id.project_id.id or False,
'state': 'draft',
- 'partner_id': l and l.order_id.partner_id.id or False,
'company_id': procurement.company_id.id,
- 'project_id': project_id,
},context=context)
self.write(cr, uid, [procurement.id],{'task_id':task_id})
- product_obj.write(cr,uid,[procurement.product_id.id],{'project_id':project_id})
return task_id
procurement_order()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_mrp/test/project_task_procurement.yml b/addons/project_mrp/test/project_task_procurement.yml
index 50bc74f82ae..a997f09fd04 100644
--- a/addons/project_mrp/test/project_task_procurement.yml
+++ b/addons/project_mrp/test/project_task_procurement.yml
@@ -35,7 +35,6 @@
product_id: product_product_partnerstraining0
product_uom: product.uom_day
product_uom_qty: 5.0
- th_weight: 0.0
type: make_to_order
picking_policy: direct
pricelist_id: product.list0
@@ -49,27 +48,23 @@
I check the procurements.
-
!python {model: procurement.order}: |
- from tools.translate import _
orderline_obj = self.pool.get('sale.order.line')
line_ids = orderline_obj.search(cr, uid, [('order_id','=', ref('sale_order_so0'))])
orders = orderline_obj.browse(cr, uid, line_ids)
proc_ids = map(lambda x: x.procurement_id.id, orders)
- assert proc_ids, _('No Procurements!')
+ assert proc_ids, 'No Procurements!'
-
The scheduler runs.
-
!function {model: procurement.order, name: run_scheduler}:
- model: procurement.order
- search: "[('state','=','confirmed')]"
+ search: "[]"
-
- Now I check the tasks.
--
- I see that one task is created for my sale order.
+ Now I check that one task is created for my sale order.
-
!python {model: project.task}: |
- from tools.translate import _
order_obj = self.pool.get('sale.order')
order = order_obj.browse(cr, uid, ref('sale_order_so0'))
- task_id = self.search(cr, uid, [('project_id.name','=', order.name)])
- assert task_id, _('No Task is created!')
-
\ No newline at end of file
+ task_id = self.search(cr, uid, [('name','like', order.name)])
+ assert task_id, 'No Task is created!'
+
diff --git a/addons/project_planning/project_planning_report.xml b/addons/project_planning/project_planning_report.xml
index 2b71602f97c..6a60850124b 100644
--- a/addons/project_planning/project_planning_report.xml
+++ b/addons/project_planning/project_planning_report.xml
@@ -1,6 +1,10 @@
-
+
\ No newline at end of file
diff --git a/addons/project_planning/project_planning_view.xml b/addons/project_planning/project_planning_view.xml
index 38c65315ef5..93a5c2c81b7 100644
--- a/addons/project_planning/project_planning_view.xml
+++ b/addons/project_planning/project_planning_view.xml
@@ -100,7 +100,6 @@
attrs="{'readonly':[('state','!=','draft')]}"
on_change="onchange_planned(planned_hours,effective_hours)"/>
-
@@ -110,7 +109,7 @@
-
+
diff --git a/addons/project_planning/report/__init__.py b/addons/project_planning/report/__init__.py
index 9a6ca02408e..230f7e6a702 100644
--- a/addons/project_planning/report/__init__.py
+++ b/addons/project_planning/report/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,8 +15,8 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
#
##############################################################################
-
+import report_planning
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_planning/report/report_planning.py b/addons/project_planning/report/report_planning.py
new file mode 100644
index 00000000000..67fd118491f
--- /dev/null
+++ b/addons/project_planning/report/report_planning.py
@@ -0,0 +1,36 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import time
+
+from report import report_sxw
+
+class report_planning(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context=None):
+ super(report_planning, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ })
+
+report_sxw.report_sxw('report.report_account_analytic.planning.print','report_account_analytic.planning','addons/project_planning/report/report_planning.rml',parser=report_planning, header='internal')
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/project_planning/report/report_planning.rml b/addons/project_planning/report/report_planning.rml
index 976af76e9d6..8a6fe372661 100644
--- a/addons/project_planning/report/report_planning.rml
+++ b/addons/project_planning/report/report_planning.rml
@@ -1,8 +1,8 @@
-
+
-
+
@@ -12,7 +12,7 @@
-
+
@@ -22,17 +22,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -53,15 +42,22 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
@@ -69,17 +65,10 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
@@ -88,8 +77,8 @@
+
- [[ repeatIn(objects, 'o') ]]
@@ -98,21 +87,21 @@
- HR Planning
+ HR Planning
-
+
@@ -397,4 +364,4 @@
-
+
\ No newline at end of file
diff --git a/addons/purchase/report/request_quotation.rml b/addons/purchase/report/request_quotation.rml
index 961ce8239b4..ed2f1859f79 100644
--- a/addons/purchase/report/request_quotation.rml
+++ b/addons/purchase/report/request_quotation.rml
@@ -1,6 +1,6 @@
-
+
@@ -33,16 +33,16 @@
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -66,8 +66,8 @@
+
- [[repeatIn(objects,'order')]][[ setLang(order.partner_id.lang) ]]
@@ -80,7 +80,7 @@
[[ (order.dest_address_id and order.dest_address_id and order.dest_address_id.street) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.street) or '']][[ (order.dest_address_id and order.dest_address_id and order.dest_address_id.street2) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.street2) or '']][[ (order.dest_address_id and order.dest_address_id and order.dest_address_id.zip) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.zip) or '' ]] [[ (order.dest_address_id and order.dest_address_id and order.dest_address_id.city) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.city) or '' ]]
- [[ (order.dest_address_id and order.dest_address_id and order.dest_address_id.state_id and order.dest_address_id.state_id.name) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.state_id and order.warehouse_id.partner_address_id.state_id.name) or '']] [[(order.dest_address_id and order.dest_address_id and order.dest_address_id.country_id and order.dest_address_id.country_id.name) or (order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.country_id and order.warehouse_id.partner_address_id.country_id.name) or '' ]]
+ [[(order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.state_id and order.warehouse_id.partner_address_id.state_id.name) or order.partner_address_id and order.partner_address_id.state_id and order.partner_address_id.state_id.name]] [[(order.warehouse_id and order.warehouse_id.partner_address_id and order.warehouse_id.partner_address_id.country_id and order.warehouse_id.partner_address_id.country_id.name) or order.partner_address_id.country_id.name ]]
@@ -88,7 +88,7 @@
- [[ order.partner_id.name ]] [[ order.partner_id.title or '' ]]
+ [[ (order.partner_id and order.partner_id.title) or '' ]] [[ order.partner_id.name ]][[ (order.partner_address_id and order.partner_address_id.title) or '' ]] [[ order.partner_address_id.name ]] [[ (order.partner_address_id and order.partner_address_id.street) or '']] [[ order.partner_address_id.street2 ]][[ (order.partner_address_id and order.partner_address_id.zip) or '' ]] [[ (order.partner_address_id and order.partner_address_id.city) or '' ]]
@@ -124,13 +124,13 @@
[[repeatIn(order.order_line,'order_line')]]
-
+
-
-
-
+ [[ format(order.notes or '') ]]
@@ -162,4 +160,4 @@
[[ user.signature or '' ]]
-
+
\ No newline at end of file
diff --git a/addons/purchase/stock.py b/addons/purchase/stock.py
index 245da72cad8..49a28e352b2 100644
--- a/addons/purchase/stock.py
+++ b/addons/purchase/stock.py
@@ -40,7 +40,7 @@ class stock_picking(osv.osv):
_inherit = 'stock.picking'
_columns = {
'purchase_id': fields.many2one('purchase.order', 'Purchase Order',
- ondelete='set null', select=True, readonly=True),
+ ondelete='set null', select=True),
}
_defaults = {
'purchase_id': lambda *a: False,
diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml
index 867f48f6fe0..a991b79d0e9 100644
--- a/addons/purchase/stock_view.xml
+++ b/addons/purchase/stock_view.xml
@@ -19,7 +19,32 @@
id="act_purchase_order_2_stock_picking"
name="Picking"
res_model="stock.picking"
- src_model="purchase.order"/>
-
+ src_model="purchase.order"
+ context="{'contact_display': 'partner'}" />
+
+
+
+ tree
+
+
+
+
+
+ form
+
+
+
+
+
+ Incoming Picking Inherited
+ stock.picking
+ form
+
+
+
+
+
+
+
diff --git a/addons/purchase/wizard/purchase_installer.py b/addons/purchase/wizard/purchase_installer.py
index 010f847ad99..bf106adc3ac 100644
--- a/addons/purchase/wizard/purchase_installer.py
+++ b/addons/purchase/wizard/purchase_installer.py
@@ -25,7 +25,7 @@ class purchase_installer(osv.osv_memory):
_inherit = 'res.config.installer'
_columns = {
- 'purchase_requisition':fields.boolean('Purchase Requisition',help="Manages your Purchase Requisition and allow you to easily keep track and manage all your purchase orders."),
+ 'purchase_requisition':fields.boolean('Purchase Requisition',help="Manages your Purchase Requisition and allows you to easily keep track and manage all your purchase orders."),
'purchase_analytic_plans': fields.boolean('Purchase Analytic Plans',help="Manages analytic distribution and purchase orders.")
}
purchase_installer()
diff --git a/addons/purchase/wizard/purchase_installer.xml b/addons/purchase/wizard/purchase_installer.xml
index 369849e1b18..b39dbc6003b 100644
--- a/addons/purchase/wizard/purchase_installer.xml
+++ b/addons/purchase/wizard/purchase_installer.xml
@@ -8,20 +8,20 @@
-
- Purchase Modules Configuration
-
-
-
-
-
- Configure Your Purchase System
-
-
- In this page, you can extend your purchase system with purchase requisition facility and analytic distribution of purchase orders.
-
+
+ Purchase Modules Configuration
+
+
+
+
+
+ Configure Your Purchase System
+
+
+ In this page, you can extend your purchase system with purchase requisition facility and analytic distribution of purchase orders.
+ Configure
@@ -43,21 +43,10 @@
new
-
+ 3
-
- ir.actions.todo
- purchase_installer_action_replace
- tree
-
-
-
-
-
-
-
diff --git a/addons/purchase_requisition/__init__.py b/addons/purchase_requisition/__init__.py
index ea44f749bbf..0c1aab5b6e7 100644
--- a/addons/purchase_requisition/__init__.py
+++ b/addons/purchase_requisition/__init__.py
@@ -20,5 +20,6 @@
import purchase_requisition
import wizard
+import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase_requisition/__openerp__.py b/addons/purchase_requisition/__openerp__.py
index e8811499a9f..27be1f3ce64 100644
--- a/addons/purchase_requisition/__openerp__.py
+++ b/addons/purchase_requisition/__openerp__.py
@@ -32,7 +32,9 @@
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["wizard/purchase_requisition_partner_view.xml",
+ "purchase_requisition_data.xml",
"purchase_requisition_view.xml",
+ "purchase_requisition_report.xml",
"security/ir.model.access.csv","purchase_requisition_sequence.xml"
],
"active": False,
diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py
index 287dd16f119..13a760c9b87 100644
--- a/addons/purchase_requisition/purchase_requisition.py
+++ b/addons/purchase_requisition/purchase_requisition.py
@@ -21,6 +21,7 @@
##############################################################################
import time
+import netsvc
from osv import fields,osv
from tools.translate import _
@@ -39,6 +40,7 @@ class purchase_requisition(osv.osv):
'company_id': fields.many2one('res.company', 'Company', required=True),
'purchase_ids' : fields.one2many('purchase.order','requisition_id','Purchase Orders',states={'done': [('readonly', True)]}),
'line_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),
+ 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
'state': fields.selection([('draft','Draft'),('in_progress','In Progress'),('cancel','Cancelled'),('done','Done')], 'State', required=True)
}
_defaults = {
@@ -50,6 +52,15 @@ class purchase_requisition(osv.osv):
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'purchase.order.requisition'),
}
+ def copy(self, cr, uid, id, default=None,context={}):
+ if not default:
+ default = {}
+ default.update({
+ 'state':'draft',
+ 'purchase_ids':[],
+ 'name': self.pool.get('ir.sequence').get(cr, uid, 'purchase.order.requisition'),
+ })
+ return super(purchase_requisition, self).copy(cr, uid, id, default, context)
def tender_cancel(self, cr, uid, ids, context=None):
purchase_order_obj = self.pool.get('purchase.order')
for purchase in self.browse(cr, uid, ids):
@@ -63,9 +74,6 @@ class purchase_requisition(osv.osv):
return True
def tender_in_progress(self, cr, uid, ids, context=None):
- for quotations in self.browse(cr, uid, ids):
- if not quotations.purchase_ids:
- raise osv.except_osv(_('Purchase order required'),('You should have atleast one purchase order line defined for this tender'))
self.write(cr, uid, ids, {'state':'in_progress'} ,context=context)
for (id,name) in self.name_get(cr, uid, ids):
message = _('Tender') + " '" + name + "' "+ _(" is In Progress")
@@ -171,6 +179,8 @@ class procurement_order(osv.osv):
'name': sequence_obj.get(cr, uid, 'purchase.order.requisition'),
'origin': procurement.name,
'date_end': procurement.date_planned,
+ 'warehouse_id':procurement.purchase_id and procurement.purchase_id.warehouse_id.id,
+ 'company_id':procurement.company_id.id,
'line_ids': [(0,0,{
'product_id': procurement.product_id.id,
'product_uom_id': procurement.product_uom.id,
@@ -184,4 +194,4 @@ class procurement_order(osv.osv):
procurement_order()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase_requisition/purchase_requisition_data.xml b/addons/purchase_requisition/purchase_requisition_data.xml
new file mode 100644
index 00000000000..73b828161a1
--- /dev/null
+++ b/addons/purchase_requisition/purchase_requisition_data.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/purchase_requisition/purchase_requisition_report.xml b/addons/purchase_requisition/purchase_requisition_report.xml
new file mode 100644
index 00000000000..97d510fe752
--- /dev/null
+++ b/addons/purchase_requisition/purchase_requisition_report.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml
index 0a436500986..eed99cefd6c 100644
--- a/addons/purchase_requisition/purchase_requisition_view.xml
+++ b/addons/purchase_requisition/purchase_requisition_view.xml
@@ -2,17 +2,6 @@
-
- purchase.order.tree.inherit
- tree
- purchase.order
-
-
-
-
-
-
- purchase.order.form.inherit
@@ -20,12 +9,23 @@
purchase.order
-
+
+
+ purchase.order.list.select.inherit
+ form
+ purchase.order
+
+
+
+
+
+
+ purchase.requisition.formform
@@ -39,6 +39,7 @@
+
@@ -77,12 +78,15 @@
+
+
+
-
@@ -117,11 +121,13 @@
-
-
+
+
+
-
+
+
@@ -180,5 +186,12 @@
+
+
diff --git a/addons/purchase_requisition/report/__init__.py b/addons/purchase_requisition/report/__init__.py
new file mode 100644
index 00000000000..a2d5684cd1d
--- /dev/null
+++ b/addons/purchase_requisition/report/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import requisition
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/purchase_requisition/report/purchase_requisition.rml b/addons/purchase_requisition/report/purchase_requisition.rml
new file mode 100644
index 00000000000..95f1dd47d31
--- /dev/null
+++ b/addons/purchase_requisition/report/purchase_requisition.rml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [[ repeatIn(objects,'requisition') ]]
+ Purchase for Requisitions [[ requisition.name ]]
+
+
+
+
+
+
+ Requisition Reference
+
+
+ Requisition Date
+
+
+ Type
+
+
+ Origin
+
+
+
+
+ [[ requisition.name ]]
+
+
+ [[ requisition.date_start ]]
+
+
+ [[ requisition.exclusive=='multiple' and 'Multiple Requisitions' or requisition.exclusive=='exclusive' and 'Purchase Requisitions (exclusive)' ]]
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/purchase_requisition/report/requisition.py b/addons/purchase_requisition/report/requisition.py
new file mode 100644
index 00000000000..4e3f3dd93a3
--- /dev/null
+++ b/addons/purchase_requisition/report/requisition.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import time
+from report import report_sxw
+from osv import osv
+import pooler
+
+class requisition(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(requisition, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ })
+
+report_sxw.report_sxw('report.purchase.requisition','purchase.requisition','addons/purchase_requisition/report/purchase_requisition.rml',parser=requisition)
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py
index f87460489ea..297286ce472 100644
--- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py
+++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py
@@ -92,7 +92,7 @@ class purchase_requisition_partner(osv.osv_memory):
pricelist_id = partner.property_product_pricelist_purchase and partner.property_product_pricelist_purchase.id or False
price = pricelist_obj.price_get(cr, uid, [pricelist_id], line.product_id.id, line.product_qty, False, {'uom': uom_id})[pricelist_id]
product = prod_obj.browse(cr, uid, line.product_id.id, context=context)
-
+ location_id = self.pool.get('stock.warehouse').read(cr, uid, [tender.warehouse_id.id], ['lot_input_id'])[0]['lot_input_id'][0]
purchase_order_line= {
'name': product.partner_ref,
@@ -118,6 +118,10 @@ class purchase_requisition_partner(osv.osv_memory):
'company_id': tender.company_id.id,
'fiscal_position': partner.property_account_position and partner.property_account_position.id or False,
'requisition_id':tender.id,
+ 'notes':tender.description,
+ 'warehouse_id':tender.warehouse_id.id and tender.warehouse_id.id ,
+ 'location_id':location_id,
+ 'company_id':tender.company_id.id,
})
order_ids=[]
for order_line in list_line:
diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml
index c7a38cf64e1..6214c4fad51 100644
--- a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml
+++ b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/addons/report_designer/installer.py b/addons/report_designer/installer.py
index d67ebabb77e..4dd35fd4560 100644
--- a/addons/report_designer/installer.py
+++ b/addons/report_designer/installer.py
@@ -29,14 +29,14 @@ class report_designer_installer(osv.osv_memory):
'base_report_designer':fields.boolean('OpenOffice Report Designer',help="This module adds wizards to import/export .SXW report that "
"you can modify in OpenOffice.Once you have modified it you can "
"upload the report using the same wizard."),
- 'base_report_creator':fields.boolean('Query Builder',help="his module allows you to create any statistic "
+ 'base_report_creator':fields.boolean('Query Builder',help="Query Builder allows you to create any statistic "
"reports on several objects. It's a SQL query builder and browser for and users. "
"After installation, it adds a menu to define custom report in the Dashboard menu."),
'olap':fields.boolean('Business Intelligence Report',help="Olap module is used to install BI module in client. Olap provides Online "
"Analytical Process with the mdx query. BI provides Cube Browsing and Cube Designing. "
- "After installation you will get Cube Browser and Cube Desinger in Reporting Menu. "
+ "After installation you will get Cube Browser and Cube Designer in Reporting Menu. "
"Cube Browser is used to generate the reports with table view (mdx view) of mdx query "
- "and Cube designer is used to make cubes in BI."),
+ "and Cube Designer is used to make cubes in BI."),
}
report_designer_installer()
diff --git a/addons/report_designer/report_designer_installer.xml b/addons/report_designer/report_designer_installer.xml
index 6a48c919460..79381691d32 100644
--- a/addons/report_designer/report_designer_installer.xml
+++ b/addons/report_designer/report_designer_installer.xml
@@ -8,11 +8,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/addons/stock/report/packing.rml b/addons/stock/report/packing.rml
index 7288615da6d..15fa35e07e9 100644
--- a/addons/stock/report/packing.rml
+++ b/addons/stock/report/packing.rml
@@ -1,6 +1,6 @@
-
+
@@ -136,7 +136,7 @@
[[ (picking.address_id and picking.address_id.partner_id and picking.address_id.partner_id.title) or '' ]] [[ picking.address_id and picking.address_id.partner_id and picking.address_id.partner_id.name ]][[ picking.address_id and picking.address_id.street or '' ]][[ picking.address_id and picking.address_id.zip or '' ]] [[ picking.address_id and picking.address_id.city or '']]
-
+
@@ -276,7 +276,7 @@
-
+
[[ ([line for line in picking.move_lines if (line.state == 'draft' )]) and 'Non Assigned Products:' or removeParentNode('para') ]]
diff --git a/addons/stock/report/picking.rml b/addons/stock/report/picking.rml
index 3ef7ce2e866..3b837f51844 100644
--- a/addons/stock/report/picking.rml
+++ b/addons/stock/report/picking.rml
@@ -1,6 +1,6 @@
-
+
@@ -97,7 +97,7 @@
-
+
@@ -125,35 +125,20 @@
-
-
-
-
-
[[ (picking.address_id and picking.address_id.partner_id and picking.address_id.partner_id.title) or '' ]] [[ picking.address_id and picking.address_id.partner_id and picking.address_id.partner_id.name ]][[ picking.address_id and picking.address_id.street or '' ]]
+ [[ picking.address_id and picking.address_id.street2 or removeParentNode('para') ]][[ picking.address_id and picking.address_id.zip or '' ]] [[ picking.address_id and picking.address_id.city or '']]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ [[ (picking.address_id and picking.address_id.state_id and picking.address_id.state_id.name) or removeParentNode('para') ]]
+ [[ (picking.address_id and picking.address_id.country_id and picking.address_id.country_id.name) or '' ]]
- [[ picking.address_id and 'Shipping Address :' or removeParentNode('para') ]]
- [[ ( picking.address_id and picking.address_id.title) or '' ]] [[ (picking.address_id and picking.address_id.name) or '' ]]
+ [[ (picking.address_id and picking.address_id.title) or '' ]] [[ (picking.address_id and picking.address_id.name) or '' ]] [[ (picking.address_id and picking.address_id.street) or '' ]]
- [[ (picking.address_id and picking.address_id.zip) or '' ]] [[ (picking.address_id and picking.address_id.city) or '' ]] [[ (picking.address_id and picking.address_id.state_id and picking.address_id.state_id.name) or '' ]]
+ [[ (picking.address_id and picking.address_id.street2) or removeParentNode('para') ]]
+ [[ (picking.address_id and picking.address_id.zip) or '' ]] [[ (picking.address_id and picking.address_id.city) or '' ]]
+ [[ (picking.address_id and picking.address_id.state_id and picking.address_id.state_id.name) or removeParentNode('para') ]][[ (picking.address_id and picking.address_id.country_id and picking.address_id.country_id.name) or '' ]]
- [[ 'weight' in picking._columns.keys() and picking.weight or '']]
+ [[ 'weight' in picking._columns.keys() and picking.weight or '']]
-
+
Description
@@ -227,22 +212,16 @@
State
- Quantity
+ Quantity
Location
-
-
-
-
-
- [[ repeatIn([line for line in picking.move_lines if (line.state == 'confirmed' or line.state=='done' or line.state=='assigned')],'move_lines') ]]
- [[ picking.move_lines or removeParentNode('blockTable')]]
+ [[ picking.move_lines or removeParentNode('blockTable')]]
- [[ (move_lines.location_id and move_lines.location_id.name) or '' ]]
+ [[ (move_lines.location_id and move_lines.location_id.name) or '' ]]
-
-
-
-
-
-
-
-
-
-
-
+
+
+ [[ ([line for line in picking.move_lines if (line.state == 'draft' or line.state=='waiting' )]) and 'Non Assigned Products:' or removeParentNode('para') ]][[ repeatIn([line for line in picking.move_lines if (line.state == 'draft' or line.state=='waiting')],'move_lines') ]]
- [[ picking.move_lines or removeParentNode('blockTable')]]
+ [[ picking.move_lines or removeParentNode('blockTable')]]
[[ p.location_id.name ]]
@@ -208,4 +222,4 @@
-
+
\ No newline at end of file
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index c76bc609a65..e19e36b641f 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1003,7 +1003,7 @@ class stock_picking(osv.osv):
def unlink(self, cr, uid, ids, context=None):
move_obj = self.pool.get('stock.move')
- if not context:
+ if context is None:
context = {}
for pick in self.browse(cr, uid, ids, context=context):
if pick.state in ['done','cancel']:
@@ -1464,8 +1464,8 @@ class stock_move(osv.osv):
warning = {}
if (location.usage == 'internal') and (product_qty > (prodlot.stock_available or 0.0)):
warning = {
- 'title': 'Bad Lot Assignation !',
- 'message': 'You are moving %.2f products but only %.2f available in this lot.' % (product_qty, prodlot.stock_available or 0.0)
+ 'title': _('Bad Lot Assignation !'),
+ 'message': _('You are moving %.2f products but only %.2f available in this lot.') % (product_qty, prodlot.stock_available or 0.0)
}
return {'warning': warning}
@@ -1572,24 +1572,30 @@ class stock_move(osv.osv):
context = {}
for picking, todo in self._chain_compute(cr, uid, moves, context=context).items():
ptype = todo[0][1][5] and todo[0][1][5] or self.pool.get('stock.location').picking_type_get(cr, uid, todo[0][0].location_dest_id, todo[0][1][0])
- pick_name = picking.name
+ pick_name = picking.name or ''
if ptype == 'delivery':
pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.delivery')
-
- pickid = picking_obj.create(cr, uid, {
- 'name': pick_name,
- 'origin': str(picking.origin or ''),
- 'type': ptype,
- 'note': picking.note,
- 'move_type': picking.move_type,
- 'auto_picking': todo[0][1][1] == 'auto',
- 'stock_journal_id': todo[0][1][3],
- 'company_id': todo[0][1][4] or res_obj._company_default_get(cr, uid, 'stock.company', context),
- 'address_id': picking.address_id.id,
- 'invoice_state': 'none',
- 'date': picking.date,
- 'sale_id':' sale_id' in picking._columns.keys() and picking.sale_id.id or False
- })
+ check_picking_ids = picking_obj.search(cr, uid, [('name','=',picking.name),('origin','=',str(picking.origin or '')),('type','=',ptype),('move_type','=',picking.move_type)])
+ if check_picking_ids:
+ pickid = check_picking_ids[0]
+ else:
+ if picking:
+ pickid = picking_obj.create(cr, uid, {
+ 'name': pick_name,
+ 'origin': str(picking.origin or ''),
+ 'type': ptype,
+ 'note': picking.note,
+ 'move_type': picking.move_type,
+ 'auto_picking': todo[0][1][1] == 'auto',
+ 'stock_journal_id': todo[0][1][3],
+ 'company_id': todo[0][1][4] or res_obj._company_default_get(cr, uid, 'stock.company', context=context),
+ 'address_id': picking.address_id.id,
+ 'invoice_state': 'none',
+ 'date': picking.date,
+ 'sale_id':' sale_id' in picking._columns.keys() and picking.sale_id.id or False
+ })
+ else:
+ pickid = False
for move, (loc, auto, delay, journal, company_id, ptype) in todo:
new_id = move_obj.copy(cr, uid, move.id, {
'location_id': move.location_dest_id.id,
@@ -1597,7 +1603,7 @@ class stock_move(osv.osv):
'date_moved': time.strftime('%Y-%m-%d'),
'picking_id': pickid,
'state': 'waiting',
- 'company_id': company_id or res_obj._company_default_get(cr, uid, 'stock.company', context) ,
+ 'company_id': company_id or res_obj._company_default_get(cr, uid, 'stock.company', context=context) ,
'move_history_ids': [],
'date_planned': (datetime.strptime(move.date_planned, '%Y-%m-%d %H:%M:%S') + relativedelta(days=delay or 0)).strftime('%Y-%m-%d'),
'move_history_ids2': []}
@@ -1607,8 +1613,9 @@ class stock_move(osv.osv):
'move_history_ids': [(4, new_id)]
})
new_moves.append(self.browse(cr, uid, [new_id])[0])
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'stock.picking', pickid, 'button_confirm', cr)
+ if pickid:
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'stock.picking', pickid, 'button_confirm', cr)
if new_moves:
create_chained_picking(self, cr, uid, new_moves, context)
create_chained_picking(self, cr, uid, moves, context)
@@ -1687,13 +1694,15 @@ class stock_move(osv.osv):
def setlast_tracking(self, cr, uid, ids, context=None):
tracking_obj = self.pool.get('stock.tracking')
tracking = context.get('tracking', False)
- last_track = [line.tracking_id.id for line in self.browse(cr, uid, ids)[0].picking_id.move_lines if line.tracking_id]
- if not last_track:
- last_track = tracking_obj.create(cr, uid, {}, context=context)
- else:
- last_track.sort()
- last_track = last_track[-1]
- self.write(cr, uid, ids, {'tracking_id': last_track})
+ picking = self.browse(cr, uid, ids)[0].picking_id
+ if picking:
+ last_track = [line.tracking_id.id for line in picking.move_lines if line.tracking_id]
+ if not last_track:
+ last_track = tracking_obj.create(cr, uid, {}, context=context)
+ else:
+ last_track.sort()
+ last_track = last_track[-1]
+ self.write(cr, uid, ids, {'tracking_id': last_track})
return True
#
@@ -1877,12 +1886,13 @@ class stock_move(osv.osv):
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
+ ctx = context.copy()
for move in self.browse(cr, uid, ids, context=context):
- if move.state != 'draft':
+ if move.state != 'draft' and not ctx.get('call_unlink',False):
raise osv.except_osv(_('UserError'),
_('You can only delete draft moves.'))
return super(stock_move, self).unlink(
- cr, uid, ids, context=context)
+ cr, uid, ids, context=ctx)
def _create_lot(self, cr, uid, ids, product_id, prefix=False):
""" Creates production lot
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index f81de1c5faf..203b190053c 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -3,7 +3,7 @@
-
+
@@ -1523,7 +1523,7 @@
+ states="draft,waiting,confirmed,assigned" groups="base.group_extended"/>
\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_invoice_directly
diff --git a/addons/stock_location/i18n/tr.po b/addons/stock_location/i18n/tr.po
index 928ed30dd13..7b77b009db8 100644
--- a/addons/stock_location/i18n/tr.po
+++ b/addons/stock_location/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:31+0000\n"
+"PO-Revision-Date: 2010-09-06 12:19+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:52+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
diff --git a/addons/stock_no_autopicking/i18n/tr.po b/addons/stock_no_autopicking/i18n/tr.po
index 6734e4c5ea2..aafb43df96d 100644
--- a/addons/stock_no_autopicking/i18n/tr.po
+++ b/addons/stock_no_autopicking/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:04+0000\n"
+"PO-Revision-Date: 2010-09-06 13:22+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_no_autopicking
diff --git a/addons/stock_planning/i18n/en_US.po b/addons/stock_planning/i18n/en_US.po
new file mode 100644
index 00000000000..2e9440aecad
--- /dev/null
+++ b/addons/stock_planning/i18n/en_US.po
@@ -0,0 +1,1396 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * stock_planning
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 11:29:01+0000\n"
+"PO-Revision-Date: 2010-08-20 11:29:01+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#, python-format
+msgid "No forecasts for selected period or no products in selected category !"
+msgstr "No forecasts for selected period or no products in selected category !"
+
+#. module: stock_planning
+#: help:stock.planning,stock_only:0
+msgid "Check to calculate stock location of selected warehouse only. If not selected calculation is made for input, stock and output location of warehouse."
+msgstr "Check to calculate stock location of selected warehouse only. If not selected calculation is made for input, stock and output location of warehouse."
+
+#. module: stock_planning
+#: field:stock.planning,maximum_op:0
+msgid "Maximum Rule"
+msgstr "Maximum Rule"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_company:0
+msgid "This Copmany Period1"
+msgstr "This Copmany Period1"
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Already Out: "
+msgstr "\n Already Out: "
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_amt:0
+msgid "Forecast value which will be converted to Product Quantity according to prices."
+msgstr "Forecast value which will be converted to Product Quantity according to prices."
+
+#. module: stock_planning
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Incoming Left must be greater than 0 !"
+msgstr "Incoming Left must be greater than 0 !"
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_before:0
+msgid "Planned Out in periods before calculated. Between start date of current period and one day before start of calculated period."
+msgstr "Planned Out in periods before calculated. Between start date of current period and one day before start of calculated period."
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "No products in selected category !"
+msgstr "No products in selected category !"
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse which forecasts will concern. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+msgstr "Warehouse which forecasts will concern. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_left:0
+msgid "Expected Out"
+msgstr "Expected Out"
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid " "
+msgstr " "
+
+#. module: stock_planning
+#: field:stock.planning,incoming_left:0
+msgid "Incoming Left"
+msgstr "Incoming Left"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Requisition history"
+msgstr "Requisition history"
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Create Forecasts Lines"
+msgstr "Create Forecasts Lines"
+
+#. module: stock_planning
+#: help:stock.planning,outgoing:0
+msgid "Quantity of all confirmed outgoing moves in calculated Period."
+msgstr "Quantity of all confirmed outgoing moves in calculated Period."
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Daily Periods"
+msgstr "Create Daily Periods"
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,company_id:0
+#: field:stock.planning.createlines,company_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,company_id:0
+#: field:stock.sale.forecast.createlines,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: stock_planning
+#: help:stock.planning,warehouse_forecast:0
+msgid "All sales forecasts for selected Warehouse of selected Product during selected Period."
+msgstr "All sales forecasts for selected Warehouse of selected Product during selected Period."
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines
+msgid "Create Stock and Sales Periods"
+msgstr "Create Stock and Sales Periods"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Minimum Stock Rule Indicators"
+msgstr "Minimum Stock Rule Indicators"
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,period_id:0
+msgid "Period which forecasts will concern."
+msgstr "Period which forecasts will concern."
+
+#. module: stock_planning
+#: field:stock.planning,stock_only:0
+msgid "Stock Location Only"
+msgstr "Stock Location Only"
+
+#. module: stock_planning
+#: help:stock.planning,already_out:0
+msgid "Quantity which is already dispatched out of this warehouse in current period."
+msgstr "Quantity which is already dispatched out of this warehouse in current period."
+
+#. module: stock_planning
+#: help:stock.planning,procure_to_stock:0
+msgid "Chect to make procurement to stock location of selected warehouse. If not selected procurement will be made into input location of warehouse."
+msgstr "Chect to make procurement to stock location of selected warehouse. If not selected procurement will be made into input location of warehouse."
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Current Period Situation"
+msgstr "Current Period Situation"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Planned Out Before: "
+msgstr "\n Planned Out Before: "
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Monthly Periods"
+msgstr "Create Monthly Periods"
+
+#. module: stock_planning
+#: help:stock.planning,supply_warehouse_id:0
+msgid "Warehouse used as source in supply pick move created by 'Supply from Another Warhouse'."
+msgstr "Warehouse used as source in supply pick move created by 'Supply from Another Warhouse'."
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period_createlines
+msgid "stock.period.createlines"
+msgstr "stock.period.createlines"
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_before:0
+msgid "Planned Out Before"
+msgstr "Planned Out Before"
+
+#. module: stock_planning
+#: field:stock.planning.createlines,forecasted_products:0
+msgid "All Products with Forecast"
+msgstr "All Products with Forecast"
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Periods :"
+msgstr "Periods :"
+
+#. module: stock_planning
+#: help:stock.planning,already_in:0
+msgid "Quantity which is already picked up to this warehouse in current period."
+msgstr "Quantity which is already picked up to this warehouse in current period."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In Before: "
+msgstr " Confirmed In Before: "
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Stock and Sales Forecast"
+msgstr "Stock and Sales Forecast"
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast
+msgid "stock.sale.forecast"
+msgstr "stock.sale.forecast"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_dept_id:0
+msgid "This Department"
+msgstr "This Department"
+
+#. module: stock_planning
+#: field:stock.planning,to_procure:0
+msgid "Planned In"
+msgstr "Planned In"
+
+#. module: stock_planning
+#: field:stock.planning,stock_simulation:0
+msgid "Stock Simulation"
+msgstr "Stock Simulation"
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning_createlines
+msgid "stock.planning.createlines"
+msgstr "stock.planning.createlines"
+
+#. module: stock_planning
+#: help:stock.planning,incoming_before:0
+msgid "Confirmed incoming in periods before calculated (Including Already In). Between start date of current period and one day before start of calculated period."
+msgstr "Confirmed incoming in periods before calculated (Including Already In). Between start date of current period and one day before start of calculated period."
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Search Sales Forecast"
+msgstr "Search Sales Forecast"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_user:0
+msgid "This User Period5"
+msgstr "This User Period5"
+
+#. module: stock_planning
+#: help:stock.planning,history:0
+msgid "History of procurement or internal supply of this planning line."
+msgstr "History of procurement or internal supply of this planning line."
+
+#. module: stock_planning
+#: help:stock.planning,company_forecast:0
+msgid "All sales forecasts for whole company (for all Warehouses) of selected Product during selected Period."
+msgstr "All sales forecasts for whole company (for all Warehouses) of selected Product during selected Period."
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_user:0
+msgid "This User Period1"
+msgstr "This User Period1"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_user:0
+msgid "This User Period3"
+msgstr "This User Period3"
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_main
+#: view:stock.planning:0
+msgid "Stock Planning"
+msgstr "Stock Planning"
+
+#. module: stock_planning
+#: field:stock.planning,minimum_op:0
+msgid "Minimum Rule"
+msgstr "Minimum Rule"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Procure Incoming Left"
+msgstr "Procure Incoming Left"
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick List "
+msgstr "Pick List "
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Create"
+msgstr "Create"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_planning_form
+#: model:ir.module.module,shortdesc:stock_planning.module_meta_information
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning
+#: view:stock.planning:0
+msgid "Master Procurement Schedule"
+msgstr "Master Procurement Schedule"
+
+#. module: stock_planning
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Creation Date: "
+msgstr " Creation Date: "
+
+#. module: stock_planning
+#: field:stock.planning,period_id:0
+#: field:stock.planning.createlines,period_id:0
+#: field:stock.sale.forecast,period_id:0
+#: field:stock.sale.forecast.createlines,period_id:0
+msgid "Period"
+msgstr "Period"
+
+#. module: stock_planning
+#: view:stock.period:0
+#: field:stock.period,state:0
+#: field:stock.planning,state:0
+#: field:stock.sale.forecast,state:0
+msgid "State"
+msgstr "State"
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category of products which created forecasts will concern."
+msgstr "Product Category of products which created forecasts will concern."
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period
+msgid "stock period"
+msgstr "stock period"
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast_createlines
+msgid "stock.sale.forecast.createlines"
+msgstr "stock.sale.forecast.createlines"
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_id:0
+#: field:stock.planning.createlines,warehouse_id:0
+#: field:stock.sale.forecast,warehouse_id:0
+#: field:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse"
+msgstr "Warehouse"
+
+#. module: stock_planning
+#: help:stock.planning,stock_simulation:0
+msgid "Stock simulation at the end of selected Period.\n"
+" For current period it is: \n"
+"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n"
+"For periods ahead it is: \n"
+"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned In."
+msgstr "Stock simulation at the end of selected Period.\n"
+" For current period it is: \n"
+"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n"
+"For periods ahead it is: \n"
+"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned In."
+
+#. module: stock_planning
+#: help:stock.sale.forecast,analyze_company:0
+msgid "Check this box to see the sales for whole company."
+msgstr "Check this box to see the sales for whole company."
+
+#. module: stock_planning
+#: field:stock.sale.forecast,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Search Stock Planning"
+msgstr "Search Stock Planning"
+
+#. module: stock_planning
+#: field:stock.planning,incoming_before:0
+msgid "Incoming Before"
+msgstr "Incoming Before"
+
+#. module: stock_planning
+#: field:stock.planning.createlines,product_categ_id:0
+#: field:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category"
+msgstr "Product Category"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "Error !"
+msgstr "Error !"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Manual planning for "
+msgstr "Manual planning for "
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_user_id:0
+msgid "This User"
+msgstr "This User"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecasts"
+msgstr "Forecasts"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Supply from Another Warehouse"
+msgstr "Supply from Another Warehouse"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculate Planning"
+msgstr "Calculate Planning"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Procurement created in MPS by user: "
+msgstr "Procurement created in MPS by user: "
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr "Invalid action !"
+
+#. module: stock_planning
+#: help:stock.planning,stock_start:0
+msgid "Stock quantity one day before current period."
+msgstr "Stock quantity one day before current period."
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Weekly Periods"
+msgstr "Create Weekly Periods"
+
+#. module: stock_planning
+#: help:stock.planning,maximum_op:0
+msgid "Maximum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr "Maximum quantity set in Minimum Stock Rules for this Warhouse"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse !"
+msgstr "You must specify a Source Warehouse !"
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+msgid "Creates planning lines for selected period and warehouse."
+msgstr "Creates planning lines for selected period and warehouse."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Warehouse Forecast: "
+msgstr "\n Warehouse Forecast: "
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Cannot delete Validated Sale Forecasts !"
+msgstr "Cannot delete Validated Sale Forecasts !"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_user:0
+msgid "This User Period4"
+msgstr "This User Period4"
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Note: Doesn't duplicate existing lines created by you."
+msgstr "Note: Doesn't duplicate existing lines created by you."
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Stock and Sales Period"
+msgstr "Stock and Sales Period"
+
+#. module: stock_planning
+#: field:stock.planning,company_forecast:0
+msgid "Company Forecast"
+msgstr "Company Forecast"
+
+#. module: stock_planning
+#: help:stock.planning,product_uom:0
+#: help:stock.sale.forecast,product_uom:0
+msgid "Unit of Measure used to show the quanities of stock calculation.You can use units form default category or from second category (UoS category)."
+msgstr "Unit of Measure used to show the quanities of stock calculation.You can use units form default category or from second category (UoS category)."
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per User :"
+msgstr "Per User :"
+
+#. module: stock_planning
+#: field:stock.period,name:0
+#: field:stock.period.createlines,name:0
+msgid "Period Name"
+msgstr "Period Name"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,user_id:0
+msgid "Created/Validated by"
+msgstr "Created/Validated by"
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_forecast:0
+msgid "Warehouse Forecast"
+msgstr "Warehouse Forecast"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_company:0
+msgid "This Company Period4"
+msgstr "This Company Period4"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_company:0
+msgid "This Company Period5"
+msgstr "This Company Period5"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Planned Out: "
+msgstr "\n Planned Out: "
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_company:0
+msgid "This Company Period2"
+msgstr "This Company Period2"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_company:0
+msgid "This Company Period3"
+msgstr "This Company Period3"
+
+#. module: stock_planning
+#: field:stock.period,date_start:0
+#: field:stock.period.createlines,date_start:0
+msgid "Start Date"
+msgstr "Start Date"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_user:0
+msgid "This User Period2"
+msgstr "This User Period2"
+
+#. module: stock_planning
+#: field:stock.planning,confirmed_forecasts_only:0
+msgid "Validated Forecasts"
+msgstr "Validated Forecasts"
+
+#. module: stock_planning
+#: help:stock.planning.createlines,product_categ_id:0
+msgid "Planning will be created for products from Product Category selected by this field. This field is ignored when you check \"All Forecasted Product\" box."
+msgstr "Planning will be created for products from Product Category selected by this field. This field is ignored when you check \"All Forecasted Product\" box."
+
+#. module: stock_planning
+#: field:stock.planning,planned_outgoing:0
+msgid "Planned Out"
+msgstr "Planned Out"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecast"
+msgstr "Forecast"
+
+#. module: stock_planning
+#: selection:stock.period,state:0
+#: selection:stock.planning,state:0
+#: selection:stock.sale.forecast,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: stock_planning
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Warehouse "
+msgstr "Warehouse "
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_dept:0
+msgid "This Dept Period5"
+msgstr "This Dept Period5"
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create periods for Stock and Sales Planning"
+msgstr "Create periods for Stock and Sales Planning"
+
+#. module: stock_planning
+#: help:stock.planning,planned_outgoing:0
+msgid "Enter planned outgoing quantity from selected Warehouse during the selected Period of selected Product. To plan this value look at Confirmed Out or Sales Forecasts. This value should be equal or greater than Confirmed Out."
+msgstr "Enter planned outgoing quantity from selected Warehouse during the selected Period of selected Product. To plan this value look at Confirmed Out or Sales Forecasts. This value should be equal or greater than Confirmed Out."
+
+#. module: stock_planning
+#: model:ir.module.module,description:stock_planning.module_meta_information
+msgid "\n"
+"This module is based on original OpenERP SA module stock_planning version 1.0 of the same name Master Procurement Schedule.\n"
+"\n"
+"Purpose of MPS is to allow create a manual procurement (requisition) apart of MRP scheduler (which works automatically on minimum stock rules).\n"
+"\n"
+"Terms used in the module:\n"
+"- Stock and Sales Period - is the time (between Start Date and End Date) for which you plan Stock and Sales Forecast and make Procurement Planning. \n"
+"- Stock and Sales Forecast - is the quantity of products you plan to sell in the Period.\n"
+"- Stock Planning - is the quantity of products you plan to purchase or produce for the Period.\n"
+"\n"
+"Because we have another module sale_forecast which uses terms \"Sales Forecast\" and \"Planning\" as amount values we will use terms \"Stock and Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity values. \n"
+"\n"
+"Activity with this module is divided to three steps:\n"
+"- Creating Periods. Mandatory step.\n"
+"- Creating Sale Forecasts and entering quantities to them. Optional step but useful for further planning.\n"
+"- Creating Planning lines, entering quantities to them and making Procurement. Making procurement is the final step for the Period.\n"
+"\n"
+"Periods\n"
+"=======\n"
+"You have two menu items for Periods in \"Sales Management - Configuration\". There are:\n"
+"- \"Create Sales Periods\" - Which automates creating daily, weekly or monthly periods.\n"
+"- \"Stock and sales Periods\" - Which allows to create any type of periods, change the dates and change the State of period.\n"
+"\n"
+"Creating periods is the first step you have to do to use modules features. You can create custom periods using \"New\" button in \"Stock and Sales Periods\" form or view but it is recommended to use automating tool.\n"
+"\n"
+"Remarks:\n"
+"- These periods (officially Stock and Sales Periods) are separated of Financial or other periods in the system.\n"
+"- Periods are not assigned to companies (when you use multicompany feature at all). Module suppose that you use the same periods across companies. If you wish to use different periods for different companies define them as you wish (they can overlap). Later on in this text will be indications how to use such periods.\n"
+"- When periods are created automatically their start and finish dates are with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock. \n"
+"- If you use overlapping periods for the same product, warehouse and company results can be unpredictable.\n"
+"- If current date doesn't belong to any period or you have holes between periods results can be unpredictable.\n"
+"\n"
+"Sales Forecasts\n"
+"===============\n"
+"You have few menus for Sales forecast in \"Sales Management - Sales Forecasts\".\n"
+"- \"Create Sales Forecasts for Sales Periods\" - which automates creating forecasts lines according to some parameters.\n"
+"- \"Sales Forecasts\" - few menus for working with forecasts lists and forms.\n"
+"\n"
+"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for products from selected Category, for selected Period and for selected Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other settings of period before this one to created one.\n"
+"\n"
+"Remarks:\n"
+"- This tool doesn't create lines, if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast, if relevant lines exists you have to do it manually using menus described bellow.\n"
+"- When created lines are validated by someone else you can use this tool to create another lines for the same Period, Product and Warehouse. \n"
+"- When you choose \"Copy Last Forecast\" created line takes quantity and some settings from your (validated by you or created by you if not validated yet) forecast which is for last period before period of created forecast. If there are few your forecasts for period before this one (it is possible) system takes one of them (no rule which of them).\n"
+"\n"
+"\n"
+"Menus \"Sales Forecasts\"\n"
+"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in \"Product Quantity\". Further calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click \"Validate\" button but it is not mandatory.\n"
+"\n"
+"Instead of forecast quantity you can enter amount of forecast sales in field \"Product Amount\". System will count quantity from amount according to Sale price of the Product.\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"To find proper value for Sale Forecast you can use \"Sales History\" table for this product. You have to enter parameters to the top and left of this table and system will count sale quantities according to these parameters. So you can select fe. your department (at the top) then (to the left): last period, period before last and period year ago.\n"
+"\n"
+"Remarks:\n"
+"\n"
+"\n"
+"Procurement Planning\n"
+"====================\n"
+"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n"
+"- \"Create Stock Planning Lines\" - allows you to automate creating planning lines according to some parameters.\n"
+"- \"Master Procurement Scheduler\" - is the most important menu of the module which allows to create procurement.\n"
+"\n"
+"As Sales forecast is phase of planning sales. The Procurement Planning (Planning) is the phase of scheduling Purchasing or Producing. You can create Procurement Planning quickly using tool from menu \"Create Stock Planning Lines\", then you can review created planning and make procurement using menu \"Master Procurement Schedule\".\n"
+"\n"
+"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning lines for products from selected Category, for selected Period, and for selected Warehouse. When you check option \"All Products with Forecast\" system creates lines for all products having forecast for selected Period and Warehouse. Selected Category will be ignored in this case.\n"
+"\n"
+"Under menu \"Master Procurement Scheduler\" you can generally change the values \"Planned Out\" and \"Planned In\" to observe the field \"Stock Simulation\" and decide if this value would be accurate for end of the Period. \n"
+"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of all forecasts for Period and Warehouse. But your planning can be based on any other information you have. It is not necessary to have any forecast. \n"
+"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which is the quantity to be procured to make stock as indicated in \"Stock Simulation\" at the end of Period. You can compare \"Stock Simulation\" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box \"Stock Location Only\".\n"
+"\n"
+"If after few tries you decide that you found correct quantities for \"Planned Out\" and \"Planned In\" and you are satisfied with end of period stock calculated in \"Stock Simulation\" you can click \"Procure Incoming Left\" button to procure quantity of field \"Incoming Left\" into the Warehouse. System creates appropriate Procurement Order. You can decide if procurement will be made to Stock or Input location of calculated Warehouse. \n"
+"\n"
+"If you don't want to Produce or Buy the product but just pick calculated quantity from another warehouse you can click \"Supply from Another Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list with move from selected source Warehouse to calculated Warehouse (as destination). You can also decide if this pick should be done from Stock or Output location of source warehouse. Destination location (Stock or Input) of destination warehouse will be used as set for \"Procure Incoming Left\". \n"
+"\n"
+"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", \"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you have to click button \"Calculate Planning\".\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"How Stock Simulation field is calculated:\n"
+"Generally Stock Simulation shows the stock for end of the calculated period according to some planned or confirmed stock moves. Calculation always starts with quantity of real stock of beginning of current period. Then calculation adds or subtracts quantities of calculated period or periods before calculated.\n"
+"When you are in the same period (current period is the same as calculated) Stock Simulation is calculated as follows:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out \n"
+" + Planned In\n"
+"\n"
+"When you calculate period next to current:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out of current Period \n"
+" + Confirmed In of current Period (incl. Already In)\n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period .\n"
+"\n"
+"As you see calculated Period is taken the same way like in case above. But calculation of current Period are made a little bit different. First you should note that system takes for current Period only Confirmed In moves. It means that you have to make planning and procurement for current Period before this calculation (for Period next to current). \n"
+"\n"
+"When you calculate Period ahead:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period \n"
+" - Sum of Planned Out of Periods before calculated \n"
+" + Sum of Confirmed In of Periods before calculated (incl. Already In) \n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period.\n"
+"\n"
+"Periods before calculated means periods starting from current till period before calculated.\n"
+"\n"
+"Remarks:\n"
+"- Remember to make planning for all periods before calculated because omitting these quantities and procurements can cause wrong suggestions for procurements few periods ahead.\n"
+"- If you made planning few periods ahead and you find that real Confirmed Out is bigger than Planned Out in some periods before you can repeat Planning and make another procurement. You should do it in the same planning line. If you create another planning line the suggestions can be wrong.\n"
+"- When you wish to work with different periods for some part of products define two kinds of periods (fe. Weekly and Monthly) and use them for different products. Example: If you use always Weekly periods for Products A, and Monthly periods for Products B your all calculations will work correctly. You can also use different kind of periods for the same products from different warehouse or companies. But you cannot use overlapping periods for the same product, warehouse and company because results can be unpredictable. The same apply to Forecasts lines.\n"
+""
+msgstr "\n"
+"This module is based on original OpenERP SA module stock_planning version 1.0 of the same name Master Procurement Schedule.\n"
+"\n"
+"Purpose of MPS is to allow create a manual procurement (requisition) apart of MRP scheduler (which works automatically on minimum stock rules).\n"
+"\n"
+"Terms used in the module:\n"
+"- Stock and Sales Period - is the time (between Start Date and End Date) for which you plan Stock and Sales Forecast and make Procurement Planning. \n"
+"- Stock and Sales Forecast - is the quantity of products you plan to sell in the Period.\n"
+"- Stock Planning - is the quantity of products you plan to purchase or produce for the Period.\n"
+"\n"
+"Because we have another module sale_forecast which uses terms \"Sales Forecast\" and \"Planning\" as amount values we will use terms \"Stock and Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity values. \n"
+"\n"
+"Activity with this module is divided to three steps:\n"
+"- Creating Periods. Mandatory step.\n"
+"- Creating Sale Forecasts and entering quantities to them. Optional step but useful for further planning.\n"
+"- Creating Planning lines, entering quantities to them and making Procurement. Making procurement is the final step for the Period.\n"
+"\n"
+"Periods\n"
+"=======\n"
+"You have two menu items for Periods in \"Sales Management - Configuration\". There are:\n"
+"- \"Create Sales Periods\" - Which automates creating daily, weekly or monthly periods.\n"
+"- \"Stock and sales Periods\" - Which allows to create any type of periods, change the dates and change the State of period.\n"
+"\n"
+"Creating periods is the first step you have to do to use modules features. You can create custom periods using \"New\" button in \"Stock and Sales Periods\" form or view but it is recommended to use automating tool.\n"
+"\n"
+"Remarks:\n"
+"- These periods (officially Stock and Sales Periods) are separated of Financial or other periods in the system.\n"
+"- Periods are not assigned to companies (when you use multicompany feature at all). Module suppose that you use the same periods across companies. If you wish to use different periods for different companies define them as you wish (they can overlap). Later on in this text will be indications how to use such periods.\n"
+"- When periods are created automatically their start and finish dates are with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock. \n"
+"- If you use overlapping periods for the same product, warehouse and company results can be unpredictable.\n"
+"- If current date doesn't belong to any period or you have holes between periods results can be unpredictable.\n"
+"\n"
+"Sales Forecasts\n"
+"===============\n"
+"You have few menus for Sales forecast in \"Sales Management - Sales Forecasts\".\n"
+"- \"Create Sales Forecasts for Sales Periods\" - which automates creating forecasts lines according to some parameters.\n"
+"- \"Sales Forecasts\" - few menus for working with forecasts lists and forms.\n"
+"\n"
+"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for products from selected Category, for selected Period and for selected Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other settings of period before this one to created one.\n"
+"\n"
+"Remarks:\n"
+"- This tool doesn't create lines, if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast, if relevant lines exists you have to do it manually using menus described bellow.\n"
+"- When created lines are validated by someone else you can use this tool to create another lines for the same Period, Product and Warehouse. \n"
+"- When you choose \"Copy Last Forecast\" created line takes quantity and some settings from your (validated by you or created by you if not validated yet) forecast which is for last period before period of created forecast. If there are few your forecasts for period before this one (it is possible) system takes one of them (no rule which of them).\n"
+"\n"
+"\n"
+"Menus \"Sales Forecasts\"\n"
+"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in \"Product Quantity\". Further calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click \"Validate\" button but it is not mandatory.\n"
+"\n"
+"Instead of forecast quantity you can enter amount of forecast sales in field \"Product Amount\". System will count quantity from amount according to Sale price of the Product.\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"To find proper value for Sale Forecast you can use \"Sales History\" table for this product. You have to enter parameters to the top and left of this table and system will count sale quantities according to these parameters. So you can select fe. your department (at the top) then (to the left): last period, period before last and period year ago.\n"
+"\n"
+"Remarks:\n"
+"\n"
+"\n"
+"Procurement Planning\n"
+"====================\n"
+"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n"
+"- \"Create Stock Planning Lines\" - allows you to automate creating planning lines according to some parameters.\n"
+"- \"Master Procurement Scheduler\" - is the most important menu of the module which allows to create procurement.\n"
+"\n"
+"As Sales forecast is phase of planning sales. The Procurement Planning (Planning) is the phase of scheduling Purchasing or Producing. You can create Procurement Planning quickly using tool from menu \"Create Stock Planning Lines\", then you can review created planning and make procurement using menu \"Master Procurement Schedule\".\n"
+"\n"
+"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning lines for products from selected Category, for selected Period, and for selected Warehouse. When you check option \"All Products with Forecast\" system creates lines for all products having forecast for selected Period and Warehouse. Selected Category will be ignored in this case.\n"
+"\n"
+"Under menu \"Master Procurement Scheduler\" you can generally change the values \"Planned Out\" and \"Planned In\" to observe the field \"Stock Simulation\" and decide if this value would be accurate for end of the Period. \n"
+"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of all forecasts for Period and Warehouse. But your planning can be based on any other information you have. It is not necessary to have any forecast. \n"
+"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which is the quantity to be procured to make stock as indicated in \"Stock Simulation\" at the end of Period. You can compare \"Stock Simulation\" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box \"Stock Location Only\".\n"
+"\n"
+"If after few tries you decide that you found correct quantities for \"Planned Out\" and \"Planned In\" and you are satisfied with end of period stock calculated in \"Stock Simulation\" you can click \"Procure Incoming Left\" button to procure quantity of field \"Incoming Left\" into the Warehouse. System creates appropriate Procurement Order. You can decide if procurement will be made to Stock or Input location of calculated Warehouse. \n"
+"\n"
+"If you don't want to Produce or Buy the product but just pick calculated quantity from another warehouse you can click \"Supply from Another Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list with move from selected source Warehouse to calculated Warehouse (as destination). You can also decide if this pick should be done from Stock or Output location of source warehouse. Destination location (Stock or Input) of destination warehouse will be used as set for \"Procure Incoming Left\". \n"
+"\n"
+"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", \"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you have to click button \"Calculate Planning\".\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"How Stock Simulation field is calculated:\n"
+"Generally Stock Simulation shows the stock for end of the calculated period according to some planned or confirmed stock moves. Calculation always starts with quantity of real stock of beginning of current period. Then calculation adds or subtracts quantities of calculated period or periods before calculated.\n"
+"When you are in the same period (current period is the same as calculated) Stock Simulation is calculated as follows:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out \n"
+" + Planned In\n"
+"\n"
+"When you calculate period next to current:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out of current Period \n"
+" + Confirmed In of current Period (incl. Already In)\n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period .\n"
+"\n"
+"As you see calculated Period is taken the same way like in case above. But calculation of current Period are made a little bit different. First you should note that system takes for current Period only Confirmed In moves. It means that you have to make planning and procurement for current Period before this calculation (for Period next to current). \n"
+"\n"
+"When you calculate Period ahead:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period \n"
+" - Sum of Planned Out of Periods before calculated \n"
+" + Sum of Confirmed In of Periods before calculated (incl. Already In) \n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period.\n"
+"\n"
+"Periods before calculated means periods starting from current till period before calculated.\n"
+"\n"
+"Remarks:\n"
+"- Remember to make planning for all periods before calculated because omitting these quantities and procurements can cause wrong suggestions for procurements few periods ahead.\n"
+"- If you made planning few periods ahead and you find that real Confirmed Out is bigger than Planned Out in some periods before you can repeat Planning and make another procurement. You should do it in the same planning line. If you create another planning line the suggestions can be wrong.\n"
+"- When you wish to work with different periods for some part of products define two kinds of periods (fe. Weekly and Monthly) and use them for different products. Example: If you use always Weekly periods for Products A, and Monthly periods for Products B your all calculations will work correctly. You can also use different kind of periods for the same products from different warehouse or companies. But you cannot use overlapping periods for the same product, warehouse and company because results can be unpredictable. The same apply to Forecasts lines.\n"
+""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Incoming Left: "
+msgstr " Incoming Left: "
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Internal Supply"
+msgstr "Internal Supply"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse different than calculated (destination) Warehouse !"
+msgstr "You must specify a Source Warehouse different than calculated (destination) Warehouse !"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_sale_forecast_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_createlines
+msgid "Create Sales Forecasts"
+msgstr "Create Sales Forecasts"
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Creates forecast lines for selected warehouse and period."
+msgstr "Creates forecast lines for selected warehouse and period."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Requisition ("
+msgstr "Requisition ("
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_left:0
+msgid "Quantity expected to go out in selected period. As a difference between Planned Out and Confirmed Out. For current period Already Out is also calculated"
+msgstr "Quantity expected to go out in selected period. As a difference between Planned Out and Confirmed Out. For current period Already Out is also calculated"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_id:0
+msgid "Period4"
+msgstr "Period4"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Already In: "
+msgstr " Already In: "
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_id:0
+msgid "Period2"
+msgstr "Period2"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_id:0
+msgid "Period3"
+msgstr "Period3"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_id:0
+msgid "Period1"
+msgstr "Period1"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Initial Stock: "
+msgstr "\n Initial Stock: "
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Minimum stock: "
+msgstr " Minimum stock: "
+
+#. module: stock_planning
+#: field:stock.planning,active_uom:0
+#: field:stock.sale.forecast,active_uom:0
+msgid "Active UoM"
+msgstr "Active UoM"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_planning_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_createlines
+#: view:stock.planning.createlines:0
+msgid "Create Stock Planning Lines"
+msgstr "Create Stock Planning Lines"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "General Info"
+msgstr "General Info"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_sale_forecast_form
+msgid "Sales Forecast"
+msgstr "Sales Forecast"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Planning and Situation for Calculated Period"
+msgstr "Planning and Situation for Calculated Period"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_warehouse:0
+msgid "This Warehouse Period1"
+msgstr "This Warehouse Period1"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In: "
+msgstr " Confirmed In: "
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Sales history"
+msgstr "Sales history"
+
+#. module: stock_planning
+#: field:stock.planning,supply_warehouse_id:0
+msgid "Source Warehouse"
+msgstr "Source Warehouse"
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_qty:0
+msgid "Forecasted quantity."
+msgstr "Forecasted quantity."
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Stock"
+msgstr "Stock"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Stock Simulation: "
+msgstr "\n Stock Simulation: "
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Confirmed Out: "
+msgstr "\n Confirmed Out: "
+
+#. module: stock_planning
+#: field:stock.planning,stock_supply_location:0
+msgid "Stock Supply Location"
+msgstr "Stock Supply Location"
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_stop:0
+msgid "Ending date for planning period."
+msgstr "Ending date for planning period."
+
+#. module: stock_planning
+#: help:stock.planning.createlines,forecasted_products:0
+msgid "Check this box to create planning for all products having any forecast for selected Warehouse and Period. Product Category field will be ignored."
+msgstr "Check this box to create planning for all products having any forecast for selected Warehouse and Period. Product Category field will be ignored."
+
+#. module: stock_planning
+#: field:stock.planning,already_in:0
+msgid "Already In"
+msgstr "Already In"
+
+#. module: stock_planning
+#: field:stock.planning,product_uom_categ:0
+#: field:stock.planning,product_uos_categ:0
+#: field:stock.sale.forecast,product_uom_categ:0
+msgid "Product UoM Category"
+msgstr "Product UoM Category"
+
+#. module: stock_planning
+#: field:stock.planning,incoming:0
+msgid "Confirmed In"
+msgstr "Confirmed In"
+
+#. module: stock_planning
+#: field:stock.planning,line_time:0
+msgid "Past/Future"
+msgstr "Past/Future"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uos_categ:0
+msgid "Product UoS Category"
+msgstr "Product UoS Category"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_qty:0
+msgid "Product Quantity"
+msgstr "Product Quantity"
+
+#. module: stock_planning
+#: field:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy Last Forecast"
+msgstr "Copy Last Forecast"
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_id:0
+msgid "Shows which product this forecast concerns."
+msgstr "Shows which product this forecast concerns."
+
+#. module: stock_planning
+#: selection:stock.planning,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: stock_planning
+#: field:stock.period.createlines,period_ids:0
+msgid "Periods"
+msgstr "Periods"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " according to state:"
+msgstr " according to state:"
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Close"
+msgstr "Close"
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+#: selection:stock.sale.forecast,state:0
+msgid "Validated"
+msgstr "Validated"
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy quantities from last Stock and Sale Forecast."
+msgstr "Copy quantities from last Stock and Sale Forecast."
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_dept:0
+msgid "This Dept Period1"
+msgstr "This Dept Period1"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_dept:0
+msgid "This Dept Period3"
+msgstr "This Dept Period3"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_dept:0
+msgid "This Dept Period2"
+msgstr "This Dept Period2"
+
+#. module: stock_planning
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "The Object name must start with x_ and not contain any special character !"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_dept:0
+msgid "This Dept Period4"
+msgstr "This Dept Period4"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_warehouse:0
+msgid "This Warehouse Period2"
+msgstr "This Warehouse Period2"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_warehouse:0
+msgid "This Warehouse Period3"
+msgstr "This Warehouse Period3"
+
+#. module: stock_planning
+#: field:stock.planning,outgoing:0
+msgid "Confirmed Out"
+msgstr "Confirmed Out"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,create_uid:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Default UOM"
+msgstr "Default UOM"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_warehouse:0
+msgid "This Warehouse Period4"
+msgstr "This Warehouse Period4"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_warehouse:0
+msgid "This Warehouse Period5"
+msgstr "This Warehouse Period5"
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Current"
+msgstr "Current"
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning
+msgid "stock.planning"
+msgstr "stock.planning"
+
+#. module: stock_planning
+#: help:stock.sale.forecast,warehouse_id:0
+msgid "Shows which warehouse this forecast concerns. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+msgstr "Shows which warehouse this forecast concerns. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+
+#. module: stock_planning
+#: help:stock.planning.createlines,warehouse_id:0
+msgid "Warehouse which planning will concern."
+msgstr "Warehouse which planning will concern."
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyze_company:0
+msgid "Per Company"
+msgstr "Per Company"
+
+#. module: stock_planning
+#: help:stock.planning,to_procure:0
+msgid "Enter quantity which (by your plan) should come in. Change this value and observe Stock simulation. This value should be equal or greater than Confirmed In."
+msgstr "Enter quantity which (by your plan) should come in. Change this value and observe Stock simulation. This value should be equal or greater than Confirmed In."
+
+#. module: stock_planning
+#: help:stock.planning.createlines,period_id:0
+msgid "Period which planning will concern."
+msgstr "Period which planning will concern."
+
+#. module: stock_planning
+#: field:stock.planning,already_out:0
+msgid "Already Out"
+msgstr "Already Out"
+
+#. module: stock_planning
+#: help:stock.planning,product_id:0
+msgid "Product which this planning is created for."
+msgstr "Product which this planning is created for."
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Warehouse :"
+msgstr "Per Warehouse :"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\nFor period: "
+msgstr "\nFor period: "
+
+#. module: stock_planning
+#: field:stock.planning,history:0
+msgid "Procurement History"
+msgstr "Procurement History"
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_start:0
+msgid "Starting date for planning period."
+msgstr "Starting date for planning period."
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Planned In: "
+msgstr " Planned In: "
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Department :"
+msgstr "Per Department :"
+
+#. module: stock_planning
+#: help:stock.planning,incoming:0
+msgid "Quantity of all confirmed incoming moves in calculated Period."
+msgstr "Quantity of all confirmed incoming moves in calculated Period."
+
+#. module: stock_planning
+#: field:stock.period,date_stop:0
+#: field:stock.period.createlines,date_stop:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: stock_planning
+#: help:stock.planning,stock_supply_location:0
+msgid "Check to supply from Stock location of Supply Warehouse. If not checked supply will be made from Output location of Supply Warehouse. Used in 'Supply from Another Warhouse' with Supply Warehouse."
+msgstr "Check to supply from Stock location of Supply Warehouse. If not checked supply will be made from Output location of Supply Warehouse. Used in 'Supply from Another Warhouse' with Supply Warehouse."
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "No Requisition"
+msgstr "No Requisition"
+
+#. module: stock_planning
+#: help:stock.planning,minimum_op:0
+msgid "Minimum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr "Minimum quantity set in Minimum Stock Rules for this Warhouse"
+
+#. module: stock_planning
+#: help:stock.sale.forecast,period_id:0
+msgid "Shows which period this forecast concerns."
+msgstr "Shows which period this forecast concerns."
+
+#. module: stock_planning
+#: field:stock.planning,product_uom:0
+msgid "UoM"
+msgstr "UoM"
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculated Period Simulation"
+msgstr "Calculated Period Simulation"
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,product_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,product_id:0
+msgid "Product"
+msgstr "Product"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Expected Out: "
+msgstr "\n Expected Out: "
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_all
+#: view:stock.sale.forecast:0
+msgid "Sales Forecasts"
+msgstr "Sales Forecasts"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uom:0
+msgid "Product UoM"
+msgstr "Product UoM"
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "MPS("
+msgstr "MPS("
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick created from MPS by user: "
+msgstr "Pick created from MPS by user: "
+
+#. module: stock_planning
+#: field:stock.planning,procure_to_stock:0
+msgid "Procure To Stock Location"
+msgstr "Procure To Stock Location"
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Approve"
+msgstr "Approve"
+
+#. module: stock_planning
+#: help:stock.planning,period_id:0
+msgid "Period for this planning. Requisition will be created for beginning of the period."
+msgstr "Period for this planning. Requisition will be created for beginning of the period."
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Calculate Sales History"
+msgstr "Calculate Sales History"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_amt:0
+msgid "Product Amount"
+msgstr "Product Amount"
+
+#. module: stock_planning
+#: help:stock.planning,confirmed_forecasts_only:0
+msgid "Check to take validated forecasts only. If not checked system takes validated and draft forecasts."
+msgstr "Check to take validated forecasts only. If not checked system takes validated and draft forecasts."
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_id:0
+msgid "Period5"
+msgstr "Period5"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_createlines_form
+msgid "Stock and Sales Planning Periods"
+msgstr "Stock and Sales Planning Periods"
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_warehouse_id:0
+msgid "This Warehouse"
+msgstr "This Warehouse"
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_main
+#: view:stock.period:0
+#: view:stock.period.createlines:0
+msgid "Stock and Sales Periods"
+msgstr "Stock and Sales Periods"
+
+#. module: stock_planning
+#: help:stock.sale.forecast,user_id:0
+msgid "Shows who created this forecast, or who validated."
+msgstr "Shows who created this forecast, or who validated."
+
+#. module: stock_planning
+#: help:stock.planning,incoming_left:0
+msgid "Quantity left to Planned incoming quantity. This is calculated difference between Planned In and Confirmed In. For current period Already In is also calculated. This value is used to create procurement for lacking quantity."
+msgstr "Quantity left to Planned incoming quantity. This is calculated difference between Planned In and Confirmed In. For current period Already In is also calculated. This value is used to create procurement for lacking quantity."
+
+#. module: stock_planning
+#: field:stock.planning,stock_start:0
+msgid "Initial Stock"
+msgstr "Initial Stock"
+
diff --git a/addons/stock_planning/i18n/fr.po b/addons/stock_planning/i18n/fr.po
new file mode 100644
index 00000000000..60aca809502
--- /dev/null
+++ b/addons/stock_planning/i18n/fr.po
@@ -0,0 +1,1469 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * stock_planning
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:50+0000\n"
+"PO-Revision-Date: 2010-08-30 12:21+0000\n"
+"Last-Translator: Fabien (Open ERP) \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-08-31 03:59+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#, python-format
+msgid ""
+"No forecasts for selected period or no products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_only:0
+msgid ""
+"Check to calculate stock location of selected warehouse only. If not "
+"selected calculation is made for input, stock and output location of "
+"warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,maximum_op:0
+msgid "Maximum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_company:0
+msgid "This Copmany Period1"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Group By..."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Already Out: "
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_amt:0
+msgid ""
+"Forecast value which will be converted to Product Quantity according to "
+"prices."
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Incoming Left must be greater than 0 !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_before:0
+msgid ""
+"Planned Out in periods before calculated. Between start date of current "
+"period and one day before start of calculated period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "No products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,warehouse_id:0
+msgid ""
+"Warehouse which forecasts will concern. If during stock planning you will "
+"need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_left:0
+msgid "Expected Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid " "
+msgstr " "
+
+#. module: stock_planning
+#: field:stock.planning,incoming_left:0
+msgid "Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Requisition history"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Create Forecasts Lines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing:0
+msgid "Quantity of all confirmed outgoing moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Daily Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,company_id:0
+#: field:stock.planning.createlines,company_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,company_id:0
+#: field:stock.sale.forecast.createlines,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,warehouse_forecast:0
+msgid ""
+"All sales forecasts for selected Warehouse of selected Product during "
+"selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines
+msgid "Create Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Minimum Stock Rule Indicators"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,period_id:0
+msgid "Period which forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_only:0
+msgid "Stock Location Only"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_out:0
+msgid ""
+"Quantity which is already dispatched out of this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,procure_to_stock:0
+msgid ""
+"Chect to make procurement to stock location of selected warehouse. If not "
+"selected procurement will be made into input location of warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Current Period Situation"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Planned Out Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Monthly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,supply_warehouse_id:0
+msgid ""
+"Warehouse used as source in supply pick move created by 'Supply from Another "
+"Warhouse'."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period_createlines
+msgid "stock.period.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_before:0
+msgid "Planned Out Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,forecasted_products:0
+msgid "All Products with Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Periods :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_in:0
+msgid ""
+"Quantity which is already picked up to this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Stock and Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast
+msgid "stock.sale.forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_dept_id:0
+msgid "This Department"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,to_procure:0
+msgid "Planned In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_simulation:0
+msgid "Stock Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning_createlines
+msgid "stock.planning.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_before:0
+msgid ""
+"Confirmed incoming in periods before calculated (Including Already In). "
+"Between start date of current period and one day before start of calculated "
+"period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Search Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_user:0
+msgid "This User Period5"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,history:0
+msgid "History of procurement or internal supply of this planning line."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,company_forecast:0
+msgid ""
+"All sales forecasts for whole company (for all Warehouses) of selected "
+"Product during selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_user:0
+msgid "This User Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_user:0
+msgid "This User Period3"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_main
+#: view:stock.planning:0
+msgid "Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,minimum_op:0
+msgid "Minimum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Procure Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Closed"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick List "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Create"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_planning_form
+#: model:ir.module.module,shortdesc:stock_planning.module_meta_information
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning
+#: view:stock.planning:0
+msgid "Master Procurement Schedule"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Creation Date: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,period_id:0
+#: field:stock.planning.createlines,period_id:0
+#: field:stock.sale.forecast,period_id:0
+#: field:stock.sale.forecast.createlines,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: field:stock.period,state:0
+#: field:stock.planning,state:0
+#: field:stock.sale.forecast,state:0
+msgid "State"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category of products which created forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period
+msgid "stock period"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast_createlines
+msgid "stock.sale.forecast.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_id:0
+#: field:stock.planning.createlines,warehouse_id:0
+#: field:stock.sale.forecast,warehouse_id:0
+#: field:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_simulation:0
+msgid ""
+"Stock simulation at the end of selected Period.\n"
+" For current period it is: \n"
+"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n"
+"For periods ahead it is: \n"
+"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned "
+"In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,analyze_company:0
+msgid "Check this box to see the sales for whole company."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,name:0
+msgid "Name"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Search Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming_before:0
+msgid "Incoming Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,product_categ_id:0
+#: field:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Manual planning for "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_user_id:0
+msgid "This User"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Supply from Another Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculate Planning"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Procurement created in MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_start:0
+msgid "Stock quantity one day before current period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Weekly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,maximum_op:0
+msgid "Maximum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+msgid "Creates planning lines for selected period and warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Warehouse Forecast: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Cannot delete Validated Sale Forecasts !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_user:0
+msgid "This User Period4"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Note: Doesn't duplicate existing lines created by you."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Stock and Sales Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,company_forecast:0
+msgid "Company Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_uom:0
+#: help:stock.sale.forecast,product_uom:0
+msgid ""
+"Unit of Measure used to show the quanities of stock calculation.You can use "
+"units form default category or from second category (UoS category)."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per User :"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,name:0
+#: field:stock.period.createlines,name:0
+msgid "Period Name"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,user_id:0
+msgid "Created/Validated by"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_forecast:0
+msgid "Warehouse Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_company:0
+msgid "This Company Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_company:0
+msgid "This Company Period5"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Planned Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_company:0
+msgid "This Company Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_company:0
+msgid "This Company Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_start:0
+#: field:stock.period.createlines,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_user:0
+msgid "This User Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,confirmed_forecasts_only:0
+msgid "Validated Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,product_categ_id:0
+msgid ""
+"Planning will be created for products from Product Category selected by this "
+"field. This field is ignored when you check \"All Forecasted Product\" box."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,planned_outgoing:0
+msgid "Planned Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.period,state:0
+#: selection:stock.planning,state:0
+#: selection:stock.sale.forecast,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Warehouse "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_dept:0
+msgid "This Dept Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create periods for Stock and Sales Planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,planned_outgoing:0
+msgid ""
+"Enter planned outgoing quantity from selected Warehouse during the selected "
+"Period of selected Product. To plan this value look at Confirmed Out or "
+"Sales Forecasts. This value should be equal or greater than Confirmed Out."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.module.module,description:stock_planning.module_meta_information
+msgid ""
+"\n"
+"This module is based on original OpenERP SA module stock_planning version "
+"1.0 of the same name Master Procurement Schedule.\n"
+"\n"
+"Purpose of MPS is to allow create a manual procurement (requisition) apart "
+"of MRP scheduler (which works automatically on minimum stock rules).\n"
+"\n"
+"Terms used in the module:\n"
+"- Stock and Sales Period - is the time (between Start Date and End Date) for "
+"which you plan Stock and Sales Forecast and make Procurement Planning. \n"
+"- Stock and Sales Forecast - is the quantity of products you plan to sell in "
+"the Period.\n"
+"- Stock Planning - is the quantity of products you plan to purchase or "
+"produce for the Period.\n"
+"\n"
+"Because we have another module sale_forecast which uses terms \"Sales "
+"Forecast\" and \"Planning\" as amount values we will use terms \"Stock and "
+"Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity "
+"values. \n"
+"\n"
+"Activity with this module is divided to three steps:\n"
+"- Creating Periods. Mandatory step.\n"
+"- Creating Sale Forecasts and entering quantities to them. Optional step but "
+"useful for further planning.\n"
+"- Creating Planning lines, entering quantities to them and making "
+"Procurement. Making procurement is the final step for the Period.\n"
+"\n"
+"Periods\n"
+"=======\n"
+"You have two menu items for Periods in \"Sales Management - Configuration\". "
+"There are:\n"
+"- \"Create Sales Periods\" - Which automates creating daily, weekly or "
+"monthly periods.\n"
+"- \"Stock and sales Periods\" - Which allows to create any type of periods, "
+"change the dates and change the State of period.\n"
+"\n"
+"Creating periods is the first step you have to do to use modules features. "
+"You can create custom periods using \"New\" button in \"Stock and Sales "
+"Periods\" form or view but it is recommended to use automating tool.\n"
+"\n"
+"Remarks:\n"
+"- These periods (officially Stock and Sales Periods) are separated of "
+"Financial or other periods in the system.\n"
+"- Periods are not assigned to companies (when you use multicompany feature "
+"at all). Module suppose that you use the same periods across companies. If "
+"you wish to use different periods for different companies define them as you "
+"wish (they can overlap). Later on in this text will be indications how to "
+"use such periods.\n"
+"- When periods are created automatically their start and finish dates are "
+"with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily "
+"periods they will have start date 31.01.2010 00:00:00 and end date "
+"31.01.2010 23:59:00. It works only in automatic creation of periods. When "
+"you create periods manually you have to take care about hours because you "
+"can have incorrect values form sales or stock. \n"
+"- If you use overlapping periods for the same product, warehouse and company "
+"results can be unpredictable.\n"
+"- If current date doesn't belong to any period or you have holes between "
+"periods results can be unpredictable.\n"
+"\n"
+"Sales Forecasts\n"
+"===============\n"
+"You have few menus for Sales forecast in \"Sales Management - Sales "
+"Forecasts\".\n"
+"- \"Create Sales Forecasts for Sales Periods\" - which automates creating "
+"forecasts lines according to some parameters.\n"
+"- \"Sales Forecasts\" - few menus for working with forecasts lists and "
+"forms.\n"
+"\n"
+"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for "
+"products from selected Category, for selected Period and for selected "
+"Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other "
+"settings of period before this one to created one.\n"
+"\n"
+"Remarks:\n"
+"- This tool doesn't create lines, if relevant lines (for the same Product, "
+"Period, Warehouse and validated or created by you) already exists. If you "
+"wish to create another forecast, if relevant lines exists you have to do it "
+"manually using menus described bellow.\n"
+"- When created lines are validated by someone else you can use this tool to "
+"create another lines for the same Period, Product and Warehouse. \n"
+"- When you choose \"Copy Last Forecast\" created line takes quantity and "
+"some settings from your (validated by you or created by you if not validated "
+"yet) forecast which is for last period before period of created forecast. If "
+"there are few your forecasts for period before this one (it is possible) "
+"system takes one of them (no rule which of them).\n"
+"\n"
+"\n"
+"Menus \"Sales Forecasts\"\n"
+"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in "
+"\"Product Quantity\". Further calculation can work for draft forecasts. But "
+"validation can save your data against any accidental changes. You can click "
+"\"Validate\" button but it is not mandatory.\n"
+"\n"
+"Instead of forecast quantity you can enter amount of forecast sales in field "
+"\"Product Amount\". System will count quantity from amount according to Sale "
+"price of the Product.\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. "
+"You can select one of unit of measure from default category or from second "
+"category. When you change unit of measure the quanities will be recalculated "
+"according to new UoM: editable values (blue fields) immediately, non edited "
+"fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"To find proper value for Sale Forecast you can use \"Sales History\" table "
+"for this product. You have to enter parameters to the top and left of this "
+"table and system will count sale quantities according to these parameters. "
+"So you can select fe. your department (at the top) then (to the left): last "
+"period, period before last and period year ago.\n"
+"\n"
+"Remarks:\n"
+"\n"
+"\n"
+"Procurement Planning\n"
+"====================\n"
+"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n"
+"- \"Create Stock Planning Lines\" - allows you to automate creating planning "
+"lines according to some parameters.\n"
+"- \"Master Procurement Scheduler\" - is the most important menu of the "
+"module which allows to create procurement.\n"
+"\n"
+"As Sales forecast is phase of planning sales. The Procurement Planning "
+"(Planning) is the phase of scheduling Purchasing or Producing. You can "
+"create Procurement Planning quickly using tool from menu \"Create Stock "
+"Planning Lines\", then you can review created planning and make procurement "
+"using menu \"Master Procurement Schedule\".\n"
+"\n"
+"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning "
+"lines for products from selected Category, for selected Period, and for "
+"selected Warehouse. When you check option \"All Products with Forecast\" "
+"system creates lines for all products having forecast for selected Period "
+"and Warehouse. Selected Category will be ignored in this case.\n"
+"\n"
+"Under menu \"Master Procurement Scheduler\" you can generally change the "
+"values \"Planned Out\" and \"Planned In\" to observe the field \"Stock "
+"Simulation\" and decide if this value would be accurate for end of the "
+"Period. \n"
+"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of "
+"all forecasts for Period and Warehouse. But your planning can be based on "
+"any other information you have. It is not necessary to have any forecast. \n"
+"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which "
+"is the quantity to be procured to make stock as indicated in \"Stock "
+"Simulation\" at the end of Period. You can compare \"Stock Simulation\" "
+"quantity to minimum stock rules visible on the form. But you can plan "
+"different quantity than in Minimum Stock Rules. Calculation is made for "
+"whole Warehouse by default. But if you want to see values for Stock location "
+"of calculated warehouse you can use check box \"Stock Location Only\".\n"
+"\n"
+"If after few tries you decide that you found correct quantities for "
+"\"Planned Out\" and \"Planned In\" and you are satisfied with end of period "
+"stock calculated in \"Stock Simulation\" you can click \"Procure Incoming "
+"Left\" button to procure quantity of field \"Incoming Left\" into the "
+"Warehouse. System creates appropriate Procurement Order. You can decide if "
+"procurement will be made to Stock or Input location of calculated Warehouse. "
+"\n"
+"\n"
+"If you don't want to Produce or Buy the product but just pick calculated "
+"quantity from another warehouse you can click \"Supply from Another "
+"Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list "
+"with move from selected source Warehouse to calculated Warehouse (as "
+"destination). You can also decide if this pick should be done from Stock or "
+"Output location of source warehouse. Destination location (Stock or Input) "
+"of destination warehouse will be used as set for \"Procure Incoming Left\". "
+"\n"
+"\n"
+"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", "
+"\"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you "
+"have to click button \"Calculate Planning\".\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. "
+"You can select one of unit of measure from default category or from second "
+"category. When you change unit of measure the quanities will be recalculated "
+"according to new UoM: editable values (blue fields) immediately, non edited "
+"fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"How Stock Simulation field is calculated:\n"
+"Generally Stock Simulation shows the stock for end of the calculated period "
+"according to some planned or confirmed stock moves. Calculation always "
+"starts with quantity of real stock of beginning of current period. Then "
+"calculation adds or subtracts quantities of calculated period or periods "
+"before calculated.\n"
+"When you are in the same period (current period is the same as calculated) "
+"Stock Simulation is calculated as follows:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period\n"
+"\t- Planned Out \n"
+"\t+ Planned In\n"
+"\n"
+"When you calculate period next to current:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period\n"
+"\t- Planned Out of current Period \n"
+"\t+ Confirmed In of current Period (incl. Already In)\n"
+"\t- Planned Out of calculated Period \n"
+"\t+ Planned In of calculated Period .\n"
+"\n"
+"As you see calculated Period is taken the same way like in case above. But "
+"calculation of current Period are made a little bit different. First you "
+"should note that system takes for current Period only Confirmed In moves. It "
+"means that you have to make planning and procurement for current Period "
+"before this calculation (for Period next to current). \n"
+"\n"
+"When you calculate Period ahead:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period \n"
+"\t- Sum of Planned Out of Periods before calculated \n"
+"\t+ Sum of Confirmed In of Periods before calculated (incl. Already In) \n"
+"\t- Planned Out of calculated Period \n"
+"\t+ Planned In of calculated Period.\n"
+"\n"
+"Periods before calculated means periods starting from current till period "
+"before calculated.\n"
+"\n"
+"Remarks:\n"
+"- Remember to make planning for all periods before calculated because "
+"omitting these quantities and procurements can cause wrong suggestions for "
+"procurements few periods ahead.\n"
+"- If you made planning few periods ahead and you find that real Confirmed "
+"Out is bigger than Planned Out in some periods before you can repeat "
+"Planning and make another procurement. You should do it in the same planning "
+"line. If you create another planning line the suggestions can be wrong.\n"
+"- When you wish to work with different periods for some part of products "
+"define two kinds of periods (fe. Weekly and Monthly) and use them for "
+"different products. Example: If you use always Weekly periods for Products "
+"A, and Monthly periods for Products B your all calculations will work "
+"correctly. You can also use different kind of periods for the same products "
+"from different warehouse or companies. But you cannot use overlapping "
+"periods for the same product, warehouse and company because results can be "
+"unpredictable. The same apply to Forecasts lines.\n"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Incoming Left: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Internal Supply"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"You must specify a Source Warehouse different than calculated (destination) "
+"Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_sale_forecast_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_createlines
+msgid "Create Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Creates forecast lines for selected warehouse and period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Requisition ("
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_left:0
+msgid ""
+"Quantity expected to go out in selected period. As a difference between "
+"Planned Out and Confirmed Out. For current period Already Out is also "
+"calculated"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_id:0
+msgid "Period4"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Already In: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_id:0
+msgid "Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_id:0
+msgid "Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_id:0
+msgid "Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Initial Stock: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Minimum stock: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,active_uom:0
+#: field:stock.sale.forecast,active_uom:0
+msgid "Active UoM"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_planning_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_createlines
+#: view:stock.planning.createlines:0
+msgid "Create Stock Planning Lines"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "General Info"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_sale_forecast_form
+msgid "Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Planning and Situation for Calculated Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_warehouse:0
+msgid "This Warehouse Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Sales history"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,supply_warehouse_id:0
+msgid "Source Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_qty:0
+msgid "Forecasted quantity."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Stock"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Stock Simulation: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Confirmed Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_supply_location:0
+msgid "Stock Supply Location"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_stop:0
+msgid "Ending date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,forecasted_products:0
+msgid ""
+"Check this box to create planning for all products having any forecast for "
+"selected Warehouse and Period. Product Category field will be ignored."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_in:0
+msgid "Already In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom_categ:0
+#: field:stock.planning,product_uos_categ:0
+#: field:stock.sale.forecast,product_uom_categ:0
+msgid "Product UoM Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming:0
+msgid "Confirmed In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,line_time:0
+msgid "Past/Future"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uos_categ:0
+msgid "Product UoS Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_qty:0
+msgid "Product Quantity"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy Last Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_id:0
+msgid "Shows which product this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.planning,state:0
+msgid "Done"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period.createlines,period_ids:0
+msgid "Periods"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " according to state:"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Cancel"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Close"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+#: selection:stock.sale.forecast,state:0
+msgid "Validated"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+msgid "Open"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy quantities from last Stock and Sale Forecast."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_dept:0
+msgid "This Dept Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_dept:0
+msgid "This Dept Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_dept:0
+msgid "This Dept Period2"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_dept:0
+msgid "This Dept Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_warehouse:0
+msgid "This Warehouse Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_warehouse:0
+msgid "This Warehouse Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing:0
+msgid "Confirmed Out"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,create_uid:0
+msgid "Responsible"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Default UOM"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_warehouse:0
+msgid "This Warehouse Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_warehouse:0
+msgid "This Warehouse Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Current"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning
+msgid "stock.planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,warehouse_id:0
+msgid ""
+"Shows which warehouse this forecast concerns. If during stock planning you "
+"will need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,warehouse_id:0
+msgid "Warehouse which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyze_company:0
+msgid "Per Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,to_procure:0
+msgid ""
+"Enter quantity which (by your plan) should come in. Change this value and "
+"observe Stock simulation. This value should be equal or greater than "
+"Confirmed In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,period_id:0
+msgid "Period which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_out:0
+msgid "Already Out"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_id:0
+msgid "Product which this planning is created for."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Warehouse :"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+"For period: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,history:0
+msgid "Procurement History"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_start:0
+msgid "Starting date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Planned In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Department :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming:0
+msgid "Quantity of all confirmed incoming moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_stop:0
+#: field:stock.period.createlines,date_stop:0
+msgid "End Date"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_supply_location:0
+msgid ""
+"Check to supply from Stock location of Supply Warehouse. If not checked "
+"supply will be made from Output location of Supply Warehouse. Used in "
+"'Supply from Another Warhouse' with Supply Warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "No Requisition"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,minimum_op:0
+msgid "Minimum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,period_id:0
+msgid "Shows which period this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom:0
+msgid "UoM"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculated Period Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,product_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Expected Out: "
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_all
+#: view:stock.sale.forecast:0
+msgid "Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "MPS("
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick created from MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,procure_to_stock:0
+msgid "Procure To Stock Location"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Approve"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,period_id:0
+msgid ""
+"Period for this planning. Requisition will be created for beginning of the "
+"period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Calculate Sales History"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_amt:0
+msgid "Product Amount"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,confirmed_forecasts_only:0
+msgid ""
+"Check to take validated forecasts only. If not checked system takes "
+"validated and draft forecasts."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_id:0
+msgid "Period5"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_createlines_form
+msgid "Stock and Sales Planning Periods"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_warehouse_id:0
+msgid "This Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_main
+#: view:stock.period:0
+#: view:stock.period.createlines:0
+msgid "Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,user_id:0
+msgid "Shows who created this forecast, or who validated."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_left:0
+msgid ""
+"Quantity left to Planned incoming quantity. This is calculated difference "
+"between Planned In and Confirmed In. For current period Already In is also "
+"calculated. This value is used to create procurement for lacking quantity."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_start:0
+msgid "Initial Stock"
+msgstr ""
diff --git a/addons/stock_planning/i18n/pt_BR.po b/addons/stock_planning/i18n/pt_BR.po
new file mode 100644
index 00000000000..8affc2682f8
--- /dev/null
+++ b/addons/stock_planning/i18n/pt_BR.po
@@ -0,0 +1,1470 @@
+# Brazilian Portuguese translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2010-08-20 10:50+0000\n"
+"PO-Revision-Date: 2010-08-31 08:17+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Brazilian Portuguese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-09-01 04:00+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#, python-format
+msgid ""
+"No forecasts for selected period or no products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_only:0
+msgid ""
+"Check to calculate stock location of selected warehouse only. If not "
+"selected calculation is made for input, stock and output location of "
+"warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,maximum_op:0
+msgid "Maximum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_company:0
+msgid "This Copmany Period1"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Group By..."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Already Out: "
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_amt:0
+msgid ""
+"Forecast value which will be converted to Product Quantity according to "
+"prices."
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Incoming Left must be greater than 0 !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_before:0
+msgid ""
+"Planned Out in periods before calculated. Between start date of current "
+"period and one day before start of calculated period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "No products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,warehouse_id:0
+msgid ""
+"Warehouse which forecasts will concern. If during stock planning you will "
+"need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_left:0
+msgid "Expected Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid " "
+msgstr " "
+
+#. module: stock_planning
+#: field:stock.planning,incoming_left:0
+msgid "Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Requisition history"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Create Forecasts Lines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing:0
+msgid "Quantity of all confirmed outgoing moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Daily Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,company_id:0
+#: field:stock.planning.createlines,company_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,company_id:0
+#: field:stock.sale.forecast.createlines,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,warehouse_forecast:0
+msgid ""
+"All sales forecasts for selected Warehouse of selected Product during "
+"selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines
+msgid "Create Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Minimum Stock Rule Indicators"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,period_id:0
+msgid "Period which forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_only:0
+msgid "Stock Location Only"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_out:0
+msgid ""
+"Quantity which is already dispatched out of this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,procure_to_stock:0
+msgid ""
+"Chect to make procurement to stock location of selected warehouse. If not "
+"selected procurement will be made into input location of warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Current Period Situation"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Planned Out Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Monthly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,supply_warehouse_id:0
+msgid ""
+"Warehouse used as source in supply pick move created by 'Supply from Another "
+"Warhouse'."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period_createlines
+msgid "stock.period.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_before:0
+msgid "Planned Out Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,forecasted_products:0
+msgid "All Products with Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Periods :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_in:0
+msgid ""
+"Quantity which is already picked up to this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Stock and Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast
+msgid "stock.sale.forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_dept_id:0
+msgid "This Department"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,to_procure:0
+msgid "Planned In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_simulation:0
+msgid "Stock Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning_createlines
+msgid "stock.planning.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_before:0
+msgid ""
+"Confirmed incoming in periods before calculated (Including Already In). "
+"Between start date of current period and one day before start of calculated "
+"period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Search Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_user:0
+msgid "This User Period5"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,history:0
+msgid "History of procurement or internal supply of this planning line."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,company_forecast:0
+msgid ""
+"All sales forecasts for whole company (for all Warehouses) of selected "
+"Product during selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_user:0
+msgid "This User Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_user:0
+msgid "This User Period3"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_main
+#: view:stock.planning:0
+msgid "Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,minimum_op:0
+msgid "Minimum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Procure Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Closed"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick List "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Create"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_planning_form
+#: model:ir.module.module,shortdesc:stock_planning.module_meta_information
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning
+#: view:stock.planning:0
+msgid "Master Procurement Schedule"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Creation Date: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,period_id:0
+#: field:stock.planning.createlines,period_id:0
+#: field:stock.sale.forecast,period_id:0
+#: field:stock.sale.forecast.createlines,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: field:stock.period,state:0
+#: field:stock.planning,state:0
+#: field:stock.sale.forecast,state:0
+msgid "State"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category of products which created forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period
+msgid "stock period"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast_createlines
+msgid "stock.sale.forecast.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_id:0
+#: field:stock.planning.createlines,warehouse_id:0
+#: field:stock.sale.forecast,warehouse_id:0
+#: field:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_simulation:0
+msgid ""
+"Stock simulation at the end of selected Period.\n"
+" For current period it is: \n"
+"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n"
+"For periods ahead it is: \n"
+"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned "
+"In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,analyze_company:0
+msgid "Check this box to see the sales for whole company."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,name:0
+msgid "Name"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Search Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming_before:0
+msgid "Incoming Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,product_categ_id:0
+#: field:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Manual planning for "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_user_id:0
+msgid "This User"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Supply from Another Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculate Planning"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Procurement created in MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_start:0
+msgid "Stock quantity one day before current period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Weekly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,maximum_op:0
+msgid "Maximum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+msgid "Creates planning lines for selected period and warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Warehouse Forecast: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Cannot delete Validated Sale Forecasts !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_user:0
+msgid "This User Period4"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Note: Doesn't duplicate existing lines created by you."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Stock and Sales Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,company_forecast:0
+msgid "Company Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_uom:0
+#: help:stock.sale.forecast,product_uom:0
+msgid ""
+"Unit of Measure used to show the quanities of stock calculation.You can use "
+"units form default category or from second category (UoS category)."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per User :"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,name:0
+#: field:stock.period.createlines,name:0
+msgid "Period Name"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,user_id:0
+msgid "Created/Validated by"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_forecast:0
+msgid "Warehouse Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_company:0
+msgid "This Company Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_company:0
+msgid "This Company Period5"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Planned Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_company:0
+msgid "This Company Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_company:0
+msgid "This Company Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_start:0
+#: field:stock.period.createlines,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_user:0
+msgid "This User Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,confirmed_forecasts_only:0
+msgid "Validated Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,product_categ_id:0
+msgid ""
+"Planning will be created for products from Product Category selected by this "
+"field. This field is ignored when you check \"All Forecasted Product\" box."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,planned_outgoing:0
+msgid "Planned Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.period,state:0
+#: selection:stock.planning,state:0
+#: selection:stock.sale.forecast,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Warehouse "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_dept:0
+msgid "This Dept Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create periods for Stock and Sales Planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,planned_outgoing:0
+msgid ""
+"Enter planned outgoing quantity from selected Warehouse during the selected "
+"Period of selected Product. To plan this value look at Confirmed Out or "
+"Sales Forecasts. This value should be equal or greater than Confirmed Out."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.module.module,description:stock_planning.module_meta_information
+msgid ""
+"\n"
+"This module is based on original OpenERP SA module stock_planning version "
+"1.0 of the same name Master Procurement Schedule.\n"
+"\n"
+"Purpose of MPS is to allow create a manual procurement (requisition) apart "
+"of MRP scheduler (which works automatically on minimum stock rules).\n"
+"\n"
+"Terms used in the module:\n"
+"- Stock and Sales Period - is the time (between Start Date and End Date) for "
+"which you plan Stock and Sales Forecast and make Procurement Planning. \n"
+"- Stock and Sales Forecast - is the quantity of products you plan to sell in "
+"the Period.\n"
+"- Stock Planning - is the quantity of products you plan to purchase or "
+"produce for the Period.\n"
+"\n"
+"Because we have another module sale_forecast which uses terms \"Sales "
+"Forecast\" and \"Planning\" as amount values we will use terms \"Stock and "
+"Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity "
+"values. \n"
+"\n"
+"Activity with this module is divided to three steps:\n"
+"- Creating Periods. Mandatory step.\n"
+"- Creating Sale Forecasts and entering quantities to them. Optional step but "
+"useful for further planning.\n"
+"- Creating Planning lines, entering quantities to them and making "
+"Procurement. Making procurement is the final step for the Period.\n"
+"\n"
+"Periods\n"
+"=======\n"
+"You have two menu items for Periods in \"Sales Management - Configuration\". "
+"There are:\n"
+"- \"Create Sales Periods\" - Which automates creating daily, weekly or "
+"monthly periods.\n"
+"- \"Stock and sales Periods\" - Which allows to create any type of periods, "
+"change the dates and change the State of period.\n"
+"\n"
+"Creating periods is the first step you have to do to use modules features. "
+"You can create custom periods using \"New\" button in \"Stock and Sales "
+"Periods\" form or view but it is recommended to use automating tool.\n"
+"\n"
+"Remarks:\n"
+"- These periods (officially Stock and Sales Periods) are separated of "
+"Financial or other periods in the system.\n"
+"- Periods are not assigned to companies (when you use multicompany feature "
+"at all). Module suppose that you use the same periods across companies. If "
+"you wish to use different periods for different companies define them as you "
+"wish (they can overlap). Later on in this text will be indications how to "
+"use such periods.\n"
+"- When periods are created automatically their start and finish dates are "
+"with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily "
+"periods they will have start date 31.01.2010 00:00:00 and end date "
+"31.01.2010 23:59:00. It works only in automatic creation of periods. When "
+"you create periods manually you have to take care about hours because you "
+"can have incorrect values form sales or stock. \n"
+"- If you use overlapping periods for the same product, warehouse and company "
+"results can be unpredictable.\n"
+"- If current date doesn't belong to any period or you have holes between "
+"periods results can be unpredictable.\n"
+"\n"
+"Sales Forecasts\n"
+"===============\n"
+"You have few menus for Sales forecast in \"Sales Management - Sales "
+"Forecasts\".\n"
+"- \"Create Sales Forecasts for Sales Periods\" - which automates creating "
+"forecasts lines according to some parameters.\n"
+"- \"Sales Forecasts\" - few menus for working with forecasts lists and "
+"forms.\n"
+"\n"
+"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for "
+"products from selected Category, for selected Period and for selected "
+"Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other "
+"settings of period before this one to created one.\n"
+"\n"
+"Remarks:\n"
+"- This tool doesn't create lines, if relevant lines (for the same Product, "
+"Period, Warehouse and validated or created by you) already exists. If you "
+"wish to create another forecast, if relevant lines exists you have to do it "
+"manually using menus described bellow.\n"
+"- When created lines are validated by someone else you can use this tool to "
+"create another lines for the same Period, Product and Warehouse. \n"
+"- When you choose \"Copy Last Forecast\" created line takes quantity and "
+"some settings from your (validated by you or created by you if not validated "
+"yet) forecast which is for last period before period of created forecast. If "
+"there are few your forecasts for period before this one (it is possible) "
+"system takes one of them (no rule which of them).\n"
+"\n"
+"\n"
+"Menus \"Sales Forecasts\"\n"
+"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in "
+"\"Product Quantity\". Further calculation can work for draft forecasts. But "
+"validation can save your data against any accidental changes. You can click "
+"\"Validate\" button but it is not mandatory.\n"
+"\n"
+"Instead of forecast quantity you can enter amount of forecast sales in field "
+"\"Product Amount\". System will count quantity from amount according to Sale "
+"price of the Product.\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. "
+"You can select one of unit of measure from default category or from second "
+"category. When you change unit of measure the quanities will be recalculated "
+"according to new UoM: editable values (blue fields) immediately, non edited "
+"fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"To find proper value for Sale Forecast you can use \"Sales History\" table "
+"for this product. You have to enter parameters to the top and left of this "
+"table and system will count sale quantities according to these parameters. "
+"So you can select fe. your department (at the top) then (to the left): last "
+"period, period before last and period year ago.\n"
+"\n"
+"Remarks:\n"
+"\n"
+"\n"
+"Procurement Planning\n"
+"====================\n"
+"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n"
+"- \"Create Stock Planning Lines\" - allows you to automate creating planning "
+"lines according to some parameters.\n"
+"- \"Master Procurement Scheduler\" - is the most important menu of the "
+"module which allows to create procurement.\n"
+"\n"
+"As Sales forecast is phase of planning sales. The Procurement Planning "
+"(Planning) is the phase of scheduling Purchasing or Producing. You can "
+"create Procurement Planning quickly using tool from menu \"Create Stock "
+"Planning Lines\", then you can review created planning and make procurement "
+"using menu \"Master Procurement Schedule\".\n"
+"\n"
+"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning "
+"lines for products from selected Category, for selected Period, and for "
+"selected Warehouse. When you check option \"All Products with Forecast\" "
+"system creates lines for all products having forecast for selected Period "
+"and Warehouse. Selected Category will be ignored in this case.\n"
+"\n"
+"Under menu \"Master Procurement Scheduler\" you can generally change the "
+"values \"Planned Out\" and \"Planned In\" to observe the field \"Stock "
+"Simulation\" and decide if this value would be accurate for end of the "
+"Period. \n"
+"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of "
+"all forecasts for Period and Warehouse. But your planning can be based on "
+"any other information you have. It is not necessary to have any forecast. \n"
+"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which "
+"is the quantity to be procured to make stock as indicated in \"Stock "
+"Simulation\" at the end of Period. You can compare \"Stock Simulation\" "
+"quantity to minimum stock rules visible on the form. But you can plan "
+"different quantity than in Minimum Stock Rules. Calculation is made for "
+"whole Warehouse by default. But if you want to see values for Stock location "
+"of calculated warehouse you can use check box \"Stock Location Only\".\n"
+"\n"
+"If after few tries you decide that you found correct quantities for "
+"\"Planned Out\" and \"Planned In\" and you are satisfied with end of period "
+"stock calculated in \"Stock Simulation\" you can click \"Procure Incoming "
+"Left\" button to procure quantity of field \"Incoming Left\" into the "
+"Warehouse. System creates appropriate Procurement Order. You can decide if "
+"procurement will be made to Stock or Input location of calculated Warehouse. "
+"\n"
+"\n"
+"If you don't want to Produce or Buy the product but just pick calculated "
+"quantity from another warehouse you can click \"Supply from Another "
+"Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list "
+"with move from selected source Warehouse to calculated Warehouse (as "
+"destination). You can also decide if this pick should be done from Stock or "
+"Output location of source warehouse. Destination location (Stock or Input) "
+"of destination warehouse will be used as set for \"Procure Incoming Left\". "
+"\n"
+"\n"
+"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", "
+"\"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you "
+"have to click button \"Calculate Planning\".\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. "
+"You can select one of unit of measure from default category or from second "
+"category. When you change unit of measure the quanities will be recalculated "
+"according to new UoM: editable values (blue fields) immediately, non edited "
+"fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"How Stock Simulation field is calculated:\n"
+"Generally Stock Simulation shows the stock for end of the calculated period "
+"according to some planned or confirmed stock moves. Calculation always "
+"starts with quantity of real stock of beginning of current period. Then "
+"calculation adds or subtracts quantities of calculated period or periods "
+"before calculated.\n"
+"When you are in the same period (current period is the same as calculated) "
+"Stock Simulation is calculated as follows:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period\n"
+"\t- Planned Out \n"
+"\t+ Planned In\n"
+"\n"
+"When you calculate period next to current:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period\n"
+"\t- Planned Out of current Period \n"
+"\t+ Confirmed In of current Period (incl. Already In)\n"
+"\t- Planned Out of calculated Period \n"
+"\t+ Planned In of calculated Period .\n"
+"\n"
+"As you see calculated Period is taken the same way like in case above. But "
+"calculation of current Period are made a little bit different. First you "
+"should note that system takes for current Period only Confirmed In moves. It "
+"means that you have to make planning and procurement for current Period "
+"before this calculation (for Period next to current). \n"
+"\n"
+"When you calculate Period ahead:\n"
+"Stock Simulation = \n"
+"\tStock of beginning of current Period \n"
+"\t- Sum of Planned Out of Periods before calculated \n"
+"\t+ Sum of Confirmed In of Periods before calculated (incl. Already In) \n"
+"\t- Planned Out of calculated Period \n"
+"\t+ Planned In of calculated Period.\n"
+"\n"
+"Periods before calculated means periods starting from current till period "
+"before calculated.\n"
+"\n"
+"Remarks:\n"
+"- Remember to make planning for all periods before calculated because "
+"omitting these quantities and procurements can cause wrong suggestions for "
+"procurements few periods ahead.\n"
+"- If you made planning few periods ahead and you find that real Confirmed "
+"Out is bigger than Planned Out in some periods before you can repeat "
+"Planning and make another procurement. You should do it in the same planning "
+"line. If you create another planning line the suggestions can be wrong.\n"
+"- When you wish to work with different periods for some part of products "
+"define two kinds of periods (fe. Weekly and Monthly) and use them for "
+"different products. Example: If you use always Weekly periods for Products "
+"A, and Monthly periods for Products B your all calculations will work "
+"correctly. You can also use different kind of periods for the same products "
+"from different warehouse or companies. But you cannot use overlapping "
+"periods for the same product, warehouse and company because results can be "
+"unpredictable. The same apply to Forecasts lines.\n"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Incoming Left: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Internal Supply"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"You must specify a Source Warehouse different than calculated (destination) "
+"Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_sale_forecast_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_createlines
+msgid "Create Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Creates forecast lines for selected warehouse and period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Requisition ("
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_left:0
+msgid ""
+"Quantity expected to go out in selected period. As a difference between "
+"Planned Out and Confirmed Out. For current period Already Out is also "
+"calculated"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_id:0
+msgid "Period4"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Already In: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_id:0
+msgid "Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_id:0
+msgid "Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_id:0
+msgid "Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Initial Stock: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Minimum stock: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,active_uom:0
+#: field:stock.sale.forecast,active_uom:0
+msgid "Active UoM"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_planning_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_createlines
+#: view:stock.planning.createlines:0
+msgid "Create Stock Planning Lines"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "General Info"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_sale_forecast_form
+msgid "Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Planning and Situation for Calculated Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_warehouse:0
+msgid "This Warehouse Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Sales history"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,supply_warehouse_id:0
+msgid "Source Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_qty:0
+msgid "Forecasted quantity."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Stock"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Stock Simulation: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Confirmed Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_supply_location:0
+msgid "Stock Supply Location"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_stop:0
+msgid "Ending date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,forecasted_products:0
+msgid ""
+"Check this box to create planning for all products having any forecast for "
+"selected Warehouse and Period. Product Category field will be ignored."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_in:0
+msgid "Already In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom_categ:0
+#: field:stock.planning,product_uos_categ:0
+#: field:stock.sale.forecast,product_uom_categ:0
+msgid "Product UoM Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming:0
+msgid "Confirmed In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,line_time:0
+msgid "Past/Future"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uos_categ:0
+msgid "Product UoS Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_qty:0
+msgid "Product Quantity"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy Last Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_id:0
+msgid "Shows which product this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.planning,state:0
+msgid "Done"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period.createlines,period_ids:0
+msgid "Periods"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " according to state:"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Cancel"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Close"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+#: selection:stock.sale.forecast,state:0
+msgid "Validated"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+msgid "Open"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy quantities from last Stock and Sale Forecast."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_dept:0
+msgid "This Dept Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_dept:0
+msgid "This Dept Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_dept:0
+msgid "This Dept Period2"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_dept:0
+msgid "This Dept Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_warehouse:0
+msgid "This Warehouse Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_warehouse:0
+msgid "This Warehouse Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing:0
+msgid "Confirmed Out"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,create_uid:0
+msgid "Responsible"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Default UOM"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_warehouse:0
+msgid "This Warehouse Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_warehouse:0
+msgid "This Warehouse Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Current"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning
+msgid "stock.planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,warehouse_id:0
+msgid ""
+"Shows which warehouse this forecast concerns. If during stock planning you "
+"will need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,warehouse_id:0
+msgid "Warehouse which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyze_company:0
+msgid "Per Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,to_procure:0
+msgid ""
+"Enter quantity which (by your plan) should come in. Change this value and "
+"observe Stock simulation. This value should be equal or greater than "
+"Confirmed In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,period_id:0
+msgid "Period which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_out:0
+msgid "Already Out"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_id:0
+msgid "Product which this planning is created for."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Warehouse :"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+"For period: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,history:0
+msgid "Procurement History"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_start:0
+msgid "Starting date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Planned In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Department :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming:0
+msgid "Quantity of all confirmed incoming moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_stop:0
+#: field:stock.period.createlines,date_stop:0
+msgid "End Date"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_supply_location:0
+msgid ""
+"Check to supply from Stock location of Supply Warehouse. If not checked "
+"supply will be made from Output location of Supply Warehouse. Used in "
+"'Supply from Another Warhouse' with Supply Warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "No Requisition"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,minimum_op:0
+msgid "Minimum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,period_id:0
+msgid "Shows which period this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom:0
+msgid "UoM"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculated Period Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,product_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid ""
+"\n"
+" Expected Out: "
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_all
+#: view:stock.sale.forecast:0
+msgid "Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "MPS("
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick created from MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,procure_to_stock:0
+msgid "Procure To Stock Location"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Approve"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,period_id:0
+msgid ""
+"Period for this planning. Requisition will be created for beginning of the "
+"period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Calculate Sales History"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_amt:0
+msgid "Product Amount"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,confirmed_forecasts_only:0
+msgid ""
+"Check to take validated forecasts only. If not checked system takes "
+"validated and draft forecasts."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_id:0
+msgid "Period5"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_createlines_form
+msgid "Stock and Sales Planning Periods"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_warehouse_id:0
+msgid "This Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_main
+#: view:stock.period:0
+#: view:stock.period.createlines:0
+msgid "Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,user_id:0
+msgid "Shows who created this forecast, or who validated."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_left:0
+msgid ""
+"Quantity left to Planned incoming quantity. This is calculated difference "
+"between Planned In and Confirmed In. For current period Already In is also "
+"calculated. This value is used to create procurement for lacking quantity."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_start:0
+msgid "Initial Stock"
+msgstr ""
diff --git a/addons/stock_planning/i18n/stock_planning.pot b/addons/stock_planning/i18n/stock_planning.pot
new file mode 100644
index 00000000000..e750d2558d7
--- /dev/null
+++ b/addons/stock_planning/i18n/stock_planning.pot
@@ -0,0 +1,1280 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * stock_planning
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 10:50:02+0000\n"
+"PO-Revision-Date: 2010-08-20 10:50:02+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#, python-format
+msgid "No forecasts for selected period or no products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_only:0
+msgid "Check to calculate stock location of selected warehouse only. If not selected calculation is made for input, stock and output location of warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,maximum_op:0
+msgid "Maximum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_company:0
+msgid "This Copmany Period1"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Group By..."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Already Out: "
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_amt:0
+msgid "Forecast value which will be converted to Product Quantity according to prices."
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Incoming Left must be greater than 0 !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_before:0
+msgid "Planned Out in periods before calculated. Between start date of current period and one day before start of calculated period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "No products in selected category !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse which forecasts will concern. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_left:0
+msgid "Expected Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid " "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming_left:0
+msgid "Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Requisition history"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Create Forecasts Lines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing:0
+msgid "Quantity of all confirmed outgoing moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Daily Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,company_id:0
+#: field:stock.planning.createlines,company_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,company_id:0
+#: field:stock.sale.forecast.createlines,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,warehouse_forecast:0
+msgid "All sales forecasts for selected Warehouse of selected Product during selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines
+msgid "Create Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Minimum Stock Rule Indicators"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,period_id:0
+msgid "Period which forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_only:0
+msgid "Stock Location Only"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_out:0
+msgid "Quantity which is already dispatched out of this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,procure_to_stock:0
+msgid "Chect to make procurement to stock location of selected warehouse. If not selected procurement will be made into input location of warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Current Period Situation"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Planned Out Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Monthly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,supply_warehouse_id:0
+msgid "Warehouse used as source in supply pick move created by 'Supply from Another Warhouse'."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period_createlines
+msgid "stock.period.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing_before:0
+msgid "Planned Out Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,forecasted_products:0
+msgid "All Products with Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Periods :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,already_in:0
+msgid "Quantity which is already picked up to this warehouse in current period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In Before: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Stock and Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast
+msgid "stock.sale.forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_dept_id:0
+msgid "This Department"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,to_procure:0
+msgid "Planned In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_simulation:0
+msgid "Stock Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning_createlines
+msgid "stock.planning.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_before:0
+msgid "Confirmed incoming in periods before calculated (Including Already In). Between start date of current period and one day before start of calculated period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Search Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_user:0
+msgid "This User Period5"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,history:0
+msgid "History of procurement or internal supply of this planning line."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,company_forecast:0
+msgid "All sales forecasts for whole company (for all Warehouses) of selected Product during selected Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_user:0
+msgid "This User Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_user:0
+msgid "This User Period3"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_main
+#: view:stock.planning:0
+msgid "Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,minimum_op:0
+msgid "Minimum Rule"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Procure Incoming Left"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Closed"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick List "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Create"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_planning_form
+#: model:ir.module.module,shortdesc:stock_planning.module_meta_information
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning
+#: view:stock.planning:0
+msgid "Master Procurement Schedule"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Creation Date: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,period_id:0
+#: field:stock.planning.createlines,period_id:0
+#: field:stock.sale.forecast,period_id:0
+#: field:stock.sale.forecast.createlines,period_id:0
+msgid "Period"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: field:stock.period,state:0
+#: field:stock.planning,state:0
+#: field:stock.sale.forecast,state:0
+msgid "State"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category of products which created forecasts will concern."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_period
+msgid "stock period"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_sale_forecast_createlines
+msgid "stock.sale.forecast.createlines"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_id:0
+#: field:stock.planning.createlines,warehouse_id:0
+#: field:stock.sale.forecast,warehouse_id:0
+#: field:stock.sale.forecast.createlines,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_simulation:0
+msgid "Stock simulation at the end of selected Period.\n"
+" For current period it is: \n"
+"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n"
+"For periods ahead it is: \n"
+"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,analyze_company:0
+msgid "Check this box to see the sales for whole company."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,name:0
+msgid "Name"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Search Stock Planning"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming_before:0
+msgid "Incoming Before"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning.createlines,product_categ_id:0
+#: field:stock.sale.forecast.createlines,product_categ_id:0
+msgid "Product Category"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#: code:addons/stock_planning/wizard/stock_planning_createlines.py:0
+#: code:addons/stock_planning/wizard/stock_planning_forecast.py:0
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Manual planning for "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_user_id:0
+msgid "This User"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Supply from Another Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculate Planning"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Procurement created in MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_start:0
+msgid "Stock quantity one day before current period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create Weekly Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,maximum_op:0
+msgid "Maximum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+msgid "Creates planning lines for selected period and warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Warehouse Forecast: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Cannot delete Validated Sale Forecasts !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_user:0
+msgid "This User Period4"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Note: Doesn't duplicate existing lines created by you."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Stock and Sales Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,company_forecast:0
+msgid "Company Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_uom:0
+#: help:stock.sale.forecast,product_uom:0
+msgid "Unit of Measure used to show the quanities of stock calculation.You can use units form default category or from second category (UoS category)."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per User :"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,name:0
+#: field:stock.period.createlines,name:0
+msgid "Period Name"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,user_id:0
+msgid "Created/Validated by"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,warehouse_forecast:0
+msgid "Warehouse Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_company:0
+msgid "This Company Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_company:0
+msgid "This Company Period5"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Planned Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_company:0
+msgid "This Company Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_company:0
+msgid "This Company Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_start:0
+#: field:stock.period.createlines,date_start:0
+msgid "Start Date"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_user:0
+msgid "This User Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,confirmed_forecasts_only:0
+msgid "Validated Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,product_categ_id:0
+msgid "Planning will be created for products from Product Category selected by this field. This field is ignored when you check \"All Forecasted Product\" box."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,planned_outgoing:0
+msgid "Planned Out"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.period,state:0
+#: selection:stock.planning,state:0
+#: selection:stock.sale.forecast,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: view:stock.sale.forecast:0
+msgid "Warehouse "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_dept:0
+msgid "This Dept Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Create periods for Stock and Sales Planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,planned_outgoing:0
+msgid "Enter planned outgoing quantity from selected Warehouse during the selected Period of selected Product. To plan this value look at Confirmed Out or Sales Forecasts. This value should be equal or greater than Confirmed Out."
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.module.module,description:stock_planning.module_meta_information
+msgid "\n"
+"This module is based on original OpenERP SA module stock_planning version 1.0 of the same name Master Procurement Schedule.\n"
+"\n"
+"Purpose of MPS is to allow create a manual procurement (requisition) apart of MRP scheduler (which works automatically on minimum stock rules).\n"
+"\n"
+"Terms used in the module:\n"
+"- Stock and Sales Period - is the time (between Start Date and End Date) for which you plan Stock and Sales Forecast and make Procurement Planning. \n"
+"- Stock and Sales Forecast - is the quantity of products you plan to sell in the Period.\n"
+"- Stock Planning - is the quantity of products you plan to purchase or produce for the Period.\n"
+"\n"
+"Because we have another module sale_forecast which uses terms \"Sales Forecast\" and \"Planning\" as amount values we will use terms \"Stock and Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity values. \n"
+"\n"
+"Activity with this module is divided to three steps:\n"
+"- Creating Periods. Mandatory step.\n"
+"- Creating Sale Forecasts and entering quantities to them. Optional step but useful for further planning.\n"
+"- Creating Planning lines, entering quantities to them and making Procurement. Making procurement is the final step for the Period.\n"
+"\n"
+"Periods\n"
+"=======\n"
+"You have two menu items for Periods in \"Sales Management - Configuration\". There are:\n"
+"- \"Create Sales Periods\" - Which automates creating daily, weekly or monthly periods.\n"
+"- \"Stock and sales Periods\" - Which allows to create any type of periods, change the dates and change the State of period.\n"
+"\n"
+"Creating periods is the first step you have to do to use modules features. You can create custom periods using \"New\" button in \"Stock and Sales Periods\" form or view but it is recommended to use automating tool.\n"
+"\n"
+"Remarks:\n"
+"- These periods (officially Stock and Sales Periods) are separated of Financial or other periods in the system.\n"
+"- Periods are not assigned to companies (when you use multicompany feature at all). Module suppose that you use the same periods across companies. If you wish to use different periods for different companies define them as you wish (they can overlap). Later on in this text will be indications how to use such periods.\n"
+"- When periods are created automatically their start and finish dates are with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily periods they will have start date 31.01.2010 00:00:00 and end date 31.01.2010 23:59:00. It works only in automatic creation of periods. When you create periods manually you have to take care about hours because you can have incorrect values form sales or stock. \n"
+"- If you use overlapping periods for the same product, warehouse and company results can be unpredictable.\n"
+"- If current date doesn't belong to any period or you have holes between periods results can be unpredictable.\n"
+"\n"
+"Sales Forecasts\n"
+"===============\n"
+"You have few menus for Sales forecast in \"Sales Management - Sales Forecasts\".\n"
+"- \"Create Sales Forecasts for Sales Periods\" - which automates creating forecasts lines according to some parameters.\n"
+"- \"Sales Forecasts\" - few menus for working with forecasts lists and forms.\n"
+"\n"
+"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for products from selected Category, for selected Period and for selected Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other settings of period before this one to created one.\n"
+"\n"
+"Remarks:\n"
+"- This tool doesn't create lines, if relevant lines (for the same Product, Period, Warehouse and validated or created by you) already exists. If you wish to create another forecast, if relevant lines exists you have to do it manually using menus described bellow.\n"
+"- When created lines are validated by someone else you can use this tool to create another lines for the same Period, Product and Warehouse. \n"
+"- When you choose \"Copy Last Forecast\" created line takes quantity and some settings from your (validated by you or created by you if not validated yet) forecast which is for last period before period of created forecast. If there are few your forecasts for period before this one (it is possible) system takes one of them (no rule which of them).\n"
+"\n"
+"\n"
+"Menus \"Sales Forecasts\"\n"
+"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in \"Product Quantity\". Further calculation can work for draft forecasts. But validation can save your data against any accidental changes. You can click \"Validate\" button but it is not mandatory.\n"
+"\n"
+"Instead of forecast quantity you can enter amount of forecast sales in field \"Product Amount\". System will count quantity from amount according to Sale price of the Product.\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"To find proper value for Sale Forecast you can use \"Sales History\" table for this product. You have to enter parameters to the top and left of this table and system will count sale quantities according to these parameters. So you can select fe. your department (at the top) then (to the left): last period, period before last and period year ago.\n"
+"\n"
+"Remarks:\n"
+"\n"
+"\n"
+"Procurement Planning\n"
+"====================\n"
+"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n"
+"- \"Create Stock Planning Lines\" - allows you to automate creating planning lines according to some parameters.\n"
+"- \"Master Procurement Scheduler\" - is the most important menu of the module which allows to create procurement.\n"
+"\n"
+"As Sales forecast is phase of planning sales. The Procurement Planning (Planning) is the phase of scheduling Purchasing or Producing. You can create Procurement Planning quickly using tool from menu \"Create Stock Planning Lines\", then you can review created planning and make procurement using menu \"Master Procurement Schedule\".\n"
+"\n"
+"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning lines for products from selected Category, for selected Period, and for selected Warehouse. When you check option \"All Products with Forecast\" system creates lines for all products having forecast for selected Period and Warehouse. Selected Category will be ignored in this case.\n"
+"\n"
+"Under menu \"Master Procurement Scheduler\" you can generally change the values \"Planned Out\" and \"Planned In\" to observe the field \"Stock Simulation\" and decide if this value would be accurate for end of the Period. \n"
+"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of all forecasts for Period and Warehouse. But your planning can be based on any other information you have. It is not necessary to have any forecast. \n"
+"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which is the quantity to be procured to make stock as indicated in \"Stock Simulation\" at the end of Period. You can compare \"Stock Simulation\" quantity to minimum stock rules visible on the form. But you can plan different quantity than in Minimum Stock Rules. Calculation is made for whole Warehouse by default. But if you want to see values for Stock location of calculated warehouse you can use check box \"Stock Location Only\".\n"
+"\n"
+"If after few tries you decide that you found correct quantities for \"Planned Out\" and \"Planned In\" and you are satisfied with end of period stock calculated in \"Stock Simulation\" you can click \"Procure Incoming Left\" button to procure quantity of field \"Incoming Left\" into the Warehouse. System creates appropriate Procurement Order. You can decide if procurement will be made to Stock or Input location of calculated Warehouse. \n"
+"\n"
+"If you don't want to Produce or Buy the product but just pick calculated quantity from another warehouse you can click \"Supply from Another Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list with move from selected source Warehouse to calculated Warehouse (as destination). You can also decide if this pick should be done from Stock or Output location of source warehouse. Destination location (Stock or Input) of destination warehouse will be used as set for \"Procure Incoming Left\". \n"
+"\n"
+"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", \"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you have to click button \"Calculate Planning\".\n"
+"\n"
+"All values on the form are expressed in unit of measure selected on form. You can select one of unit of measure from default category or from second category. When you change unit of measure the quanities will be recalculated according to new UoM: editable values (blue fields) immediately, non edited fields after clicking of \"Calculate Planning\" button.\n"
+"\n"
+"How Stock Simulation field is calculated:\n"
+"Generally Stock Simulation shows the stock for end of the calculated period according to some planned or confirmed stock moves. Calculation always starts with quantity of real stock of beginning of current period. Then calculation adds or subtracts quantities of calculated period or periods before calculated.\n"
+"When you are in the same period (current period is the same as calculated) Stock Simulation is calculated as follows:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out \n"
+" + Planned In\n"
+"\n"
+"When you calculate period next to current:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period\n"
+" - Planned Out of current Period \n"
+" + Confirmed In of current Period (incl. Already In)\n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period .\n"
+"\n"
+"As you see calculated Period is taken the same way like in case above. But calculation of current Period are made a little bit different. First you should note that system takes for current Period only Confirmed In moves. It means that you have to make planning and procurement for current Period before this calculation (for Period next to current). \n"
+"\n"
+"When you calculate Period ahead:\n"
+"Stock Simulation = \n"
+" Stock of beginning of current Period \n"
+" - Sum of Planned Out of Periods before calculated \n"
+" + Sum of Confirmed In of Periods before calculated (incl. Already In) \n"
+" - Planned Out of calculated Period \n"
+" + Planned In of calculated Period.\n"
+"\n"
+"Periods before calculated means periods starting from current till period before calculated.\n"
+"\n"
+"Remarks:\n"
+"- Remember to make planning for all periods before calculated because omitting these quantities and procurements can cause wrong suggestions for procurements few periods ahead.\n"
+"- If you made planning few periods ahead and you find that real Confirmed Out is bigger than Planned Out in some periods before you can repeat Planning and make another procurement. You should do it in the same planning line. If you create another planning line the suggestions can be wrong.\n"
+"- When you wish to work with different periods for some part of products define two kinds of periods (fe. Weekly and Monthly) and use them for different products. Example: If you use always Weekly periods for Products A, and Monthly periods for Products B your all calculations will work correctly. You can also use different kind of periods for the same products from different warehouse or companies. But you cannot use overlapping periods for the same product, warehouse and company because results can be unpredictable. The same apply to Forecasts lines.\n"
+""
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Incoming Left: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Internal Supply"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "You must specify a Source Warehouse different than calculated (destination) Warehouse !"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_sale_forecast_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_createlines
+msgid "Create Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast.createlines:0
+msgid "Creates forecast lines for selected warehouse and period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Requisition ("
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,outgoing_left:0
+msgid "Quantity expected to go out in selected period. As a difference between Planned Out and Confirmed Out. For current period Already Out is also calculated"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_id:0
+msgid "Period4"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Already In: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_id:0
+msgid "Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_id:0
+msgid "Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_id:0
+msgid "Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Initial Stock: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Minimum stock: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,active_uom:0
+#: field:stock.sale.forecast,active_uom:0
+msgid "Active UoM"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_planning_createlines_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_createlines
+#: view:stock.planning.createlines:0
+msgid "Create Stock Planning Lines"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "General Info"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_view_stock_sale_forecast_form
+msgid "Sales Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Planning and Situation for Calculated Period"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_warehouse:0
+msgid "This Warehouse Period1"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Confirmed In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Sales history"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,supply_warehouse_id:0
+msgid "Source Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_qty:0
+msgid "Forecasted quantity."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Stock"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Stock Simulation: "
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Confirmed Out: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_supply_location:0
+msgid "Stock Supply Location"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_stop:0
+msgid "Ending date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,forecasted_products:0
+msgid "Check this box to create planning for all products having any forecast for selected Warehouse and Period. Product Category field will be ignored."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_in:0
+msgid "Already In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom_categ:0
+#: field:stock.planning,product_uos_categ:0
+#: field:stock.sale.forecast,product_uom_categ:0
+msgid "Product UoM Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,incoming:0
+msgid "Confirmed In"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,line_time:0
+msgid "Past/Future"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uos_categ:0
+msgid "Product UoS Category"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_qty:0
+msgid "Product Quantity"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy Last Forecast"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,product_id:0
+msgid "Shows which product this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: selection:stock.planning,state:0
+msgid "Done"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period.createlines,period_ids:0
+msgid "Periods"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " according to state:"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period.createlines:0
+msgid "Cancel"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+#: view:stock.planning.createlines:0
+#: view:stock.sale.forecast.createlines:0
+msgid "Close"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+#: selection:stock.sale.forecast,state:0
+msgid "Validated"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+#: selection:stock.period,state:0
+msgid "Open"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast.createlines,copy_forecast:0
+msgid "Copy quantities from last Stock and Sale Forecast."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period1_per_dept:0
+msgid "This Dept Period1"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_dept:0
+msgid "This Dept Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_dept:0
+msgid "This Dept Period2"
+msgstr ""
+
+#. module: stock_planning
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_dept:0
+msgid "This Dept Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period2_per_warehouse:0
+msgid "This Warehouse Period2"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period3_per_warehouse:0
+msgid "This Warehouse Period3"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,outgoing:0
+msgid "Confirmed Out"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,create_uid:0
+msgid "Responsible"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Default UOM"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period4_per_warehouse:0
+msgid "This Warehouse Period4"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_per_warehouse:0
+msgid "This Warehouse Period5"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.period:0
+msgid "Current"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.model,name:stock_planning.model_stock_planning
+msgid "stock.planning"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,warehouse_id:0
+msgid "Shows which warehouse this forecast concerns. If during stock planning you will need sales forecast for all warehouses choose any warehouse now."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,warehouse_id:0
+msgid "Warehouse which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyze_company:0
+msgid "Per Company"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,to_procure:0
+msgid "Enter quantity which (by your plan) should come in. Change this value and observe Stock simulation. This value should be equal or greater than Confirmed In."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning.createlines,period_id:0
+msgid "Period which planning will concern."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,already_out:0
+msgid "Already Out"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,product_id:0
+msgid "Product which this planning is created for."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Warehouse :"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\nFor period: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,history:0
+msgid "Procurement History"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.period.createlines,date_start:0
+msgid "Starting date for planning period."
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid " Planned In: "
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Per Department :"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming:0
+msgid "Quantity of all confirmed incoming moves in calculated Period."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.period,date_stop:0
+#: field:stock.period.createlines,date_stop:0
+msgid "End Date"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,stock_supply_location:0
+msgid "Check to supply from Stock location of Supply Warehouse. If not checked supply will be made from Output location of Supply Warehouse. Used in 'Supply from Another Warhouse' with Supply Warehouse."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "No Requisition"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,minimum_op:0
+msgid "Minimum quantity set in Minimum Stock Rules for this Warhouse"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,period_id:0
+msgid "Shows which period this forecast concerns."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,product_uom:0
+msgid "UoM"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+msgid "Calculated Period Simulation"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.planning:0
+#: field:stock.planning,product_id:0
+#: view:stock.sale.forecast:0
+#: field:stock.sale.forecast,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "\n Expected Out: "
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast
+#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_all
+#: view:stock.sale.forecast:0
+msgid "Sales Forecasts"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "MPS("
+msgstr ""
+
+#. module: stock_planning
+#: code:addons/stock_planning/stock_planning.py:0
+#, python-format
+msgid "Pick created from MPS by user: "
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,procure_to_stock:0
+msgid "Procure To Stock Location"
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Approve"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,period_id:0
+msgid "Period for this planning. Requisition will be created for beginning of the period."
+msgstr ""
+
+#. module: stock_planning
+#: view:stock.sale.forecast:0
+msgid "Calculate Sales History"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,product_amt:0
+msgid "Product Amount"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,confirmed_forecasts_only:0
+msgid "Check to take validated forecasts only. If not checked system takes validated and draft forecasts."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_period5_id:0
+msgid "Period5"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_createlines_form
+msgid "Stock and Sales Planning Periods"
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.sale.forecast,analyzed_warehouse_id:0
+msgid "This Warehouse"
+msgstr ""
+
+#. module: stock_planning
+#: model:ir.actions.act_window,name:stock_planning.action_stock_period_form
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period
+#: model:ir.ui.menu,name:stock_planning.menu_stock_period_main
+#: view:stock.period:0
+#: view:stock.period.createlines:0
+msgid "Stock and Sales Periods"
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.sale.forecast,user_id:0
+msgid "Shows who created this forecast, or who validated."
+msgstr ""
+
+#. module: stock_planning
+#: help:stock.planning,incoming_left:0
+msgid "Quantity left to Planned incoming quantity. This is calculated difference between Planned In and Confirmed In. For current period Already In is also calculated. This value is used to create procurement for lacking quantity."
+msgstr ""
+
+#. module: stock_planning
+#: field:stock.planning,stock_start:0
+msgid "Initial Stock"
+msgstr ""
+
diff --git a/addons/subscription/__openerp__.py b/addons/subscription/__openerp__.py
index 44d2edb503c..cb5bdbc392b 100644
--- a/addons/subscription/__openerp__.py
+++ b/addons/subscription/__openerp__.py
@@ -29,7 +29,7 @@
'depends': ['base'],
'init_xml': [],
'update_xml': ['security/subcription_security.xml', 'security/ir.model.access.csv', 'subscription_view.xml'],
- 'demo_xml': [],
+ 'demo_xml': ['subscription_demo.xml',],
'installable': True,
'active': False,
'certificate': '0029454782573',
diff --git a/addons/subscription/i18n/pl.po b/addons/subscription/i18n/pl.po
index 8674d598052..cc9b3e50303 100644
--- a/addons/subscription/i18n/pl.po
+++ b/addons/subscription/i18n/pl.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-02 22:02+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-26 06:35+0000\n"
+"Last-Translator: OpenERP Administrators \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:43+0000\n"
+"X-Launchpad-Export-Date: 2010-08-27 03:38+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: subscription
@@ -68,7 +68,7 @@ msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: subscription
#: selection:subscription.subscription,interval_type:0
msgid "Weeks"
-msgstr "Tygodni"
+msgstr "Tygodnie"
#. module: subscription
#: field:subscription.subscription,state:0
@@ -83,12 +83,12 @@ msgstr "Pola dokumentu subskrypcji"
#. module: subscription
#: field:subscription.subscription,interval_number:0
msgid "Interval Qty"
-msgstr "Il. interwał"
+msgstr "Il. interwałów"
#. module: subscription
#: view:subscription.subscription:0
msgid "Stop"
-msgstr "Stop"
+msgstr "Zatrzymaj"
#. module: subscription
#: view:subscription.subscription:0
@@ -165,7 +165,7 @@ msgstr "Uwagi"
#. module: subscription
#: selection:subscription.subscription,interval_type:0
msgid "Months"
-msgstr "Miesięcy"
+msgstr "Miesiące"
#. module: subscription
#: selection:subscription.subscription,interval_type:0
@@ -180,7 +180,7 @@ msgstr "Subskrypcje i operacje powtarzalne"
#. module: subscription
#: field:subscription.subscription,active:0
msgid "Active"
-msgstr "Aktywny"
+msgstr "Aktywne"
#. module: subscription
#: model:ir.model,name:subscription.model_subscription_document
@@ -190,7 +190,7 @@ msgstr "Dokument subskrypcji"
#. module: subscription
#: field:subscription.subscription,cron_id:0
msgid "Cron Job"
-msgstr ""
+msgstr "Nazwa w planiście"
#. module: subscription
#: model:ir.model,name:subscription.model_subscription_subscription
@@ -222,7 +222,7 @@ msgstr "Fałsz"
#. module: subscription
#: view:subscription.subscription:0
msgid "Process"
-msgstr "Proces"
+msgstr "Uruchom"
#. module: subscription
#: model:ir.actions.act_window,name:subscription.action_subscription_form
@@ -266,7 +266,7 @@ msgstr "Wartość domyślna"
#: view:subscription.subscription:0
#: field:subscription.subscription,doc_lines:0
msgid "Documents created"
-msgstr "Dokumenty utworzono"
+msgstr "Utworzone dokumenty"
#. module: subscription
#: model:ir.ui.menu,name:subscription.menu_tools
diff --git a/addons/subscription/i18n/tr.po b/addons/subscription/i18n/tr.po
index 632e6b271c5..fe7a65478f7 100644
--- a/addons/subscription/i18n/tr.po
+++ b/addons/subscription/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-20 06:15+0000\n"
+"PO-Revision-Date: 2010-09-06 14:22+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-21 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-09-07 04:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: subscription
diff --git a/addons/subscription/subscription_demo.xml b/addons/subscription/subscription_demo.xml
new file mode 100644
index 00000000000..bb8d61ef4b0
--- /dev/null
+++ b/addons/subscription/subscription_demo.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ Partner
+
+
+
+ false
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/subscription/subscription_view.xml b/addons/subscription/subscription_view.xml
index 3ea4396c7d9..0c416c86a20 100644
--- a/addons/subscription/subscription_view.xml
+++ b/addons/subscription/subscription_view.xml
@@ -59,10 +59,13 @@
-
-
+
+
+
+
+
@@ -74,12 +77,23 @@
+
+
+
+
+
-
+
+
-
+
+
+
@@ -92,6 +106,7 @@
subscription.subscriptionform
+ {'search_default_User':1}
@@ -155,7 +170,7 @@
-
+
@@ -167,6 +182,7 @@