- [[ line.partner_id and line.partner_id.name or '' ]]
+ [[line.partner_id and line.partner_id.name or '-' ]]
- [[ line.bank_id and line.bank_id.name ]]
+ [[ line.bank_id and line.bank_id.name or '-' ]]
- [[ line.name ]]
+ [[ get_invoice_name(line.ml_inv_ref.id) or '-' ]]
- [[ line.date ]]
+ [[line.date=='False' and '-' or line.date ]]
+
+
+ [[formatLang(line.amount) or '-' ]]
[[ formatLang(line.amount_currency) ]] [[ line.currency.name ]]
@@ -154,7 +243,36 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Total:
+
+
+ [[ formatLang(get_amount_total(o)) or '' ]]
+
+
+ [[ formatLang(get_amount_total_in_currency(o)) or '' ]] [[ get_amount_total_in_currency(o) and line.currency.name ]]
+
+
+
+
diff --git a/addons/account_payment/report/payment_order.py b/addons/account_payment/report/payment_order.py
index 9bbf32afc26..a3c102b6897 100644
--- a/addons/account_payment/report/payment_order.py
+++ b/addons/account_payment/report/payment_order.py
@@ -21,15 +21,55 @@
import time
import datetime
+import pooler
from report import report_sxw
class payment_order(report_sxw.rml_parse):
+
def __init__(self, cr, uid, name, context):
super(payment_order, self).__init__(cr, uid, name, context=context)
self.localcontext.update( {
'time': time,
+ 'get_invoice_name': self._get_invoice_name,
+ 'get_company_currency' : self._get_company_currency,
+ 'get_amount_total_in_currency' : self._get_amount_total_in_currency,
+ 'get_amount_total' : self._get_amount_total,
})
+ def _get_invoice_name(self,invoice_id):
+ if invoice_id:
+ pool = pooler.get_pool(self.cr.dbname)
+ value_name = pool.get('account.invoice').name_get(self.cr, self.uid, [invoice_id])
+ if value_name:
+ return value_name[0][1]
+ return False
+
+ def _get_amount_total_in_currency(self,payment):
+ total = 0.0
+ if payment.line_ids:
+ currency_cmp = payment.line_ids[0].currency.id
+ else:
+ return False
+ for line in payment.line_ids:
+ if currency_cmp == line.currency.id:
+ total += line.amount_currency
+ else:
+ return False
+ return total
+
+ def _get_amount_total(self,payment):
+ total = 0.0
+ if not payment.line_ids:
+ return False
+ for line in payment.line_ids:
+ total += line.amount
+ return total
+
+ def _get_company_currency(self):
+ pool = pooler.get_pool(self.cr.dbname)
+ user = pool.get('res.users').browse(self.cr, self.uid, self.uid)
+ return user.company_id and user.company_id.currency_id and user.company_id.currency_id.name or False
+
report_sxw.report_sxw('report.payment.order', 'payment.order', 'addons/account_payment/report/payment_order.rml', parser=payment_order,header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_payment/security/account_payment_security.xml b/addons/account_payment/security/account_payment_security.xml
index dd6b117d184..6561373bafb 100644
--- a/addons/account_payment/security/account_payment_security.xml
+++ b/addons/account_payment/security/account_payment_security.xml
@@ -6,5 +6,12 @@
Accounting / Payments
+
+ Payment Mode company rule
+
+
+ [('company_id','=',user.company_id.id)]
+
+
diff --git a/addons/account_payment/security/ir.model.access.csv b/addons/account_payment/security/ir.model.access.csv
index 168083eb9de..fca15213f1d 100644
--- a/addons/account_payment/security/ir.model.access.csv
+++ b/addons/account_payment/security/ir.model.access.csv
@@ -11,3 +11,5 @@
"access_payment_order_system","payment.order system","model_payment_order","base.group_system",1,0,0,0
"access_payment_mode_system","payment.mode system","model_payment_mode","base.group_system",1,1,1,1
"access_payment_type_system","payment.type system","model_payment_type","base.group_system",1,1,1,1
+"access_payment_order_invoice","payment.order invoice","model_payment_order","account.group_account_invoice",1,1,1,1
+"access_payment_line_invoice","payment.line invoice","model_payment_line","account.group_account_invoice",1,1,1,1
diff --git a/addons/account_payment/wizard/account_payment_pay.py b/addons/account_payment/wizard/account_payment_pay.py
index 20e1e10f882..5be2574943d 100644
--- a/addons/account_payment/wizard/account_payment_pay.py
+++ b/addons/account_payment/wizard/account_payment_pay.py
@@ -38,17 +38,15 @@ class account_payment_make_payment(osv.osv_memory):
obj_payment_order.set_done(cr,uid,context['active_id'],context)
return {}
- gw= obj_payment_order.get_wizard(t)
+ gw = obj_payment_order.get_wizard(t)
if not gw:
obj_payment_order.set_done(cr,uid,context['active_id'],context)
return {}
module, wizard= gw
- result = mod_obj._get_id(cr, uid, module, wizard)
- id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id']
- return act_obj.read(cr, uid, [id])[0]
- #result['context'] = str({'fiscalyear': data['form']['fiscalyear']})
-
+ result = obj_model._get_id(cr, uid, module, wizard)
+ id = obj_model.read(cr, uid, [result], ['res_id'])[0]['res_id']
+ return obj_act.read(cr, uid, [id])[0]
account_payment_make_payment()
diff --git a/addons/account_report/account.py b/addons/account_report/account.py
index 784d95daa79..5dffc0c6a78 100644
--- a/addons/account_report/account.py
+++ b/addons/account_report/account.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 .
#
##############################################################################
@@ -33,25 +33,6 @@ from mx.DateTime import RelativeDateTime, now, DateTime, localtime
class account_report(osv.osv):
_name = "account.report.report"
_description = "Account Reporting"
-# _color = [
-# ('', ''),
-# ('green','Green'),
-# ('red','Red'),
-# ('pink','Pink'),
-# ('blue','Blue'),
-# ('yellow','Yellow'),
-# ('cyan','Cyan'),
-# ('lightblue','Light Blue'),
-# ('orange','Orange'),
-# ]
-# _style = [
-# ('1','Header 1'),
-# ('2','Header 2'),
-# ('3','Header 3'),
-# ('4','Header 4'),
-# ('5','Normal'),
-# ('6', 'Small'),
-# ]
def _amount_get(self, cr, uid, ids, field_name, arg, context={}):
obj_fy=self.pool.get('account.fiscalyear')
@@ -118,10 +99,6 @@ class account_report(osv.osv):
'report': _calc_report,
'tax_code': _calc_tax_code,
}
-# if field_name=='status':
-# fld_name = 'expression_status'
-# else:
-# fld_name = 'expression'
try:
val = eval(getattr(rep,'expression'), objdict)
except:
@@ -147,8 +124,6 @@ class account_report(osv.osv):
if parent_id:
acc=self.pool.get('account.report.report').browse(cr, uid, parent_id)
v['type']=acc.type
-# if int(acc.style) < 6:
-# v['style'] = str(int(acc.style)+1)
return {'value': v}
_columns = {
@@ -182,12 +157,8 @@ class account_report(osv.osv):
string='Status'),
'disp_tree':fields.boolean('Display Tree', help='When the indicators are printed, if one indicator is set with this field to True, then it will display one more graphs with all its children in tree'),
'disp_graph':fields.boolean('Display As Graph', help='If the field is set to True, information will be printed as a Graph, otherwise as an array.'),
-# 'style': fields.selection(_style, 'Style', required=True),
-# 'color_font' : fields.selection(_color, 'Font Color', help="Font Color for the report"),
-# 'color_back' : fields.selection(_color, 'Back Color')
}
_defaults = {
-# 'style': lambda *args: '5',
'active': lambda *args: True,
'type': lambda *args: 'indicator',
}
@@ -207,7 +178,7 @@ class account_report(osv.osv):
return self.name_get(cr, user, ids, context=context)
_constraints = [
- #TODO Put an expression to valid expression
+ #TODO Put an expression to valid expression
]
account_report()
diff --git a/addons/account_report/account_view.xml b/addons/account_report/account_view.xml
index 4b25851e37f..f607f195d00 100644
--- a/addons/account_report/account_view.xml
+++ b/addons/account_report/account_view.xml
@@ -17,15 +17,13 @@
-
+
-
@@ -50,8 +48,6 @@
-
diff --git a/addons/account_report/account_wizard.xml b/addons/account_report/account_wizard.xml
index 1e07a8fc248..c731b89a34b 100644
--- a/addons/account_report/account_wizard.xml
+++ b/addons/account_report/account_wizard.xml
@@ -1,10 +1,5 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/addons/account_report/i18n/it.po b/addons/account_report/i18n/it.po
index 38e571f32b2..c672d816ae4 100644
--- a/addons/account_report/i18n/it.po
+++ b/addons/account_report/i18n/it.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-09-16 14:41+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-19 05:41+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-20 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_report
@@ -21,17 +21,17 @@ msgstr ""
#: selection:account.report.report,type:0
#: model:ir.model,name:account_report.model_account_report_history
msgid "Indicator"
-msgstr ""
+msgstr "Indicatore"
#. module: account_report
#: wizard_field:print.indicators.pdf,init,file:0
msgid "Select a PDF File"
-msgstr ""
+msgstr "Seleziona un file PDF"
#. module: account_report
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome modello non valido nella definizione dell'azione."
#. module: account_report
#: view:account.report.report:0
@@ -46,7 +46,7 @@ msgstr "Genitore"
#. module: account_report
#: field:account.report.report,disp_graph:0
msgid "Display As Graph"
-msgstr ""
+msgstr "Visualizza come Grafico"
#. module: account_report
#: view:account.report.report:0
@@ -66,7 +66,7 @@ msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid "Tabular Summary"
-msgstr ""
+msgstr "Tabella di Riepilogo"
#. module: account_report
#: view:account.report.report:0
@@ -81,7 +81,7 @@ msgstr ""
#. module: account_report
#: view:account.report.report:0
msgid "Very bad"
-msgstr ""
+msgstr "Pessima"
#. module: account_report
#: field:account.report.history,val:0
@@ -103,7 +103,7 @@ msgstr "Cattiva"
#. module: account_report
#: wizard_view:print.indicators.pdf,init:0
msgid "Select the PDF file on which Indicators will be printed."
-msgstr ""
+msgstr "Seleziona il file PDF su cui gli indicatori saranno stampati"
#. module: account_report
#: view:account.report.report:0
@@ -118,12 +118,12 @@ msgstr ""
#. module: account_report
#: selection:account.report.report,status:0
msgid "Very Bad"
-msgstr ""
+msgstr "Pessima"
#. module: account_report
#: model:ir.actions.act_window,name:account_report.account_report_history_record_structure
msgid "Indicator history"
-msgstr ""
+msgstr "Storico dell'indicatore"
#. module: account_report
#: view:account.report.report:0
@@ -143,18 +143,18 @@ msgstr ""
#. module: account_report
#: wizard_button:print.indicators,init,next:0
msgid "Next"
-msgstr ""
+msgstr "Prossimo"
#. module: account_report
#: model:ir.module.module,shortdesc:account_report.module_meta_information
msgid "Reporting for accounting"
-msgstr ""
+msgstr "Stampe per personale contabile"
#. module: account_report
#: wizard_button:print.indicators,next,print:0
#: wizard_button:print.indicators.pdf,init,print:0
msgid "Print"
-msgstr ""
+msgstr "Stampa"
#. module: account_report
#: field:account.report.report,type:0
@@ -164,7 +164,7 @@ msgstr "Tipo"
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.report_indicator_pdf
msgid "Print Indicators in PDF"
-msgstr ""
+msgstr "Stampa gli indicatori in PDF"
#. module: account_report
#: view:account.report.report:0
@@ -180,7 +180,7 @@ msgstr "Buona"
#. module: account_report
#: view:account.report.history:0
msgid "Account Report History"
-msgstr ""
+msgstr "Report Storico Conti"
#. module: account_report
#: constraint:ir.ui.view:0
@@ -190,12 +190,12 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: account_report
#: help:account.report.report,badness_limit:0
msgid "This Value sets the limit of badness."
-msgstr ""
+msgstr "Questo valore è impostato al limite del peggiore."
#. module: account_report
#: wizard_field:print.indicators,init,select_base:0
msgid "Choose Criteria"
-msgstr ""
+msgstr "Seleziona il criterio"
#. module: account_report
#: view:account.report.report:0
@@ -264,27 +264,27 @@ msgstr "Attivo"
#. module: account_report
#: field:account.report.report,disp_tree:0
msgid "Display Tree"
-msgstr ""
+msgstr "Visualizza ad Albero"
#. module: account_report
#: selection:print.indicators,init,select_base:0
msgid "Based On Fiscal Years"
-msgstr ""
+msgstr "Basato su anni fiscali"
#. module: account_report
#: model:ir.model,name:account_report.model_account_report_report
msgid "Account reporting"
-msgstr ""
+msgstr "Stampe del piano dei conti"
#. module: account_report
#: view:account.report.report:0
msgid "Account Balance:"
-msgstr ""
+msgstr "Saldo Contabile:"
#. module: account_report
#: rml:print.indicators:0
msgid "Expression :"
-msgstr ""
+msgstr "Espressione :"
#. module: account_report
#: view:account.report.report:0
@@ -299,7 +299,7 @@ msgstr "Espressione"
#. module: account_report
#: view:account.report.report:0
msgid "Accounting reporting"
-msgstr ""
+msgstr "Report per personale Contabile"
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_form
@@ -316,12 +316,12 @@ msgstr "Codice"
#. module: account_report
#: field:account.report.history,tmp:0
msgid "temp"
-msgstr ""
+msgstr "temporaneo"
#. module: account_report
#: field:account.report.history,period_id:0
msgid "Period"
-msgstr ""
+msgstr "Periodo"
#. module: account_report
#: view:account.report.report:0
@@ -331,19 +331,19 @@ msgstr "Generale"
#. module: account_report
#: view:account.report.report:0
msgid "Legend of operators"
-msgstr ""
+msgstr "Legenda degli operatori"
#. module: account_report
#: wizard_button:print.indicators,init,end:0
#: wizard_button:print.indicators,next,end:0
#: wizard_button:print.indicators.pdf,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
#. module: account_report
#: field:account.report.report,child_ids:0
msgid "Children"
-msgstr ""
+msgstr "Figlio"
#. module: account_report
#: constraint:ir.model:0
@@ -364,7 +364,7 @@ msgstr ""
#: wizard_view:print.indicators,init:0
#: wizard_view:print.indicators,next:0
msgid "Print Indicators"
-msgstr ""
+msgstr "Stampa Indicatori"
#. module: account_report
#: view:account.report.report:0
@@ -380,7 +380,7 @@ msgstr "Data di stampa:"
#. module: account_report
#: model:ir.actions.wizard,name:account_report.wizard_indicators_with_pdf
msgid "Indicators in PDF"
-msgstr ""
+msgstr "Indicatori in PDF"
#. module: account_report
#: rml:accounting.report:0
@@ -391,7 +391,7 @@ msgstr "a"
#. module: account_report
#: rml:accounting.report:0
msgid "Accounting Report"
-msgstr ""
+msgstr "Stampe per personale contabile"
#. module: account_report
#: field:account.report.report,goodness_limit:0
@@ -402,7 +402,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view_other
#: model:ir.ui.menu,name:account_report.menu_action_account_report_tree_view_other
msgid "Other reports"
-msgstr ""
+msgstr "Modulo: account_report"
#. module: account_report
#: view:account.report.report:0
@@ -414,7 +414,7 @@ msgstr ""
#. module: account_report
#: rml:print.indicators:0
msgid ")"
-msgstr ""
+msgstr ")"
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree_view_fiscal
@@ -425,13 +425,13 @@ msgstr ""
#. module: account_report
#: selection:print.indicators,init,select_base:0
msgid "Based on Fiscal Periods"
-msgstr ""
+msgstr "Basato su Periodi Fiscali"
#. module: account_report
#: model:ir.actions.report.xml,name:account_report.report_print_indicators
#: rml:print.indicators:0
msgid "Indicators"
-msgstr ""
+msgstr "Indicatori"
#. module: account_report
#: wizard_view:print.indicators.pdf,init:0
@@ -454,7 +454,7 @@ msgstr "Nome"
#. module: account_report
#: wizard_field:print.indicators,next,base_selection:0
msgid "Select Criteria"
-msgstr ""
+msgstr "Seleziona il criterio"
#. module: account_report
#: view:account.report.report:0
@@ -464,7 +464,7 @@ msgstr ""
#. module: account_report
#: field:account.report.history,fiscalyear_id:0
msgid "Fiscal Year"
-msgstr ""
+msgstr "Anno Fiscale"
#. module: account_report
#: model:ir.actions.act_window,name:account_report.action_account_report_tree
@@ -477,17 +477,17 @@ msgstr "Report personalizzato"
#. module: account_report
#: rml:print.indicators:0
msgid "Page"
-msgstr ""
+msgstr "Pagina"
#. module: account_report
#: selection:account.report.report,type:0
msgid "View"
-msgstr ""
+msgstr "Visualizza"
#. module: account_report
#: rml:print.indicators:0
msgid "Indicators -"
-msgstr ""
+msgstr "Indicatori -"
#. module: account_report
#: help:account.report.report,disp_graph:0
@@ -495,11 +495,13 @@ msgid ""
"If the field is set to True, information will be printed as a Graph, "
"otherwise as an array."
msgstr ""
+"Se il campo è impostato a Vero, l'informazione verrà stampante come un "
+"Grafico, altrimenti come una lista."
#. module: account_report
#: view:account.report.report:0
msgid "Return value for status"
-msgstr ""
+msgstr "Valore ritornato per lo Stato"
#. module: account_report
#: field:account.report.report,sequence:0
@@ -514,7 +516,7 @@ msgstr "Importo"
#. module: account_report
#: rml:print.indicators:0
msgid "1cm 27.7cm 20cm 27.7cm"
-msgstr ""
+msgstr "1cm 27.7cm 20cm 27.7cm"
#. module: account_report
#: model:ir.module.module,description:account_report.module_meta_information
diff --git a/addons/account_report/i18n/lt.po b/addons/account_report/i18n/lt.po
index f03f235550a..8fce99cbfe5 100644
--- a/addons/account_report/i18n/lt.po
+++ b/addons/account_report/i18n/lt.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-11 05:29+0000\n"
+"PO-Revision-Date: 2010-08-29 10:32+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-12 03:43+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_report
diff --git a/addons/account_report/i18n/tr.po b/addons/account_report/i18n/tr.po
index 2536a295789..dfba0d77a64 100644
--- a/addons/account_report/i18n/tr.po
+++ b/addons/account_report/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-11 05:27+0000\n"
+"PO-Revision-Date: 2010-08-29 10:37+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-12 03:43+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_report
diff --git a/addons/account_report/report/accounting_report.py b/addons/account_report/report/accounting_report.py
index 1bb6e7bbab8..f38f09d1e7f 100644
--- a/addons/account_report/report/accounting_report.py
+++ b/addons/account_report/report/accounting_report.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 .
#
##############################################################################
@@ -42,8 +42,6 @@ class accounting_report(report_sxw.rml_parse):
'amount':res[0]['amount'],
'note':res[0]['note'],
'level': level,
-# 'color_font':res[0]['color_font'],
-# 'color_back':res[0]['color_back'],
}
self.ret_list.append(ret_dict)
diff --git a/addons/account_report/report/print_indicator.py b/addons/account_report/report/print_indicator.py
index 4245bf40415..55596764dc6 100644
--- a/addons/account_report/report/print_indicator.py
+++ b/addons/account_report/report/print_indicator.py
@@ -23,15 +23,6 @@ import pooler
import time
from report import report_sxw
-#from report.interface import report_int
-#from reportlab.graphics.shapes import Drawing
-#from reportlab.graphics.charts.barcharts import VerticalBarChart
-#import reportlab.lib.colors as colors
-#from reportlab.graphics.widgetbase import Widget, TypedPropertyCollection
-#from reportlab.graphics.charts.textlabels import BarChartLabel
-#from reportlab.graphics import renderPM
-#from report.render import render
-#from report.interface import report_int
from pychart import *
import StringIO
theme.use_color = 1
@@ -70,14 +61,6 @@ class accounting_report_indicator(report_sxw.rml_parse):
ind_ids=self.pool.get('account.report.report').search(self.cr,self.uid,[])
obj_inds=self.pool.get('account.report.report').browse(self.cr,self.uid,ind_ids)
-# def find_child(obj):
-# self.list.append(obj)
-# if obj.child_ids:
-# for child in obj.child_ids:
-# find_child(child)
-# return True
-#
-# find_child(obj_inds)
for obj_ind in obj_inds:
level = 0
@@ -245,39 +228,6 @@ class accounting_report_indicator(report_sxw.rml_parse):
if intercall:
return True
self.count +=1
-# drawing = Drawing(400, 300)
-# data = [
-# tuple(data_val),
-# ]
-# value_min=0.0
-# vmin=min(data_val)
-# vmax=max(data_val)
-#
-# val_min=((vmin < 0.00 and vmin-2.00) or 0.00)
-# # calculating maximum
-# val_max=(vmax/(pow(10,len(str(int(vmax)))-2))+1)*pow(10,len(str(int(vmax)))-2)
-# bc = VerticalBarChart()
-# bc.x = 50
-# bc.y = 50
-# bc.height = 245
-# bc.width = 300
-# bc.data = data
-# value_step=(abs(val_max)-abs(val_min))/5
-#
-# bc.strokeColor = colors.black
-# bc.valueAxis.valueMin = val_min
-# bc.valueAxis.valueMax = val_max
-# bc.valueAxis.valueStep = value_step
-#
-# bc.categoryAxis.labels.boxAnchor = 'ne'
-# bc.categoryAxis.labels.dx = 8
-#
-# bc.categoryAxis.labels.dy = -2
-# bc.categoryAxis.labels.angle = 30
-# bc.categoryAxis.categoryNames = data_period
-# drawing.add(bc)
-# drawing.save(formats=['png'],fnRoot=path+str(self.count),title="helo")
-# renderPM.drawToFile(drawing1, 'example1.jpg','jpg')
import os
path=tools.config['addons_path']+"/account_report/tmp_images/image"
@@ -286,7 +236,6 @@ class accounting_report_indicator(report_sxw.rml_parse):
os.mkdir(dirname)
can = canvas.init('image'+str(self.count)+".png")
-# can.clip(0,0,600,400)
data=zip(self.header_name,self.header_val)
@@ -300,7 +249,6 @@ class accounting_report_indicator(report_sxw.rml_parse):
can.close()
os.system('cp '+'image'+str(self.count)+'.png ' +path+str(self.count)+'.png')
os.system('rm '+'image'+str(self.count)+'.png')
-# can.endclip()
return path+str(self.count)+'.png'
report_sxw.report_sxw('report.print.indicators', 'account.report.history',
diff --git a/addons/account_reporting/account.py b/addons/account_reporting/account.py
index c8b3273491a..c1c68f04d9b 100644
--- a/addons/account_reporting/account.py
+++ b/addons/account_reporting/account.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
@@ -88,7 +88,6 @@ class account_report_bs(osv.osv):
'code': fields.char('Code', size=64, required=True),
'account_id': fields.many2many('account.account', 'account_report_rel', 'report_id', 'account_id', 'Accounts'),
'note': fields.text('Note'),
-# 'style': fields.selection(_style, 'Style'),
'color_font' : fields.many2one('color.rml','Font Color'),
'color_back' : fields.many2one('color.rml','Back Color'),
'font_style' : fields.selection(_font, 'Font'),
diff --git a/addons/account_reporting/account_report.xml b/addons/account_reporting/account_report.xml
index 7603aaf5c45..ebfe70e4c50 100644
--- a/addons/account_reporting/account_report.xml
+++ b/addons/account_reporting/account_report.xml
@@ -1,18 +1,6 @@
-
-
-
-
-
-
-
diff --git a/addons/account_reporting/i18n/it.po b/addons/account_reporting/i18n/it.po
index c3cff3d090c..c70049f3d4d 100644
--- a/addons/account_reporting/i18n/it.po
+++ b/addons/account_reporting/i18n/it.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-09-08 12:24+0000\n"
-"Last-Translator: paola \n"
+"PO-Revision-Date: 2010-08-18 09:39+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 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
@@ -53,12 +53,12 @@ msgstr "Tipo di Repporto"
#: model:ir.ui.menu,name:account_reporting.action_account_report_bs_form
#: model:ir.ui.menu,name:account_reporting.menu_finan_config_BSheet
msgid "Balance Sheet Report"
-msgstr ""
+msgstr "Report Saldi contabili"
#. module: account_reporting
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome modello non valido nella definizione dell'azione."
#. module: account_reporting
#: selection:account.report.bs,font_style:0
@@ -78,7 +78,7 @@ msgstr ""
#. module: account_reporting
#: help:account.account.balancesheet.report,init,periods:0
msgid "All periods if empty"
-msgstr ""
+msgstr "Tutti i periodi se lasciato vuoto"
#. module: account_reporting
#: field:account.report.bs,color_font:0
@@ -88,7 +88,7 @@ msgstr "Colore del Carattere"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects With Accounts and child of Accounts"
-msgstr ""
+msgstr "Report Oggetti con Conti e Conti Figlio"
#. module: account_reporting
#: model:ir.module.module,description:account_reporting.module_meta_information
@@ -96,11 +96,13 @@ msgid ""
"Financial and accounting reporting\n"
" Balance Sheet Report"
msgstr ""
+"Stampe contabili e finanziarie\n"
+" Report Saldi Contabili"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects With Accounts"
-msgstr ""
+msgstr "Report Oggetti con Conti"
#. module: account_reporting
#: selection:account.report.bs,font_style:0
@@ -156,7 +158,7 @@ msgstr "Times-Italic"
#. module: account_reporting
#: selection:account.report.bs,report_type:0
msgid "Report Objects Only"
-msgstr ""
+msgstr "Report Soli oggetti"
#. module: account_reporting
#: model:ir.model,name:account_reporting.model_color_rml
@@ -202,12 +204,12 @@ msgstr "Anno fiscale"
#: view:account.report.bs:0
#: field:account.report.bs,account_id:0
msgid "Accounts"
-msgstr ""
+msgstr "Conti"
#. module: account_reporting
#: wizard_field:account.account.balancesheet.report,init,periods:0
msgid "Periods"
-msgstr ""
+msgstr "Periodi"
#. module: account_reporting
#: field:account.report.bs,color_back:0
@@ -217,7 +219,7 @@ msgstr "Colore di Sfondo"
#. module: account_reporting
#: field:account.report.bs,child_id:0
msgid "Children"
-msgstr ""
+msgstr "Figlio"
#. module: account_reporting
#: wizard_button:account.account.balancesheet.report,init,end:0
diff --git a/addons/account_reporting/i18n/lt.po b/addons/account_reporting/i18n/lt.po
index 893be305508..6ddc79030a9 100644
--- a/addons/account_reporting/i18n/lt.po
+++ b/addons/account_reporting/i18n/lt.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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 08:53+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-12 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
diff --git a/addons/account_reporting/i18n/tr.po b/addons/account_reporting/i18n/tr.po
index 81c2fc72856..5ecd1d924d1 100644
--- a/addons/account_reporting/i18n/tr.po
+++ b/addons/account_reporting/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-11 04:37+0000\n"
+"PO-Revision-Date: 2010-08-29 10:38+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-12 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_reporting
diff --git a/addons/account_reporting/report/account_report_bs.py b/addons/account_reporting/report/account_report_bs.py
index 89ad84d1065..22628224306 100644
--- a/addons/account_reporting/report/account_report_bs.py
+++ b/addons/account_reporting/report/account_report_bs.py
@@ -24,7 +24,6 @@ import pooler
import locale
from report import report_sxw
-#from addons.account.wizard import wizard_account_balance_report
parents = {
'tr':1,
@@ -124,8 +123,6 @@ class account_report_bs(report_sxw.rml_parse):
res1['level'] = r['level'] + 1
break
result.append(res1)
- #res1 = self.check_child_id(account_id,level,ctx,report_type)
- #result += res1
if report_obj.child_id:
ids2 = [(x.code,x.id) for x in report_obj.child_id]
ids2.sort()
@@ -133,33 +130,6 @@ class account_report_bs(report_sxw.rml_parse):
return result
-# def check_child_id(self,account_id,level,ctx,report_type):
-# account = self.pool.get('account.account').browse(self.cr,self.uid,[account_id],ctx)[0]
-# result = []
-# res = {
-# 'code': account.code,
-# 'name': account.name,
-# 'level': level+1,
-# 'balance': account.balance,
-# 'color_font' : 'black',
-# 'color_back' :'white',
-# 'font_style' : 'Helvetica',
-# }
-# result.append(res)
-# if report_type != 'with_account':
-# acc_child_id = self.pool.get('account.account').search(self.cr,self.uid,[('parent_id','=',[account_id]),('type','=','view')])
-# for child_id in acc_child_id :
-# result += self.check_child_id(child_id,level+1,ctx,report_type)
-# return result
-#
-#
-#
-# def _sum_credit(self):
-# return self.sum_credit
-#
-# def _sum_debit(self):
-# return self.sum_debit
-
report_sxw.report_sxw('report.account.report.bs', 'account.report.bs', 'addons/account_reporting/report/account_report_bs.rml', parser=account_report_bs)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_tax_include/account_tax_include.py b/addons/account_tax_include/account_tax_include.py
index 597050f9b2c..afd1ef36ae7 100644
--- a/addons/account_tax_include/account_tax_include.py
+++ b/addons/account_tax_include/account_tax_include.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import time
from osv import fields, osv
@@ -28,17 +29,17 @@ class account_invoice(osv.osv):
'price_type': fields.selection([('tax_included','Tax included'),
('tax_excluded','Tax excluded')],
'Price method', required=True, readonly=True,
- states={'draft':[('readonly',False)]}),
+ states={'draft': [('readonly', False)]}),
}
_defaults = {
'price_type': 'tax_excluded',
}
- def refund(self, cr, uid, ids, date=None, period_id=None, description=None):
+ def refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None):
map_old_new = {}
refund_ids = []
for old_inv_id in ids:
- new_id = super(account_invoice,self).refund(cr, uid, ids, date=date, period_id=period_id, description=description)
+ new_id = super(account_invoice,self).refund(cr, uid, ids, date=date, period_id=period_id, description=description, journal_id=journal_id)
refund_ids += new_id
map_old_new[old_inv_id] = new_id[0]
@@ -96,7 +97,7 @@ class account_invoice_line(osv.osv):
res[line.id]['price_subtotal'] = res[line.id]['price_subtotal_incl']
for tax in tax_obj.compute_inv(cr, uid, line.invoice_line_tax_id, res[line.id]['price_subtotal_incl']/line.quantity, line.quantity):
res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - tax['amount']
- res[line.id]['data'].append( tax)
+ res[line.id]['data'].append(tax)
res[line.id]['price_subtotal']= round(res[line.id]['price_subtotal'], dec_obj.precision_get(cr, uid, 'Account'))
res[line.id]['price_subtotal_incl']= round(res[line.id]['price_subtotal_incl'], dec_obj.precision_get(cr, uid, 'Account'))
@@ -160,11 +161,9 @@ class account_invoice_line(osv.osv):
# note: will call product_id_change_unit_price_inv with context...
# Temporary trap, for bad context that came from koo:
- # if isinstance(context, str):
- # print "str context:", context
ctx = (context and context.copy()) or {}
- ctx.update({'price_type': ctx.get('price_type','tax_excluded')})
+ ctx.update({'price_type': ctx.get('price_type', 'tax_excluded')})
return super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=ctx)
account_invoice_line()
diff --git a/addons/account_tax_include/account_tax_include_view.xml b/addons/account_tax_include/account_tax_include_view.xml
index 32aea6802d1..4c103cd0d50 100644
--- a/addons/account_tax_include/account_tax_include_view.xml
+++ b/addons/account_tax_include/account_tax_include_view.xml
@@ -58,7 +58,7 @@
-
+
diff --git a/addons/account_tax_include/i18n/tr.po b/addons/account_tax_include/i18n/tr.po
index ed4fffe4be7..60dbb2b202d 100644
--- a/addons/account_tax_include/i18n/tr.po
+++ b/addons/account_tax_include/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-11 04:36+0000\n"
+"PO-Revision-Date: 2010-08-29 10:33+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-12 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_tax_include
diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py
index 6fef206aa8d..d02011de47e 100644
--- a/addons/account_voucher/__openerp__.py
+++ b/addons/account_voucher/__openerp__.py
@@ -41,13 +41,15 @@
"voucher_sequence.xml",
"voucher_workflow.xml",
"voucher_report.xml",
- "voucher_view.xml",
- "voucher_wizard.xml",
"wizard/account_voucher_open_view.xml",
-
+ "wizard/account_voucher_unreconcile_view.xml",
+ "voucher_view.xml",
+ "voucher_sales_purchase_view.xml",
+ "voucher_payment_receipt_view.xml",
+ "voucher_wizard.xml",
],
"test" : [
- "test/account_voucher.yml",
+# "test/account_voucher.yml",
],
'certificate': '0037580727101',
diff --git a/addons/account_voucher/i18n/account_voucher.pot b/addons/account_voucher/i18n/account_voucher.pot
index 46f7fb42d89..874c6297462 100644
--- a/addons/account_voucher/i18n/account_voucher.pot
+++ b/addons/account_voucher/i18n/account_voucher.pot
@@ -281,7 +281,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/ar.po b/addons/account_voucher/i18n/ar.po
index 05f63ecc24a..a8d8dc6bbf7 100644
--- a/addons/account_voucher/i18n/ar.po
+++ b/addons/account_voucher/i18n/ar.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/bg.po b/addons/account_voucher/i18n/bg.po
index 344d4177e4e..e976b77f007 100644
--- a/addons/account_voucher/i18n/bg.po
+++ b/addons/account_voucher/i18n/bg.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/bs.po b/addons/account_voucher/i18n/bs.po
index 035493ed236..7b3350a9a1c 100644
--- a/addons/account_voucher/i18n/bs.po
+++ b/addons/account_voucher/i18n/bs.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/ca.po b/addons/account_voucher/i18n/ca.po
index 7ae395a9335..99d0942f224 100644
--- a/addons/account_voucher/i18n/ca.po
+++ b/addons/account_voucher/i18n/ca.po
@@ -282,7 +282,7 @@ msgstr "Nou pagament bancari"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Línies de comprovant"
diff --git a/addons/account_voucher/i18n/cs.po b/addons/account_voucher/i18n/cs.po
index 05f63ecc24a..a8d8dc6bbf7 100644
--- a/addons/account_voucher/i18n/cs.po
+++ b/addons/account_voucher/i18n/cs.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/de.po b/addons/account_voucher/i18n/de.po
index 8355a486b7d..2d2a5233a3e 100644
--- a/addons/account_voucher/i18n/de.po
+++ b/addons/account_voucher/i18n/de.po
@@ -282,7 +282,7 @@ msgstr "Neue Bankzahlung"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Auszugspositionen"
diff --git a/addons/account_voucher/i18n/el.po b/addons/account_voucher/i18n/el.po
index 56ae9a69aad..ded08435e22 100644
--- a/addons/account_voucher/i18n/el.po
+++ b/addons/account_voucher/i18n/el.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-03 02:48+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-26 21:26+0000\n"
+"Last-Translator: Makis Nicolaou \n"
"Language-Team: Greek \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 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-27 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher
@@ -283,7 +283,7 @@ msgstr "Νέα Πληρωμή Τράπεζας"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Γραμμές Παραστατικού"
diff --git a/addons/account_voucher/i18n/es.po b/addons/account_voucher/i18n/es.po
index 6f0b8fbd572..364df94d7d9 100644
--- a/addons/account_voucher/i18n/es.po
+++ b/addons/account_voucher/i18n/es.po
@@ -282,7 +282,7 @@ msgstr "Nuevo pago bancario"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Líneas de comprobante"
diff --git a/addons/account_voucher/i18n/es_AR.po b/addons/account_voucher/i18n/es_AR.po
index 057043e645c..6eda03d0951 100644
--- a/addons/account_voucher/i18n/es_AR.po
+++ b/addons/account_voucher/i18n/es_AR.po
@@ -282,7 +282,7 @@ msgstr "Nuevo pago en bancos"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Lineas del voucher"
diff --git a/addons/account_voucher/i18n/et.po b/addons/account_voucher/i18n/et.po
index 6454eadd7a6..b78b0e2781a 100644
--- a/addons/account_voucher/i18n/et.po
+++ b/addons/account_voucher/i18n/et.po
@@ -322,7 +322,7 @@ msgstr "Uus pangamakse"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Tähiku read"
diff --git a/addons/account_voucher/i18n/fr.po b/addons/account_voucher/i18n/fr.po
index 28108b2360a..2b6f1e29e09 100644
--- a/addons/account_voucher/i18n/fr.po
+++ b/addons/account_voucher/i18n/fr.po
@@ -282,7 +282,7 @@ msgstr "Nouveau Paiement Bancaire"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Lignes de Souches"
diff --git a/addons/account_voucher/i18n/hr.po b/addons/account_voucher/i18n/hr.po
index a2b3937da37..d099117e269 100644
--- a/addons/account_voucher/i18n/hr.po
+++ b/addons/account_voucher/i18n/hr.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/hu.po b/addons/account_voucher/i18n/hu.po
index 05f63ecc24a..a8d8dc6bbf7 100644
--- a/addons/account_voucher/i18n/hu.po
+++ b/addons/account_voucher/i18n/hu.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/id.po b/addons/account_voucher/i18n/id.po
index f770d6c8e3b..8139df0348d 100644
--- a/addons/account_voucher/i18n/id.po
+++ b/addons/account_voucher/i18n/id.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/it.po b/addons/account_voucher/i18n/it.po
index b9f51e3d29e..0a43b73c605 100644
--- a/addons/account_voucher/i18n/it.po
+++ b/addons/account_voucher/i18n/it.po
@@ -282,7 +282,7 @@ msgstr "Nuovo Pagamento Bancario"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Nuova Ricevuta"
diff --git a/addons/account_voucher/i18n/ko.po b/addons/account_voucher/i18n/ko.po
index 739add68afd..6389b093d99 100644
--- a/addons/account_voucher/i18n/ko.po
+++ b/addons/account_voucher/i18n/ko.po
@@ -283,7 +283,7 @@ msgstr "새 은행 결제"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "전표 라인"
diff --git a/addons/account_voucher/i18n/lt.po b/addons/account_voucher/i18n/lt.po
index d8f1da5eb4a..daeb17bb6f0 100644
--- a/addons/account_voucher/i18n/lt.po
+++ b/addons/account_voucher/i18n/lt.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-11 04:36+0000\n"
+"PO-Revision-Date: 2010-08-29 10:34+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/nl.po b/addons/account_voucher/i18n/nl.po
index 45e499f70ef..b3d29854ece 100644
--- a/addons/account_voucher/i18n/nl.po
+++ b/addons/account_voucher/i18n/nl.po
@@ -282,7 +282,7 @@ msgstr "Nieuwe bankbetaling"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Bonregels"
diff --git a/addons/account_voucher/i18n/nl_BE.po b/addons/account_voucher/i18n/nl_BE.po
index fd1f916829c..fde6795e91d 100644
--- a/addons/account_voucher/i18n/nl_BE.po
+++ b/addons/account_voucher/i18n/nl_BE.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/oc.po b/addons/account_voucher/i18n/oc.po
index 1ae2ad5023b..d3811ea1497 100644
--- a/addons/account_voucher/i18n/oc.po
+++ b/addons/account_voucher/i18n/oc.po
@@ -283,7 +283,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/pl.po b/addons/account_voucher/i18n/pl.po
index 867e7ce5a38..f4d732870d4 100644
--- a/addons/account_voucher/i18n/pl.po
+++ b/addons/account_voucher/i18n/pl.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/pt.po b/addons/account_voucher/i18n/pt.po
index 11530184b45..b4f5dc99d96 100644
--- a/addons/account_voucher/i18n/pt.po
+++ b/addons/account_voucher/i18n/pt.po
@@ -282,7 +282,7 @@ msgstr "Novo pagamento bancário"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Linhas Voucher"
diff --git a/addons/account_voucher/i18n/pt_BR.po b/addons/account_voucher/i18n/pt_BR.po
index 4c7890bc673..35af296f0c0 100644
--- a/addons/account_voucher/i18n/pt_BR.po
+++ b/addons/account_voucher/i18n/pt_BR.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/ro.po b/addons/account_voucher/i18n/ro.po
index 96bfcdeb6a9..45322098f0a 100644
--- a/addons/account_voucher/i18n/ro.po
+++ b/addons/account_voucher/i18n/ro.po
@@ -282,7 +282,7 @@ msgstr "Plată nouă prin bancă"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Înregistrări bonuri valorice"
diff --git a/addons/account_voucher/i18n/ru.po b/addons/account_voucher/i18n/ru.po
index 7a7b897416c..c905500e618 100644
--- a/addons/account_voucher/i18n/ru.po
+++ b/addons/account_voucher/i18n/ru.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/sl.po b/addons/account_voucher/i18n/sl.po
index f2616c89850..37c75f576a2 100644
--- a/addons/account_voucher/i18n/sl.po
+++ b/addons/account_voucher/i18n/sl.po
@@ -282,7 +282,7 @@ msgstr "Novo bančno plačilo"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/sq.po b/addons/account_voucher/i18n/sq.po
index 01c293b5d2f..20c1981720b 100644
--- a/addons/account_voucher/i18n/sq.po
+++ b/addons/account_voucher/i18n/sq.po
@@ -283,7 +283,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/sr.po b/addons/account_voucher/i18n/sr.po
index e607c0faa6b..623af11cbd9 100644
--- a/addons/account_voucher/i18n/sr.po
+++ b/addons/account_voucher/i18n/sr.po
@@ -283,7 +283,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/sv.po b/addons/account_voucher/i18n/sv.po
index dc1d449ec32..868f73fd40c 100644
--- a/addons/account_voucher/i18n/sv.po
+++ b/addons/account_voucher/i18n/sv.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/tlh.po b/addons/account_voucher/i18n/tlh.po
index 76a668d455e..af8a8577ec9 100644
--- a/addons/account_voucher/i18n/tlh.po
+++ b/addons/account_voucher/i18n/tlh.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/tr.po b/addons/account_voucher/i18n/tr.po
index 64f209c14b1..8879e5fbfb0 100644
--- a/addons/account_voucher/i18n/tr.po
+++ b/addons/account_voucher/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-11 04:36+0000\n"
+"PO-Revision-Date: 2010-08-29 10:33+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher
@@ -282,7 +282,7 @@ msgstr "Yeni Banka Ödemesi"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "Fiş Kalemleri"
diff --git a/addons/account_voucher/i18n/uk.po b/addons/account_voucher/i18n/uk.po
index 500c8962bb0..ab92517fda8 100644
--- a/addons/account_voucher/i18n/uk.po
+++ b/addons/account_voucher/i18n/uk.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/vi.po b/addons/account_voucher/i18n/vi.po
index 30c865017e6..fd930c1a101 100644
--- a/addons/account_voucher/i18n/vi.po
+++ b/addons/account_voucher/i18n/vi.po
@@ -283,7 +283,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/i18n/zh_CN.po b/addons/account_voucher/i18n/zh_CN.po
index 4aa49b64445..e50ff08cdbf 100644
--- a/addons/account_voucher/i18n/zh_CN.po
+++ b/addons/account_voucher/i18n/zh_CN.po
@@ -282,7 +282,7 @@ msgstr "新的银行付款"
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr "原始凭证明细"
diff --git a/addons/account_voucher/i18n/zh_TW.po b/addons/account_voucher/i18n/zh_TW.po
index 513f3b22fd7..63c2ef87b03 100644
--- a/addons/account_voucher/i18n/zh_TW.po
+++ b/addons/account_voucher/i18n/zh_TW.po
@@ -282,7 +282,7 @@ msgstr ""
#. module: account_voucher
#: view:account.voucher:0
-#: field:account.voucher,payment_ids:0
+#: field:account.voucher,line_ids:0
msgid "Voucher Lines"
msgstr ""
diff --git a/addons/account_voucher/report/report_voucher.py b/addons/account_voucher/report/report_voucher.py
index 1524f972e6a..a3f3bb0380d 100644
--- a/addons/account_voucher/report/report_voucher.py
+++ b/addons/account_voucher/report/report_voucher.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 .
#
##############################################################################
@@ -37,19 +37,19 @@ class report_voucher(report_sxw.rml_parse):
def convert(self, amount, cur):
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur);
return amt_en
-
+
def debit(self, move_ids):
debit = 0.0
- for move in move_ids:#self.pool.get('account.move.line').browse(self.cr, self.uid, move_ids):
+ for move in move_ids:
debit +=move.debit
return debit
-
+
def credit(self, move_ids):
credit = 0.0
- for move in move_ids:#self.pool.get('account.move.line').browse(self.cr, self.uid, move_ids):
+ for move in move_ids:
credit +=move.credit
return credit
-
+
def _get_ref(self, voucher_id, move_ids):
voucher_line = self.pool.get('account.voucher.line').search(self.cr, self.uid, [('partner_id','=',move_ids.partner_id.id), ('voucher_id','=',voucher_id)])
if voucher_line:
diff --git a/addons/account_voucher/report/report_voucher_amount.rml b/addons/account_voucher/report/report_voucher_amount.rml
index 81ebc376e52..71e18a23a69 100755
--- a/addons/account_voucher/report/report_voucher_amount.rml
+++ b/addons/account_voucher/report/report_voucher_amount.rml
@@ -234,19 +234,19 @@
- [[ repeatIn(voucher.payment_ids,'payment_ids') ]]
+ [[ repeatIn(voucher.line_ids,'line_ids') ]]
- [[ payment_ids.partner_id and payment_ids.partner_id.name or '' ]]
+ [[ line_ids.partner_id and line_ids.partner_id.name or '' ]]
- [[ payment_ids.amount ]]
+ [[ line_ids.amount ]]
- [[ payment_ids.account_id.name ]]
+ [[ line_ids.account_id.name ]]
@@ -256,7 +256,7 @@
- [[ payment_ids.ref ]] [[ payment_ids.amount ]]
+ [[ line_ids.ref ]] [[ line_ids.amount ]]
@@ -266,7 +266,7 @@
- [[ payment_ids.type ]]
+ [[ line_ids.type ]]
diff --git a/addons/account_voucher/report/rml_parse.py b/addons/account_voucher/report/rml_parse.py
index 721c87fbcf5..e23d8c52947 100644
--- a/addons/account_voucher/report/rml_parse.py
+++ b/addons/account_voucher/report/rml_parse.py
@@ -107,7 +107,6 @@ class rml_parse(report_sxw.rml_parse):
return Stringer
def explode_this(self,chaine,length):
- #chaine = self.repair_string(chaine)
chaine = rstrip(chaine)
ast = list(chaine)
i = length
diff --git a/addons/account_voucher/security/ir.model.access.csv b/addons/account_voucher/security/ir.model.access.csv
index bf7ee564bc1..b27392628f0 100644
--- a/addons/account_voucher/security/ir.model.access.csv
+++ b/addons/account_voucher/security/ir.model.access.csv
@@ -1,9 +1,9 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_account_voucher_user","account.voucher","model_account_voucher","account.group_account_user",1,1,1,1
-"access_account_voucher_line_user","account.voucher.line","model_account_voucher_line","account.group_account_user",1,0,0,0
+"access_account_voucher_line_accountant","account.voucher.line.accountant","model_account_voucher_line","account.group_account_user",1,1,1,1
"access_account_voucher_manager","account.voucher","model_account_voucher","account.group_account_manager",1,0,0,0
-"access_account_voucher_line_manager","account.voucher.line","model_account_voucher_line","account.group_account_manager",1,1,1,1
+"access_account_voucher_line_manager","account.voucher.line","model_account_voucher_line","account.group_account_manager",1,0,0,0
"access_account_voucher_invoice","account.voucher invoice","model_account_voucher","account.group_account_invoice",1,1,1,1
"access_account_voucher_system","account.voucher system","model_account_voucher","base.group_system",1,0,0,0
-"access_account_voucher_line_accountant","account.voucher.line accountant","model_account_voucher_line","account.group_account_user",1,1,1,1
+"access_account_voucher_line_system","account.voucher.line.system","model_account_voucher_line","base.group_system",1,0,0,0
"access_account_voucher_line_invoice","account.voucher.line invoice","model_account_voucher_line","account.group_account_invoice",1,1,1,1
diff --git a/addons/account_voucher/test/account_voucher.yml b/addons/account_voucher/test/account_voucher.yml
index a49222c3b96..b63bfc9d129 100644
--- a/addons/account_voucher/test/account_voucher.yml
+++ b/addons/account_voucher/test/account_voucher.yml
@@ -9,7 +9,7 @@
journal_id: account.bank_journal
name: Voucher for Axelor
narration: Basic Pc
- payment_ids:
+ line_ids:
- account_id: account.a_recv
amount: 1000.0
name: Voucher for Axelor
@@ -23,9 +23,9 @@
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'draft'
-
- I change the state of voucher to "proforma" by clicking PRO-FORMA button
+ I compute the voucher to calculate the taxes by clicking Cpmpute button
-
- !workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucherforaxelor0}
+ !workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor0}
-
I check that the voucher state is now "proforma"
-
@@ -35,17 +35,8 @@
I create voucher by clicking on Create button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor0}
--
- I check that the voucher state is "Waiting for re-checking"
--
- !assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- - state == 'recheck'
-
I clicked on Validate Button
--
- !workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucherforaxelor0}
--
- I check that the voucher state is "posted"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'posted'
@@ -68,7 +59,7 @@
journal_id: account.bank_journal
name: Voucher Axelor
narration: Basic PC
- payment_ids:
+ line_ids:
- account_id: account.cash
amount: 1000.0
name: Voucher Axelor
@@ -83,7 +74,7 @@
-
I change the state of voucher to "proforma" by clicking PRO-FORMA button
-
- !workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucheraxelor0}
+ !workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is now "proforma"
-
@@ -93,21 +84,11 @@
I create voucher by clicking on Create button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucheraxelor0}
--
- I check that the voucher state is "Waiting for re-checking"
--
- !assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- - state == 'recheck'
--
- I clicked on Validate Button
--
- !workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is "posted"
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'posted'
-
-
I check that moves get created for this voucher
-
diff --git a/addons/account_voucher/voucher.py b/addons/account_voucher/voucher.py
index 4a1d62c4d92..4cc44433ff8 100644
--- a/addons/account_voucher/voucher.py
+++ b/addons/account_voucher/voucher.py
@@ -20,107 +20,87 @@
##############################################################################
import time
+import netsvc
from osv import fields
from osv import osv
from tools.translate import _
-journal2type = {
- 'cash':'rec_voucher',
- 'bank':'bank_rec_voucher',
- 'cash':'pay_voucher',
- 'sale':'journal_sale_vou',
- 'purchase':'journal_pur_voucher',
- 'general':'journal_voucher'
-}
+class account_move_line(osv.osv):
+ _inherit = 'account.move.line'
+ def _unreconciled(self, cr, uid, ids, prop, unknow_none, context):
+ res={}
+ for line in self.browse(cr, uid, ids, context=context):
+ res[line.id] = line.debit - line.credit
+ if line.reconcile_partial_id:
+ res[line.id] = 0
+ for partial in line.reconcile_partial_id.line_partial_ids:
+ res[line.id] += partial.debit - partial.credit
+ res[line.id] = abs(res[line.id])
+ return res
-type2journal = {
- 'rec_voucher': 'cash',
- 'bank_rec_voucher': 'bank',
- 'pay_voucher': 'cash',
- 'bank_pay_voucher': 'bank',
- 'cont_voucher': 'cash',
- 'journal_sale_vou': 'sale',
- 'journal_pur_voucher': 'purchase',
- 'journal_voucher':'general'
-}
-
-class ir_sequence_type(osv.osv):
- _inherit = "ir.sequence.type"
_columns = {
- 'name': fields.char('Sequence Name',size=128, required=True),
- 'code': fields.char('Sequence Code',size=128, required=True),
+ 'amount_unreconciled': fields.function(_unreconciled, method=True, string='Unreconciled Amount'),
}
-ir_sequence_type()
-
-class account_journal(osv.osv):
- _inherit = "account.journal"
- _columns = {
- 'max_amount': fields.float('Verify Transaction', digits=(16, 2), help="Validate voucher entry twice before posting it, if transection amount more then entered here"),
- }
-account_journal()
+account_move_line()
class account_voucher(osv.osv):
-
+ def _get_type(self, cr, uid, ids, context={}):
+ return context.get('type')
+
def _get_period(self, cr, uid, context={}):
if context.get('period_id', False):
return context.get('period_id')
-
periods = self.pool.get('account.period').find(cr, uid)
- if periods:
- return periods[0]
- else:
- return False
-
- def _get_type(self, cr, uid, context={}):
- vtype = context.get('type', 'bank')
- voucher_type = journal2type.get(vtype)
- return voucher_type
-
- def _get_reference_type(self, cursor, user, context=None):
- return [('none', 'Free Reference')]
+ return periods and periods[0] or False
def _get_journal(self, cr, uid, context={}):
journal_pool = self.pool.get('account.journal')
-
if context.get('journal_id', False):
return context.get('journal_id')
-
- type_inv = context.get('type', 'rec_voucher')
-
- ttype = type2journal.get(type_inv, type_inv)
+ ttype = context.get('type', 'bank')
res = journal_pool.search(cr, uid, [('type', '=', ttype)], limit=1)
+ return res and res[0] or False
- if res:
- return res[0]
- else:
+ def _get_tax(self, cr, uid, context={}):
+ journal_id = context.get('journal_id', False)
+ if not journal_id:
return False
+ journal_pool = self.pool.get('account.journal')
+ journal = journal_pool.browse(cr, uid, journal_id)
+ account_id = journal.default_credit_account_id or journal.default_debit_account_id
+ if account_id and account_id.tax_ids:
+ tax_id = account_id.tax_ids[0].id
+ return tax_id
+ return False
def _get_currency(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr, uid, uid)
if user.company_id:
return user.company_id.currency_id.id
- else:
- return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)])[0]
+ return False
_name = 'account.voucher'
_description = 'Accounting Voucher'
- _order = "id desc"
+ _order = "date desc, id desc"
+ _rec_name = 'number'
_columns = {
- 'name':fields.char('Name', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'type': fields.selection([
- ('pay_voucher','Cash Payment'),
- ('bank_pay_voucher','Bank Payment'),
- ('rec_voucher','Cash Receipt'),
- ('bank_rec_voucher','Bank Receipt'),
- ('journal_sale_vou','Journal Sale'),
- ('journal_pur_voucher','Journal Purchase'),
- ('journal_voucher','Journal Voucher'),
- ],'Entry Type', select=True , size=128, readonly=True, states={'draft':[('readonly',False)]}),
+ 'type':fields.selection([
+ ('sale','Sale'),
+ ('purchase','Purchase'),
+ ('payment','Payment'),
+ ('receipt','Receipt'),
+ ],'Type'),
+ 'name':fields.char('Memo', size=256, readonly=True, states={'draft':[('readonly',False)]}),
'date':fields.date('Date', readonly=True, states={'draft':[('readonly',False)]}, help="Effective date for accounting entries"),
'journal_id':fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'account_id':fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}, domain=[('type','<>','view')]),
- 'payment_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=True, states={'draft':[('readonly',False)]}),
- 'period_id': fields.many2one('account.period', 'Period', required=True, readonly=True, states={'posted':[('readonly',False)]}),
+ 'account_id':fields.many2one('account.account', 'Account', required=True, readonly=True, states={'draft':[('readonly',False)]}),
+
+ 'line_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=True, states={'draft':[('readonly',False)]}),
+ 'line_cr_ids':fields.one2many('account.voucher.line','voucher_id','Credits',
+ domain=[('type','=','cr')], context={'default_type':'cr'}, readonly=True, states={'draft':[('readonly',False)]}),
+ 'line_dr_ids':fields.one2many('account.voucher.line','voucher_id','Debits',
+ domain=[('type','=','dr')], context={'default_type':'dr'}, readonly=True, states={'draft':[('readonly',False)]}),
+ 'period_id': fields.many2one('account.period', 'Period', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'narration':fields.text('Narration', readonly=True, states={'draft':[('readonly',False)]}),
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True),
@@ -128,135 +108,300 @@ class account_voucher(osv.osv):
[('draft','Draft'),
('proforma','Pro-forma'),
('posted','Posted'),
- ('recheck','Waiting for Re-checking'),
- ('cancel','Cancel'),
- ('audit','Audit Complete')
+ ('cancel','Cancelled')
], 'State', readonly=True, size=32,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Voucher. \
\n* The \'Pro-forma\' when voucher is in Pro-forma state,voucher does not have an voucher number. \
\n* The \'Posted\' state is used when user create voucher,a voucher number is generated and voucher entries are created in account \
\n* The \'Cancelled\' state is used when user cancel voucher.'),
- 'amount':fields.float('Amount', readonly=True),
- 'reference': fields.char('Reference', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Payment or Receipt transaction number, i.e. Bank cheque number or payorder number or Wire transfer number or Acknowledge number."),
- 'reference_type': fields.selection(_get_reference_type, 'Reference Type', required=True),
+ 'amount': fields.float('Total', digits=(16, 2), required=True, readonly=True, states={'draft':[('readonly',False)]}),
+ 'tax_amount':fields.float('Tax Amount', digits=(14,2), readonly=True, states={'draft':[('readonly',False)]}),
+ 'reference': fields.char('Ref #', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Payment or Receipt transaction number, i.e. Bank cheque number or payorder number or Wire transfer number or Acknowledge number."),
'number': fields.related('move_id', 'name', type="char", readonly=True, string='Number'),
'move_id':fields.many2one('account.move', 'Account Entry'),
- 'move_ids':fields.many2many('account.move.line', 'voucher_id', 'account_id', 'rel_account_move', 'Real Entry'),
- 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]})
+ 'move_ids': fields.related('move_id','line_id', type='many2many', relation='account.move.line', string='Journal Items', readonly=True),
+ 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}),
+ 'audit': fields.related('move_id','to_check', type='boolean', relation='account.move', string='Audit Complete ?'),
+ 'pay_now':fields.selection([
+ ('pay_now','Pay Directly'),
+ ('pay_later','Pay Later or Group Funds'),
+ ],'Payment', select=True, readonly=True, states={'draft':[('readonly',False)]}),
+ 'tax_id':fields.many2one('account.tax', 'Tax', readonly=True, states={'draft':[('readonly',False)]}),
+ 'pre_line':fields.boolean('Previous Payments ?', required=False),
+ 'date_due': fields.date('Due Date'),
+ 'term_id':fields.many2one('account.payment.term', 'Term', required=False),
}
-
_defaults = {
'period_id': _get_period,
- 'type': _get_type,
'journal_id':_get_journal,
'currency_id': _get_currency,
+ 'type':_get_type,
'state': lambda *a: 'draft',
+ 'pay_now':lambda *a: 'pay_later',
+ 'name': lambda *a: '',
'date' : lambda *a: time.strftime('%Y-%m-%d'),
- 'reference_type': lambda *a: "none",
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher',context=c),
+ 'tax_id': _get_tax,
}
- def onchange_account(self, cr, uid, ids, account_id):
- if not account_id:
- return {
- 'value':{'amount':False}
- }
- account = self.pool.get('account.account').browse(cr, uid, account_id)
- balance=account.balance
+ # TODO: review this code.
+ def onchange_price(self, cr, uid, ids, line_ids, tax_id, partner_id=False, context={}):
+ tax_pool = self.pool.get('account.tax')
+ partner_pool = self.pool.get('res.partner')
+ position_pool = self.pool.get('account.fiscal.position')
+ voucher_line_pool = self.pool.get('account.voucher.line')
+ res = {
+ 'tax_amount':False,
+ 'amount':False,
+ }
+ voucher_total_tax = 0.0
+ voucher_total = 0.0
+ voucher_line_ids = []
+
+ total = 0.0
+ total_tax = 0.0
+
+ for line in line_ids:
+ voucher_line_ids += [line[1]]
+ voucher_total += line[2].get('amount')
+
+ total = voucher_total
+
+ if tax_id:
+ tax = [tax_pool.browse(cr, uid, tax_id)]
+
+ if partner_id:
+ partner = partner_pool.browse(cr, uid, partner_id) or False
+ taxes = position_pool.map_tax(cr, uid, partner and partner.property_account_position or False, tax)
+ tax = tax_pool.browse(cr, uid, taxes)
+
+ if not tax[0].price_include:
+ for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_total, 1).get('taxes'):
+ total_tax += tax_line.get('amount')
+ total += total_tax
+ else:
+ line_ids2 = []
+ for line in line_ids:
+ line_total = 0.0
+ line_tax = 0.0
+ operation = line[0]
+ rec_id = line[1]
+ rec = line[2]
+ for tax_line in tax_pool.compute_all(cr, uid, tax, rec.get('amount'), 1).get('taxes'):
+ line_tax += tax_line.get('amount')
+ line_total += tax_line.get('price_unit')
+ total_tax += line_tax
+ if rec_id:
+ voucher_line_pool.write(cr, uid, [rec_id], {'amount':line_total})
+ line_ids2 += [rec_id]
+ else:
+ rec.update({
+ 'amount':line_total
+ })
+ res.update({
+ 'line_ids':line_ids2
+ })
+ res.update({
+ 'amount':total,
+ 'tax_amount':total_tax
+ })
return {
- 'value':{'amount':balance}
+ 'value':res
+ }
+
+ def onchange_term_id(self, cr, uid, ids, term_id, amount):
+ term_pool = self.pool.get('account.payment.term')
+ terms = False
+ due_date = False
+ default = {'date_due':False}
+ if term_id and amount:
+ terms = term_pool.compute(cr, uid, term_id, amount)
+ if terms:
+ due_date = terms[-1][0]
+ default.update({
+ 'date_due':due_date
+ })
+ return {'value':default}
+
+ def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id=False, price=0.0, ttype=False, context={}):
+ """price
+ Returns a dict that contains new values and context
+
+ @param partner_id: latest value from user input for field partner_id
+ @param args: other arguments
+ @param context: context arguments, like lang, time zone
+
+ @return: Returns a dict which contains new values, and context
+ """
+ if not journal_id:
+ return {}
+ move_pool = self.pool.get('account.move')
+ line_pool = self.pool.get('account.voucher.line')
+ move_line_pool = self.pool.get('account.move.line')
+ partner_pool = self.pool.get('res.partner')
+ journal_pool = self.pool.get('account.journal')
+ default = {
+ 'value':{'line_ids':[], 'line_dr_ids':[], 'line_cr_ids':[], 'pre_line': False},
}
- def onchange_journal(self, cr, uid, ids, journal_id, type):
- if not journal_id:
- return {
- 'value':{'account_id':False}
- }
- journal = self.pool.get('account.journal')
+ if not partner_id:
+ return default
- if journal_id and (type in ('rec_voucher','bank_rec_voucher','journal_pur_voucher','journal_voucher')):
- account_id = journal.browse(cr, uid, journal_id).default_debit_account_id
- return {
- 'value':{'account_id':account_id.id}
- }
- elif journal_id and (type in ('pay_voucher','bank_pay_voucher','journal_sale_vou')) :
- account_id = journal.browse(cr, uid, journal_id).default_credit_account_id
- return {
- 'value':{'account_id':account_id.id}
- }
+ if not partner_id and ids:
+ line_ids = line_pool.search(cr, uid, [('voucher_id','=',ids[0])])
+ if line_ids:
+ line_pool.unlink(cr, uid, line_ids)
+ return default
+
+ journal = journal_pool.browse(cr, uid, journal_id)
+ partner = partner_pool.browse(cr, uid, partner_id)
+ account_id = False
+ term_id = False
+ if journal.type in ('sale','sale_refund'):
+ account_id = partner.property_account_receivable.id
+ elif journal.type in ('purchase', 'purchase_refund','expense'):
+ term_id = partner.property_payment_term.id
+ if term_id:
+ vals = self.onchange_term_id(cr, uid, ids, term_id, price)
+ default['value'].update(vals.get('value'))
+ account_id = partner.property_account_payable.id
else:
- account_id = journal.browse(cr, uid, journal_id).default_credit_account_id
- return {
- 'value':{'account_id':account_id.id}
- }
-
- def open_voucher(self, cr, uid, ids, context={}):
- voucher = self.pool.get('account.voucher').browse(cr, uid, ids)[0]
- total = 0
- for line in voucher.payment_ids:
- total += line.amount
+ account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
+ default['value'].update({
+ 'account_id':account_id,
+ 'term_id':term_id
+ })
+ if journal.type not in ('cash', 'bank'):
+ return default
- if total != 0:
- res = {
- 'amount':total,
- 'state':'proforma'
- }
- self.write(cr, uid, ids, res)
+ account_type = 'receivable'
+ if ttype == 'payment':
+ account_type = 'payable'
else:
- raise osv.except_osv(_('Invalid action !'), _('You can not post to Pro-Forma a voucher with Total amount = 0 !'))
+ account_type = 'receivable'
+
+ ids = move_line_pool.search(cr, uid, [('account_id.type','=', account_type), ('reconcile_id','=', False), ('partner_id','=',partner_id)], context=context)
+ moves = move_line_pool.browse(cr, uid, ids)
+ total_credit = price or 0.0
+ total_debit = 0.0
+ for line in moves:
+ if line.credit and line.reconcile_partial_id:
+ continue
+ total_credit += line.credit or 0.0
+ total_debit += line.debit or 0.0
+ for line in moves:
+ if line.credit and line.reconcile_partial_id:
+ continue
+ rs = {
+ 'name':line.move_id.name,
+ 'type': line.credit and 'dr' or 'cr',
+ 'move_line_id':line.id,
+ 'account_id':line.account_id.id,
+ 'amount_original':line.credit or line.debit or 0.0,
+ 'date_original':line.date,
+ 'date_due':line.date_maturity,
+ 'amount_unreconciled': line.amount_unreconciled
+ }
+ if line.credit:
+ rs['amount'] = min(line.amount_unreconciled, total_debit)
+ total_debit -= rs['amount']
+ else:
+ rs['amount'] = min(line.debit, total_credit)
+ total_credit -= rs['amount']
+
+ default['value']['line_ids'].append(rs)
+ if rs['type'] == 'cr':
+ default['value']['line_cr_ids'].append(rs)
+ else:
+ default['value']['line_dr_ids'].append(rs)
+
+ if ttype == 'payment' and len(default['value']['line_cr_ids']) > 0:
+ default['value']['pre_line'] = 1
+ elif ttype == 'receipt' and len(default['value']['line_dr_ids']) > 0:
+ default['value']['pre_line'] = 1
+
+ return default
+
+ def onchange_date(self, cr, user, ids, date, context={}):
+ """
+ @param date: latest value from user input for field date
+ @param args: other arguments
+ @param context: context arguments, like lang, time zone
+ @return: Returns a dict which contains new values, and context
+ """
+ period_pool = self.pool.get('account.period')
+ pids = period_pool.search(cr, user, [('date_start','<=',date), ('date_stop','>=',date)])
+ if not pids:
+ return {}
+ return {
+ 'value':{
+ 'period_id':pids[0]
+ }
+ }
+
+ def onchange_journal(self, cr, uid, ids, journal_id):
+ return {}
+
+ def proforma_voucher(self, cr, uid, ids):
+ self.action_move_line_create(cr, uid, ids)
return True
- def proforma_voucher(self, cr, uid, ids, context={}):
- self.action_move_line_create(cr, uid, ids)
- self.write(cr, uid, ids, {'state':'posted'})
- return True
-
def action_cancel_draft(self, cr, uid, ids, context={}):
+ wf_service = netsvc.LocalService("workflow")
+ for voucher_id in ids:
+ wf_service.trg_create(uid, 'account.voucher', voucher_id, cr)
self.write(cr, uid, ids, {'state':'draft'})
return True
-
- def audit_pass(self, cr, uid, ids, context={}):
- move_pool = self.pool.get('account.move')
- result = True
- audit_pass = []
- for voucher in self.browse(cr, uid, ids):
- if voucher.move_id and voucher.move_id.state == 'draft':
- result = result and move_pool.button_validate(cr, uid, [voucher.move_id.id])
- audit_pass += [voucher.id]
-
- self.write(cr, uid, audit_pass, {'state':'audit'})
- return result
-
+
def cancel_voucher(self, cr, uid, ids, context={}):
move_pool = self.pool.get('account.move')
-
+ voucher_line_pool = self.pool.get('account.voucher.line')
for voucher in self.browse(cr, uid, ids):
if voucher.move_id:
move_pool.button_cancel(cr, uid, [voucher.move_id.id])
move_pool.unlink(cr, uid, [voucher.move_id.id])
-
res = {
- 'state':'cancel',
+ 'state':'cancel',
'move_id':False,
- 'move_ids':[(6, 0,[])]
}
self.write(cr, uid, ids, res)
return True
def unlink(self, cr, uid, ids, context=None):
- vouchers = self.read(cr, uid, ids, ['state'])
- unlink_ids = []
- for t in vouchers:
- if t['state'] in ('draft', 'cancel'):
- unlink_ids.append(t['id'])
- else:
- raise osv.except_osv('Invalid action !', 'Cannot delete Voucher(s) which are already opened or paid !')
- return super(account_voucher, self).unlink(cr, uid, unlink_ids, context=context)
+ for t in self.read(cr, uid, ids, ['state'], context=context):
+ if t['state'] not in ('draft', 'cancel'):
+ raise osv.except_osv(_('Invalid action !'), _('Cannot delete Voucher(s) which are already opened or paid !'))
+ return super(account_voucher, self).unlink(cr, uid, ids, context=context)
+
+ # TODO
+ def onchange_payment(self, cr, uid, ids, pay_now, journal_id, partner_id, ttype='sale'):
+ if not partner_id:
+ return {}
+ partner_pool = self.pool.get('res.partner')
+ res = {'account_id':False}
+ if pay_now == 'pay_later':
+ partner = partner_pool.browse(cr, uid, partner_id)
+ if ttype == 'sale':
+ res.update({
+ 'account_id':partner.property_account_receivable.id,
+ })
+ elif ttype == 'purchase':
+ res.update({
+ 'account_id':partner.property_account_payable.id,
+ })
+ return {
+ 'value':res
+ }
def action_move_line_create(self, cr, uid, ids, *args):
-
- journal_pool = self.pool.get('account.journal')
- sequence_pool = self.pool.get('ir.sequence')
+
+ def _get_payment_term_lines(term_id, amount):
+ term_pool = self.pool.get('account.payment.term')
+ if term_id and amount:
+ terms = term_pool.compute(cr, uid, term_id, amount)
+ return terms
+ return False
+
move_pool = self.pool.get('account.move')
move_line_pool = self.pool.get('account.move.line')
analytic_pool = self.pool.get('account.analytic.line')
@@ -264,243 +409,295 @@ class account_voucher(osv.osv):
invoice_pool = self.pool.get('account.invoice')
for inv in self.browse(cr, uid, ids):
-
if inv.move_id:
continue
- journal = journal_pool.browse(cr, uid, inv.journal_id.id)
- if inv.type in ('journal_pur_voucher', 'journal_sale_vou'):
- if journal.invoice_sequence_id:
- name = sequence_pool.get_id(cr, uid, journal.invoice_sequence_id.id)
- else:
- raise osv.except_osv(_('Error !'), _('Please define invoice sequence on %s journal !' % (journal.name)))
+ if not inv.line_ids:
+ raise osv.except_osv(_('Error !'), _('You can not validate a voucher without lines !'))
+
+ if inv.journal_id.sequence_id:
+ name = self.pool.get('ir.sequence').get_id(cr, uid, inv.journal_id.sequence_id.id)
else:
- if journal.sequence_id:
- name = sequence_pool.get_id(cr, uid, journal.sequence_id.id)
- else:
- raise osv.except_osv(_('Error !'), _('Please define sequence on journal !'))
-
- ref = False
- if inv.type in ('journal_pur_voucher', 'bank_rec_voucher', 'rec_voucher'):
- ref = inv.reference
- else:
- ref = invoice_pool._convert_ref(cr, uid, name)
-
- company_currency = inv.company_id.currency_id.id
- diff_currency_p = inv.currency_id.id <> company_currency
-
+ raise osv.except_osv(_('Error !'), _('Please define a sequence on the journal !'))
+
move = {
- 'name':name,
- 'journal_id':journal.id,
- 'type':inv.type,
- 'narration':inv.narration and inv.narration or inv.name,
+ 'name' : name,
+ 'journal_id': inv.journal_id.id,
+ 'narration' : inv.narration,
'date':inv.date,
- 'ref':ref
+ 'ref':inv.reference,
+ 'period_id': inv.period_id and inv.period_id.id or False
}
-
- if inv.period_id:
- move.update({
- 'period_id': inv.period_id.id
- })
-
move_id = move_pool.create(cr, uid, move)
+ company_currency = inv.account_id.company_id.currency_id.id
#create the first line manually
- move_line = {
- 'name': inv.name,
- 'debit': False,
- 'credit':False,
- 'account_id': inv.account_id.id or False,
- 'move_id': move_id ,
- 'journal_id': inv.journal_id.id,
- 'period_id': inv.period_id.id,
- 'partner_id': False,
- 'ref':ref,
- 'date': inv.date
- }
- if diff_currency_p:
- amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
- inv.amount = amount_currency
- move_line.update({
- 'amount_currency':amount_currency,
- 'currency_id':inv.currency_id.id
- })
+ debit = 0.0
+ credit = 0.0
+ # TODO: is there any other alternative then the voucher type ??
+ if inv.type in ('purchase', 'payment'):
+ credit = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
+ elif inv.type in ('sale', 'receipt'):
+ debit = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
- if inv.type in ('rec_voucher', 'bank_rec_voucher', 'journal_pur_voucher', 'journal_voucher'):
- move_line['debit'] = inv.amount
+ if inv.type == 'purchase' and inv.term_id and _get_payment_term_lines(inv.term_id.id, credit or debit):
+ terms = _get_payment_term_lines(inv.term_id.id, credit or debit)
+ for term in terms:
+ due_date = term[0]
+ amount = term[1]
+ move_line = {
+ 'name':inv.name or '/',
+ 'debit':0.0,
+ 'credit':amount,
+ 'date_maturity':due_date,
+ 'account_id':inv.account_id.id,
+ 'move_id':move_id ,
+ 'journal_id':inv.journal_id.id,
+ 'period_id':inv.period_id.id,
+ 'partner_id':inv.partner_id.id,
+ 'currency_id':inv.currency_id.id,
+ 'date':inv.date
+ }
+ master_line = move_line_pool.create(cr, uid, move_line)
else:
- move_line['credit'] = inv.amount
-
- line_ids = []
- line_ids += [move_line_pool.create(cr, uid, move_line)]
- for line in inv.payment_ids:
- amount=0.0
-
- if inv.type in ('bank_pay_voucher', 'pay_voucher', 'journal_voucher'):
- ref = line.ref
-
move_line = {
- 'name':line.name,
- 'debit':False,
- 'credit':False,
- 'account_id':line.account_id.id or False,
- 'move_id':move_id ,
- 'journal_id':inv.journal_id.id,
- 'period_id':inv.period_id.id,
- 'partner_id':line.partner_id.id or False,
- 'ref':ref,
- 'date':inv.date,
- 'analytic_account_id':False
+ 'name':inv.name or '/',
+ 'debit':debit,
+ 'credit':credit,
+ 'account_id':inv.account_id.id,
+ 'move_id':move_id ,
+ 'journal_id':inv.journal_id.id,
+ 'period_id':inv.period_id.id,
+ 'partner_id':inv.partner_id.id,
+ 'currency_id':inv.currency_id.id,
+ 'date':inv.date
}
-
- if diff_currency_p:
- amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, line.amount)
- line.amount = amount_currency
- move_line.update({
- 'amount_currency':amount_currency,
- 'currency_id':inv.currency_id.id
- })
-
- if line.account_analytic_id:
- move_line.update({
- 'analytic_account_id':line.account_analytic_id.id
- })
-
- if line.type == 'dr':
- move_line.update({
- 'debit': line.amount or False
- })
- amount = line.amount
-
- elif line.type == 'cr':
- move_line.update({
- 'credit': line.amount or False
- })
- amount = line.amount * (-1)
+ master_line = move_line_pool.create(cr, uid, move_line)
+
+ rec_list_ids = []
+ line_total = debit - credit
+ for line in inv.line_ids:
+ if not line.amount:
+ continue
+ amount = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, line.amount)
+ move_line = {
+ 'name':line.name and line.name or '/',
+ 'account_id':line.account_id.id,
+ 'move_id':move_id,
+ 'partner_id':inv.partner_id.id,
+ 'currency_id':inv.currency_id.id,
+ }
+ if (line.type=='dr'):
+ line_total += amount
+ move_line['debit'] = amount
+ else:
+ line_total -= amount
+ move_line['credit'] = amount
+
+ master_line = move_line_pool.create(cr, uid, move_line)
+ if line.move_line_id.id:
+ rec_ids = [master_line, line.move_line_id.id]
+ rec_list_ids.append(rec_ids)
+
+ if inv.tax_amount > 0:
+ amount = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.tax_amount)
+ name = inv.tax_id and inv.tax_id.name or '/'
+ move_line = {
+ 'name':name,
+ 'move_id':move_id ,
+ 'journal_id':inv.journal_id.id,
+ 'period_id':inv.period_id.id,
+ 'partner_id':inv.partner_id.id,
+ 'currency_id':inv.currency_id.id,
+ }
+
+ if inv.journal_id.type in ('sale','purchase_refund'):
+ line_total -= amount
+ move_line['credit'] = amount
+ else:
+ line_total += amount
+ move_line['debit'] = amount
+
+ account_id = False
+ if inv.tax_id:
+ if inv.journal_id.type in ('sale_refund','purchase_refund'):
+ account_id = inv.tax_id.account_paid_id
+ else:
+ account_id = inv.tax_id.account_collected_id.id
+ if not account_id:
+ raise osv.except_osv(_('Invalid Error !'), _('No account defined on the related tax !'))
+ move_line['account_id'] = account_id
move_line_id = move_line_pool.create(cr, uid, move_line)
- line_ids += [move_line_id]
- rec = {
+ if not self.pool.get('res.currency').is_zero(cr, uid, inv.currency_id, line_total):
+ diff = line_total
+ move_line = {
+ 'name':name,
+ 'account_id':False,
+ 'move_id':move_id ,
+ 'partner_id':inv.partner_id.id,
+ 'date':inv.date,
+ 'credit':diff>0 and diff or 0.0,
+ 'debit':diff<0 and -diff or 0.0,
+ }
+ account_id = False
+ if inv.journal_id.type in ('sale','sale_refund', 'cash','bank'):
+ account_id = inv.partner_id.property_account_receivable.id
+ else:
+ account_id = inv.partner_id.property_account_payable.id
+ move_line['account_id'] = account_id
+ move_line_id = move_line_pool.create(cr, uid, move_line)
+
+ self.write(cr, uid, [inv.id], {
'move_id': move_id,
- 'move_ids':[(6, 0,line_ids)]
- }
-
- message = _('Voucher ') + " '" + inv.name + "' "+ _("is confirmed")
- self.log(cr, uid, inv.id, message)
-
- self.write(cr, uid, [inv.id], rec)
-
+ 'state':'posted'
+ })
+ move_pool.post(cr, uid, [move_id], context={})
+ for rec_ids in rec_list_ids:
+ if len(rec_ids) >= 2:
+ move_line_pool.reconcile_partial(cr, uid, rec_ids)
return True
- def _convert_ref(self, cr, uid, ref):
- return (ref or '').replace('/','')
-
- def name_get(self, cr, uid, ids, context={}):
- if not len(ids):
- return []
- types = {
- 'pay_voucher': 'CPV: ',
- 'rec_voucher': 'CRV: ',
- 'cont_voucher': 'CV: ',
- 'bank_pay_voucher': 'BPV: ',
- 'bank_rec_voucher': 'BRV: ',
- 'journal_sale_vou': 'JSV: ',
- 'journal_pur_voucher': 'JPV: ',
- 'journal_voucher':'JV'
- }
- return [(r['id'], types[r['type']]+(r['number'] or '')+' '+(r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
-
- def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
- if not args:
- args=[]
- if not context:
- context={}
- ids = []
- if name:
- ids = self.search(cr, user, [('number','=',name)]+args, limit=limit, context=context)
- if not ids:
- ids = self.search(cr, user, [('name',operator,name)]+args, limit=limit, context=context)
- return self.name_get(cr, user, ids, context)
-
- def copy(self, cr, uid, id, default=None, context=None):
- if default is None:
- default = {}
- default = default.copy()
- default.update({'state':'draft', 'number':False, 'move_id':False, 'move_ids':False, 'payment_ids':False})
+ def copy(self, cr, uid, id, default={}, context=None):
+ default.update({
+ 'state':'draft',
+ 'number':False,
+ 'move_id':False
+ })
if 'date' not in default:
default['date'] = time.strftime('%Y-%m-%d')
return super(account_voucher, self).copy(cr, uid, id, default, context)
+ # TODO
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ """
+ Returns views and fields for current model where view will depend on {view_type}.
+ @param view_id: list of fields, which required to read signatures
+ @param view_type: defines a view type. it can be one of (form, tree, graph, calender, gantt, search, mdx)
+ @param context: context arguments, like lang, time zone
+ @param toolbar: contains a list of reports, wizards, and links related to current model
+
+ @return: Returns a dict that contains definition for fields, views, and toolbars
+ """
+ data_pool = self.pool.get('ir.model.data')
+ journal_pool = self.pool.get('account.journal')
+ voucher_type = {
+ 'sale':'view_sale_receipt_form',
+ 'purchase':'view_purchase_receipt_form',
+ 'payment':'view_vendor_payment_form',
+ 'receipt':'view_vendor_receipt_form'
+ }
+ if view_type == 'form':
+ tview = voucher_type.get(context.get('type'))
+ result = data_pool._get_id(cr, uid, 'account_voucher', tview)
+ view_id = data_pool.browse(cr, uid, result, context=context).res_id
+
+ res = super(account_voucher, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
+
+ #Restrict the list of journal view in search view
+ if view_type == 'search':
+ journal_list = journal_pool.name_search(cr, uid, '', [], context=context)
+ res['fields']['journal_id']['selection'] = journal_list
+ return res
+
account_voucher()
class account_voucher_line(osv.osv):
_name = 'account.voucher.line'
- _description = 'Voucher Line'
+ _description = 'Voucher Lines'
+ def _compute_balance(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for line in self.browse(cr, uid, ids):
+ move_line = line.move_line_id or False
+ if not move_line:
+ res[line.id] = 0.0
+ elif move_line and move_line.credit > 0:
+ res[line.id] = move_line.credit
+ else:
+ res[line.id] = move_line.debit
+ return res
+
_columns = {
- 'voucher_id':fields.many2one('account.voucher', 'Voucher'),
- 'name':fields.char('Description', size=256, required=True),
- 'account_id':fields.many2one('account.account','Account', required=True, domain=[('type','<>','view')]),
- 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True),
+ 'voucher_id':fields.many2one('account.voucher', 'Voucher', required=1, ondelete='cascade'),
+ 'name':fields.char('Description', size=256),
+ 'account_id':fields.many2one('account.account','Account', required=True),
+ 'partner_id':fields.related('voucher_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
'amount':fields.float('Amount'),
- 'type':fields.selection([('dr','Debit'),('cr','Credit')], 'Type'),
- 'ref':fields.char('Reference', size=32),
- 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account')
+ 'type':fields.selection([('dr','Debit'),('cr','Credit')], 'Cr/Dr'),
+ 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
+ 'move_line_id': fields.many2one('account.move.line', 'Journal Item'),
+ 'date_original': fields.related('move_line_id','date', type='date', relation='account.move.line', string='Date', readonly=1),
+ 'date_due': fields.related('move_line_id','date_maturity', type='date', relation='account.move.line', string='Due Date', readonly=1),
+ 'amount_original': fields.function(_compute_balance, method=True, type='float', string='Originial Amount', store=True),
+ 'amount_unreconciled': fields.related('move_line_id','amount_unreconciled', type='float', relation='account.move.line', string='Open Balance', readonly="1"),
}
_defaults = {
- 'type': lambda *a: 'cr'
+ 'name': lambda *a: ''
}
- def onchange_partner(self, cr, uid, ids, partner_id, ttype ,type1, currency):
- currency_pool = self.pool.get('res.currency')
- company = self.pool.get('res.users').browse(cr, uid, uid).company_id
-
- vals = {
- 'account_id': False,
- 'type': False ,
- 'amount': False
- }
-
- if not partner_id:
- return {
- 'value' : vals
- }
-
- partner_pool = self.pool.get('res.partner')
- account_id = False
+ def onchange_move_line_id(self, cr, user, ids, move_line_id, context={}):
+ """
+ Returns a dict that contains new values and context
- partner = partner_pool.browse(cr, uid, partner_id)
- balance = 0.0
-
- if type1 in ('rec_voucher', 'bank_rec_voucher', 'journal_voucher'):
- account_id = partner.property_account_receivable.id
- balance = partner.credit
- ttype = 'cr'
-
- elif type1 in ('pay_voucher', 'bank_pay_voucher', 'journal_voucher') :
- account_id = partner.property_account_payable.id
- balance = partner.debit
- ttype = 'dr'
-
- elif type1 in ('journal_sale_vou') :
- account_id = partner.property_account_receivable.id
- ttype = 'dr'
-
- elif type1 in ('journal_pur_voucher') :
- account_id = partner.property_account_payable.id
- ttype = 'cr'
-
- if company.currency_id != currency:
- balance = currency_pool.compute(cr, uid, company.currency_id.id, currency, balance)
-
- vals.update({
- 'account_id': account_id,
- 'type': ttype,
- 'amount':balance
- })
+ @param move_line_id: latest value from user input for field move_line_id
+ @param args: other arguments
+ @param context: context arguments, like lang, time zone
+ @return: Returns a dict which contains new values, and context
+ """
+ res = {}
+ move_line_pool = self.pool.get('account.move.line')
+ if move_line_id:
+ move_line = move_line_pool.browse(cr, user, move_line_id, context=context)
+ move_id = move_line.move_id.id
+ if move_line.credit:
+ ttype='dr'
+ amount = move_line.credit
+ else:
+ ttype='cr'
+ amount = move_line.debit
+ account_id = move_line.account_id.id
+ res.update({
+ 'account_id':account_id,
+ 'type': ttype
+ })
return {
- 'value' : vals
+ 'value':res,
}
-
+
+ def default_get(self, cr, user, fields_list, context=None):
+ """
+ Returns default values for fields
+ @param fields_list: list of fields, for which default values are required to be read
+ @param context: context arguments, like lang, time zone
+
+ @return: Returns a dict that contains default values for fields
+ """
+ journal_id = context.get('journal_id', False)
+ partner_id = context.get('partner_id', False)
+ journal_pool = self.pool.get('account.journal')
+ partner_pool = self.pool.get('res.partner')
+ values = super(account_voucher_line, self).default_get(cr, user, fields_list, context=context)
+ if (not journal_id) or ('account_id' not in fields_list):
+ return values
+ journal = journal_pool.browse(cr, user, journal_id)
+ account_id = False
+ if journal.type in ('sale', 'purchase_refund'):
+ account_id = journal.default_credit_account_id and journal.default_credit_account_id.id or False
+ elif journal.type in ('purchase', 'expense', 'sale_refund'):
+ account_id = journal.default_debit_account_id and journal.default_debit_account_id.id or False
+ elif partner_id:
+ partner = partner_pool.browse(cr, user, partner_id, context=context)
+ if context.get('type') == 'payment':
+ account_id = partner.property_account_payable.id
+ elif context.get('type') == 'receipt':
+ account_id = partner.property_account_receivable.id
+
+ if (not account_id) and 'account_id' in fields_list:
+ raise osv.except_osv(_('Invalid Error !'), _('Please change partner and try again !'))
+ values.update({
+ 'account_id':account_id,
+ })
+ return values
account_voucher_line()
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
new file mode 100644
index 00000000000..4ffba531dc4
--- /dev/null
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -0,0 +1,191 @@
+
+
+
+
+ account.voucher.payment.form
+ account.voucher
+ form
+
+
+
+
+
+
+ Vendor Payment
+ account.voucher.open
+ form
+ [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','payment')]
+ {'journal_type':'bank', 'type':'payment'}
+
+ new
+
+
+
+
+ account.voucher.receipt.form
+ account.voucher
+ form
+
+
+
+
+
+
+ Sales Payment
+ account.voucher.open
+ form
+ [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]
+ {'journal_type':'bank', 'type':'receipt'}
+
+ new
+
+
+
+
diff --git a/addons/account_voucher/voucher_report.xml b/addons/account_voucher/voucher_report.xml
index f6f721b93ef..273fc53de5f 100644
--- a/addons/account_voucher/voucher_report.xml
+++ b/addons/account_voucher/voucher_report.xml
@@ -2,21 +2,12 @@
-
-
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
new file mode 100644
index 00000000000..4ff3bdc9c5e
--- /dev/null
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -0,0 +1,161 @@
+
+
+
+
+ account.voucher.sale.form
+ account.voucher
+ form
+
+
+
+
+
+
+
+ Sales Receipt
+ account.voucher.open
+ form
+ [('journal_id.type','=','sale'), ('type','=','sale')]
+ {'journal_type':'sale', 'type':'sale'}
+
+ new
+
+
+
+
+
+ account.voucher.purchase.form
+ account.voucher
+ form
+
+
+
+
+
+ Vendor Bills
+ account.voucher.open
+ form
+ [('journal_id.type','=','purchase'), ('type','=','purchase')]
+ {'journal_type':'purchase', 'type':'purchase'}
+
+ new
+
+
+
+
+
diff --git a/addons/account_voucher/voucher_view.xml b/addons/account_voucher/voucher_view.xml
index de708c671e0..b7d66e71eeb 100644
--- a/addons/account_voucher/voucher_view.xml
+++ b/addons/account_voucher/voucher_view.xml
@@ -6,17 +6,16 @@
account.voucher
tree
-
+
-
+
-
-
+
-
+
@@ -28,23 +27,22 @@
@@ -92,30 +100,34 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
account.voucher.select
account.voucher
@@ -124,33 +136,35 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
@@ -166,34 +180,6 @@
-
-
-
- Receivable Vouchers
- account.voucher
- form
- tree,form,graph
-
- [('journal_id.type','=','sale')]
- {'type':'sale'}
-
-
-
-
-
-
- Payable Vouchers
- account.voucher
- form
- tree,form,graph
-
- [('journal_id.type','=','purchase')]
- {'type':'purchase'}
-
-
-
@@ -207,32 +193,6 @@
-
- Cheque Register
- ir.actions.act_window
- account.voucher
- form
- tree,form
- [('journal_id.type', '=', 'bank')]
- {'type':'bank'}
-
-
-
-
-
-
-
- account.journal.form.inherit
- account.journal
- form
-
-
-
-
-
-
-
-
-
+
Vouchers Entries
account.voucher
@@ -252,10 +212,5 @@
-
-
-
-
-
-
+
diff --git a/addons/account_voucher/voucher_wizard.xml b/addons/account_voucher/voucher_wizard.xml
index b8851b51afe..86c8221f417 100644
--- a/addons/account_voucher/voucher_wizard.xml
+++ b/addons/account_voucher/voucher_wizard.xml
@@ -1,18 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_voucher/voucher_workflow.xml b/addons/account_voucher/voucher_workflow.xml
index f1444761c48..aabf239366c 100644
--- a/addons/account_voucher/voucher_workflow.xml
+++ b/addons/account_voucher/voucher_workflow.xml
@@ -7,18 +7,11 @@
True
-
-
- True
- draft
- write({'state':'draft'})
- function
-
-
+ True
proforma
- open_voucher()
+ write({'state':'draft'})
function
@@ -27,67 +20,48 @@
done
proforma_voucher()
function
+ True
-
-
- recheck
- write({'state':'recheck'})
- function
-
+
+
+
+
+
+
cancel
+ True
cancel_voucher()
function
-
-
- audit
- audit_pass()
- True
- function
-
-
-
-
-
- open_voucher
-
-
proforma_voucher
- amount <= journal_id.max_amount
+ True
-
-
-
- proforma_voucher
- amount > journal_id.max_amount
-
-
-
-
-
- recheck_voucher
-
-
-
-
-
- audit_complete
-
-
-
-
-
- cancel_voucher
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -103,7 +77,7 @@
-
+
cancel_to_draft
diff --git a/addons/account_voucher/wizard/__init__.py b/addons/account_voucher/wizard/__init__.py
index bd436ecd135..a5c9a5e4f59 100644
--- a/addons/account_voucher/wizard/__init__.py
+++ b/addons/account_voucher/wizard/__init__.py
@@ -20,3 +20,4 @@
##############################################################################
import account_voucher_open
+import account_voucher_unreconcile
diff --git a/addons/account_voucher/wizard/account_voucher_open.py b/addons/account_voucher/wizard/account_voucher_open.py
index f33c00fd099..3efffe04c67 100644
--- a/addons/account_voucher/wizard/account_voucher_open.py
+++ b/addons/account_voucher/wizard/account_voucher_open.py
@@ -18,69 +18,130 @@
# along with this program. If not, see .
#
##############################################################################
-from osv import osv, fields
+
+from osv import fields, osv
from tools.translate import _
+import tools
-_types = {
- 'pay_voucher':'Cash Payment Voucher',
- 'bank_pay_voucher':'Bank Payment Voucher',
- 'rec_voucher':'Cash Receipt Voucher',
- 'bank_rec_voucher':'Bank Receipt Voucher',
- 'cont_voucher':'Contra Voucher',
- 'journal_sale_vou':'Journal Sale Voucher',
- 'journal_pur_voucher':'Journal Purchase Voucher'
- }
-_states = {
- 'draft':'Draft',
- 'proforma':'Pro-forma',
- 'posted':'Posted',
- 'cancel':'Cancel'
-}
+class account_voucher_open(osv.osv_memory):
+ _name = "account.voucher.open"
+ _description = "Account Voucher"
+
+ def _get_period(self, cr, uid, context={}):
+ """
+ Return default account period value
+ """
+ ids = self.pool.get('account.period').find(cr, uid, context=context)
+ period_id = False
+ if len(ids):
+ period_id = ids[0]
+ return period_id
-class account_open_voucher(osv.osv_memory):
- _name = "account.open.voucher"
- _description = "Account Open Voucher"
+ def _get_journal(self, cr, uid, context={}):
+ """
+ Return journal based on the journal type
+ """
+ journal_id = False
+
+ journal_pool = self.pool.get('account.journal')
+ if context.get('journal_type', False):
+ jids = journal_pool.search(cr, uid, [('type','=', context.get('journal_type'))])
+ journal_id = jids[0]
+ return journal_id
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ """
+ Returns views and fields for current model where view will depend on {view_type}.
+ @param cr: A database cursor
+ @param user: ID of the user currently logged in
+ @param view_id: list of fields, which required to read signatures
+ @param view_type: defines a view type. it can be one of (form, tree, graph, calender, gantt, search, mdx)
+ @param context: context arguments, like lang, time zone
+ @param toolbar: contains a list of reports, wizards, and links related to current model
+
+ @return: Returns a dict that contains definition for fields, views, and toolbars
+ """
+ res = super(account_voucher_open, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
- _columns = {
- 'type': fields.selection([('pay_voucher','Cash Payment Voucher'),
- ('bank_pay_voucher','Bank Payment Voucher'),
- ('rec_voucher','Cash Receipt Voucher'),
- ('bank_rec_voucher','Bank Receipt Voucher'),
- ('cont_voucher','Contra Voucher'),
- ('journal_sale_vou','Journal Sale Voucher'),
- ('journal_pur_voucher','Journal Purchase Voucher')],'Voucher Type', required=True),
- 'state': fields.selection([('draft','Draft'),
- ('proforma','Pro-forma'),
- ('posted','Posted'),
- ('cancel','Cancel')], 'State', required=True),
- 'period_ids': fields.many2many('account.period', 'voucher_period_rel', 'voucher_id', 'period_id', 'Periods'),
- }
+ if not view_id:
+ return res
+ period_pool = self.pool.get('account.period')
+ journal_pool = self.pool.get('account.journal')
+
+ journal_id = self._get_journal(cr, uid, context)
+ period_id = self._get_period(cr, uid, context)
+
+ journal = False
+ if journal_id:
+ journal = journal_pool.read(cr, uid, [journal_id], ['name'])[0]['name']
+ else:
+ journal = "All"
+
+ period = False
+ if period_id:
+ period = period_pool.browse(cr, uid, [period_id], ['name'])[0]['name']
+
+ menu = self.pool.get('ir.ui.menu').browse(cr, uid, context.get('active_id'))
+ name = menu.name
+
+ view = """
+ """ % (str(name), str(journal), str(period))
+
+ res.update({
+ 'arch':view
+ })
+ return res
+
def action_open_window(self, cr, uid, ids, context=None):
- obj_period = self.pool.get('account.period')
- obj_fyear = self.pool.get('account.fiscalyear')
- periods = []
+ """
+ This function Open action move line window on given period and Journal/Payment Mode
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: account move journal’s ID or list of IDs
+ @return: dictionary of Open action move line window on given period and Journal/Payment Mode
+ """
+
+ period_pool = self.pool.get('account.journal.period')
+ data_pool = self.pool.get('ir.model.data')
+ journal_pool = self.pool.get('account.journal')
+
if context is None:
context = {}
-
- form = self.read(cr, uid, ids, [])[0]
- if not form['period_ids']:
- year = obj_fyear.find(cr, uid)
- periods = obj_period.search(cr, uid, [('fiscalyear_id','=',year)])
- else:
- periods = form['period_ids']
- return {
- 'domain': "[('type','=','%s'), ('state','=','%s'), ('period_id','in',%s)]" % (form['type'], form['state'], periods),
- 'name': "%s - %s" % (_types[form['type']], _states[form['state']]),
+
+ journal_id = self._get_journal(cr, uid, context)
+ period_id = self._get_period(cr, uid, context)
+
+ menu = self.pool.get('ir.ui.menu').browse(cr, uid, context.get('active_id'))
+ name = menu.name
+
+ result = data_pool._get_id(cr, uid, 'account_voucher', 'view_voucher_filter_new')
+ res_id = data_pool.browse(cr, uid, result, context=context).res_id
+
+ res = {
+ 'domain':menu.action.domain,
+ 'name': name,
'view_type': 'form',
- 'view_mode': 'tree,form',
+ 'view_mode': 'tree,graph,form',
'res_model': 'account.voucher',
'view_id': False,
- 'context': "{'type':'%s', 'state':'%s', 'period_id':%s}" % (form['type'], form['state'], periods),
+ 'context': "{'journal_id': %d, 'search_default_journal_id':%d, 'search_default_period_id':%d}" % (journal_id, journal_id, period_id),
'type': 'ir.actions.act_window',
- 'nodestroy': True
+ 'search_view_id': res_id
}
-
-account_open_voucher()
+ return res
+
+account_voucher_open()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher/wizard/account_voucher_open_view.xml b/addons/account_voucher/wizard/account_voucher_open_view.xml
index b6277e7615c..6168866b85c 100644
--- a/addons/account_voucher/wizard/account_voucher_open_view.xml
+++ b/addons/account_voucher/wizard/account_voucher_open_view.xml
@@ -4,39 +4,23 @@
Open Vouchers
- account.open.voucher
+ account.voucher.open
form
-
-
- Open Vouchers
- account.open.voucher
- ir.actions.act_window
- form
- tree,form
-
- {'record_id':active_id}
- new
-
-
-
-
-
-
-
-
-
+
diff --git a/addons/account_voucher_payment/wizard/account_voucher_unreconcile.py b/addons/account_voucher/wizard/account_voucher_unreconcile.py
similarity index 79%
rename from addons/account_voucher_payment/wizard/account_voucher_unreconcile.py
rename to addons/account_voucher/wizard/account_voucher_unreconcile.py
index ef30e1af69f..fdb51bb6b91 100644
--- a/addons/account_voucher_payment/wizard/account_voucher_unreconcile.py
+++ b/addons/account_voucher/wizard/account_voucher_unreconcile.py
@@ -46,14 +46,17 @@ class account_voucher_unreconcile(osv.osv_memory):
recs = []
for line in voucher.move_ids:
if line.reconcile_id:
- recs = [line.reconcile_id.id]
-
- for rec in recs:
- reconcile_pool.unlink(cr, uid, rec)
+ recs += [line.reconcile_id.id]
+ if line.reconcile_partial_id:
+ recs += [line.reconcile_partial_id.id]
+
+ #for rec in recs:
+ reconcile_pool.unlink(cr, uid, recs)
if res.remove:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'account.voucher', context.get('active_id'), 'cancel_voucher', cr)
+ voucher_pool.cancel_voucher(cr, uid, [context.get('active_id')], context)
+# wf_service = netsvc.LocalService("workflow")
+# wf_service.trg_validate(uid, 'account.voucher', context.get('active_id'), 'cancel_voucher', cr)
return {}
diff --git a/addons/account_voucher_payment/wizard/account_voucher_unreconcile_view.xml b/addons/account_voucher/wizard/account_voucher_unreconcile_view.xml
similarity index 100%
rename from addons/account_voucher_payment/wizard/account_voucher_unreconcile_view.xml
rename to addons/account_voucher/wizard/account_voucher_unreconcile_view.xml
diff --git a/addons/account_voucher_payment/__init__.py b/addons/account_voucher_payment/__init__.py
deleted file mode 100755
index ad7558e11ee..00000000000
--- a/addons/account_voucher_payment/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 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 account_voucher_payment
-import wizard
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher_payment/__openerp__.py b/addons/account_voucher_payment/__openerp__.py
deleted file mode 100755
index a48d95bda16..00000000000
--- a/addons/account_voucher_payment/__openerp__.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 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 .
-#
-##############################################################################
-{
- "name" : "Invoice Payment/Receipt by Vouchers.",
- "version" : "1.0",
- "author" : 'OpenERP SA & Axelor',
- "description": """Extension Account Voucher module includes allows to link payment / receipt
- entries with voucher, also automatically reconcile during the payment and receipt entries
- """,
- "category" : "Generic Modules/Indian Accounting",
- "website" : "http://tinyerpindia.com",
- "depends" : [
- "base",
- "account",
- "account_voucher",
- ],
- "init_xml" : [
- ],
-
- "demo_xml" : [],
- "update_xml" : [
- "security/ir.model.access.csv",
- "wizard/account_voucher_unreconcile_view.xml",
- "account_voucher_payment_view.xml",
-
- ],
- "test" : [
-# "test/account_voucher.yml",
- "test/account_voucher_payment.yml",
- ],
-
- "active": False,
- "installable": True,
-}
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher_payment/account_voucher_payment.py b/addons/account_voucher_payment/account_voucher_payment.py
deleted file mode 100755
index 8c4e3984da4..00000000000
--- a/addons/account_voucher_payment/account_voucher_payment.py
+++ /dev/null
@@ -1,297 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 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 osv import fields, osv
-from tools.translate import _
-
-class account_invoice(osv.osv):
- _inherit = 'account.invoice'
-
- def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
- """
- Returns a list of ids based on search domain {args}
-
- @param cr: A database cursor
- @param user: ID of the user currently logged in
- @param args: list of conditions to be applied in search opertion
- @param offset: default from first record, you can start from nth record
- @param limit: number of records to be obtained as a result of search opertion
- @param order: ordering on any field(s)
- @param context: context arguments, like lang, time zone
- @param count:
-
- @return: Returns a list of ids based on search domain
- """
- if not context:
- context = {}
- ttype = context.get('ttype', False)
- if ttype and ttype in ('rec_voucher', 'bank_rec_voucher'):
- args += [('type','in', ['out_invoice', 'in_refund'])]
- elif ttype and ttype in ('pay_voucher', 'bank_pay_voucher'):
- args += [('type','in', ['in_invoice', 'out_refund'])]
- elif ttype and ttype in('journal_sale_vou', 'journal_pur_voucher', 'journal_voucher'):
- raise osv.except_osv(_('Invalid action !'), _('You can not reconcile sales, purchase, or journal voucher with invoice !'))
- args += [('type','=', 'do_not_allow_search')]
-
- res = super(account_invoice, self).search(cr, user, args, offset, limit, order, context, count)
- return res
-
-account_invoice()
-
-class account_move_line(osv.osv):
- _inherit = "account.move.line"
- _columns = {
- 'voucher_invoice': fields.many2one('account.invoice', 'Invoice', readonly=True),
- }
-account_move_line()
-
-class account_voucher(osv.osv):
- _inherit = 'account.voucher'
- _columns = {
- 'voucher_line_ids':fields.one2many('account.voucher.line', 'voucher_id', 'Voucher Lines', readonly=False, states={'proforma':[('readonly',True)]}),
- }
-
- def action_move_line_create(self, cr, uid, ids, *args):
-
- journal_pool = self.pool.get('account.journal')
- sequence_pool = self.pool.get('ir.sequence')
- move_pool = self.pool.get('account.move')
- move_line_pool = self.pool.get('account.move.line')
- analytic_pool = self.pool.get('account.analytic.line')
- currency_pool = self.pool.get('res.currency')
- invoice_pool = self.pool.get('account.invoice')
- invoice_pool = self.pool.get('account.invoice')
-
- for inv in self.browse(cr, uid, ids):
-
- if inv.move_id:
- continue
-
- journal = journal_pool.browse(cr, uid, inv.journal_id.id)
- if inv.type in ('journal_pur_voucher', 'journal_sale_vou'):
- if journal.invoice_sequence_id:
- name = sequence_pool.get_id(cr, uid, journal.invoice_sequence_id.id)
- else:
- raise osv.except_osv(_('Error !'), _('Please define invoice sequence on %s journal !' % (journal.name)))
- else:
- if journal.sequence_id:
- name = sequence_pool.get_id(cr, uid, journal.sequence_id.id)
- else:
- raise osv.except_osv(_('Error !'), _('Please define sequence on journal !'))
-
- ref = False
- if inv.type in ('journal_pur_voucher', 'bank_rec_voucher', 'rec_voucher'):
- ref = inv.reference
- else:
- ref = invoice_pool._convert_ref(cr, uid, name)
-
- company_currency = inv.company_id.currency_id.id
- diff_currency_p = inv.currency_id.id <> company_currency
-
- move = {
- 'name' : name,
- 'journal_id': journal.id,
- 'type' : inv.type,
- 'narration' : inv.narration and inv.narration or inv.name,
- 'date':inv.date,
- 'ref':ref
- }
-
- if inv.period_id:
- move.update({
- 'period_id': inv.period_id.id
- })
-
- move_id = move_pool.create(cr, uid, move)
-
- #create the first line manually
- move_line = {
- 'name':inv.name,
- 'debit':False,
- 'credit':False,
- 'account_id':inv.account_id.id or False,
- 'move_id':move_id ,
- 'journal_id':inv.journal_id.id,
- 'period_id':inv.period_id.id,
- 'partner_id':False,
- 'ref':ref,
- 'date':inv.date
- }
- if diff_currency_p:
- amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, inv.amount)
- inv.amount = amount_currency
- move_line.update({
- 'amount_currency':amount_currency,
- 'currency_id':inv.currency_id.id
- })
-
- if inv.type in ('rec_voucher', 'bank_rec_voucher', 'journal_pur_voucher', 'journal_voucher'):
- move_line['debit'] = inv.amount
- else:
- move_line['credit'] = inv.amount
-
- line_ids = []
- line_ids += [move_line_pool.create(cr, uid, move_line)]
- rec_ids = []
-
- for line in inv.payment_ids:
- amount=0.0
-
- if inv.type in ('bank_pay_voucher', 'pay_voucher', 'journal_voucher'):
- ref = line.ref
-
- move_line = {
- 'name':line.name,
- 'debit':False,
- 'credit':False,
- 'account_id':line.account_id.id or False,
- 'move_id':move_id ,
- 'journal_id':inv.journal_id.id,
- 'period_id':inv.period_id.id,
- 'partner_id':line.partner_id.id or False,
- 'ref':ref,
- 'date':inv.date,
- 'analytic_account_id':False
- }
-
- if diff_currency_p:
- amount_currency = currency_pool.compute(cr, uid, inv.currency_id.id, company_currency, line.amount)
- line.amount = amount_currency
- move_line.update({
- 'amount_currency':amount_currency,
- 'currency_id':inv.currency_id.id
- })
-
- if line.account_analytic_id:
- move_line.update({
- 'analytic_account_id':line.account_analytic_id.id
- })
-
- if line.type == 'dr':
- move_line.update({
- 'debit': line.amount or False
- })
- amount = line.amount
-
- elif line.type == 'cr':
- move_line.update({
- 'credit': line.amount or False
- })
- amount = line.amount
-
- move_line_id = move_line_pool.create(cr, uid, move_line)
- line_ids += [move_line_id]
-
- if line.invoice_id and inv.type in ('pay_voucher', 'bank_pay_voucher', 'rec_voucher', 'bank_rec_voucher'):
- rec_ids += [move_line_id]
- for move_line in line.invoice_id.move_id.line_id:
- if line.account_id.id == move_line.account_id.id:
- rec_ids += [move_line.id]
-
- if rec_ids:
- move_line_pool.reconcile_partial(cr, uid, rec_ids)
-
- rec = {
- 'move_id': move_id,
- 'move_ids':[(6, 0,line_ids)]
- }
-
- message = _('Voucher ') + " '" + inv.name + "' "+ _("is confirm")
- self.log(cr, uid, inv.id, message)
-
- self.write(cr, uid, [inv.id], rec)
-
- return True
-
-account_voucher()
-
-class account_voucher_line(osv.osv):
- _inherit = 'account.voucher.line'
-
- def default_get(self, cr, uid, fields, context={}):
- data = super(account_voucher_line, self).default_get(cr, uid, fields, context)
- self.voucher_context = context
- return data
-
- _columns = {
- 'invoice_id' : fields.many2one('account.invoice','Invoice'),
- }
-
- def move_line_get_item(self, cr, uid, line, context={}):
- res = super(account_voucher_line, self).move_line_get_item(cr, uid, line, context)
- res['invoice'] = line.invoice_id or False
- return res
-
- def onchange_invoice_id(self, cr, uid, ids, invoice_id, currency_id):
- currency_pool = self.pool.get('res.currency')
- invoice_pool = self.pool.get('account.invoice')
- res = {
- 'amount':0.0
- }
- if not invoice_id:
- return {
- 'value':res
- }
- else:
- invoice = invoice_pool.browse(cr, uid, invoice_id)
- residual = invoice.residual
- if invoice.currency_id.id != currency_id:
- residual = currency_pool.compute(cr, uid, invoice.currency_id.id, currency_id, invoice.residual)
-
- res.update({
- 'amount': residual,
- 'account_id': invoice.account_id.id,
- 'ref':invoice.number
- })
-
- return {
- 'value':res
- }
-
- def onchange_line_account(self, cr, uid, ids, account_id, type, type1):
- if not account_id:
- return {'value' : {'account_id' : False, 'type' : False ,'amount':False}}
- obj = self.pool.get('account.account')
- acc_id = False
-
- if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
- acc_id = obj.browse(cr, uid, account_id)
- balance = acc_id.credit
- type = 'cr'
- elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
- acc_id = obj.browse(cr, uid, account_id)
- balance = acc_id.debit
- type = 'dr'
- elif type1 in ('journal_sale_vou') :
- acc_id = obj.browse(cr, uid, account_id)
- balance = acc_id.credit
- type = 'dr'
- elif type1 in ('journal_pur_voucher') :
- acc_id = obj.browse(cr, uid, account_id)
- balance = acc_id.debit
- type = 'cr'
-
- return {
- 'value' : {'type' : type, 'amount':balance}
- }
-account_voucher_line()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher_payment/account_voucher_payment_view.xml b/addons/account_voucher_payment/account_voucher_payment_view.xml
deleted file mode 100755
index 6da4c7d45e2..00000000000
--- a/addons/account_voucher_payment/account_voucher_payment_view.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
- account.voucher.form.inherit
- account.voucher
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.move.line.form.inherit
- account.move.line
- form
-
-
-
-
-
-
-
-
-
- account.move.line.form.inherit
- account.move.line
- tree
-
-
-
-
-
-
-
-
-
- account.voucher.form
- account.voucher
- form
-
-
-
-
-
-
-
-
-
diff --git a/addons/account_voucher_payment/i18n/account_voucher_payment.pot b/addons/account_voucher_payment/i18n/account_voucher_payment.pot
deleted file mode 100644
index 0a6e050af91..00000000000
--- a/addons/account_voucher_payment/i18n/account_voucher_payment.pot
+++ /dev/null
@@ -1,82 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * account_voucher_payment
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-05-13 20:11:36+0000\n"
-"PO-Revision-Date: 2009-05-13 20:11:36+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: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid "This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
-msgstr ""
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr ""
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr ""
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr ""
-
diff --git a/addons/account_voucher_payment/i18n/ca.po b/addons/account_voucher_payment/i18n/ca.po
deleted file mode 100644
index 225da8f9e95..00000000000
--- a/addons/account_voucher_payment/i18n/ca.po
+++ /dev/null
@@ -1,95 +0,0 @@
-# Catalan 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-08-10 15:03+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
-"Language-Team: Catalan \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML invàlid per a la definició de la vista!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Trenca conciliació de transaccions"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"Aquest mòdul inclou:\n"
-" * Concilia factures de proveïdors i clients mentre són pagades "
-"mitjançant \n"
-" comprovants comptables\n"
-" "
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-"Si trenqueu conciliació de transaccions, també heu de comprovar totes les "
-"accions que estan relacionades amb aquestes transaccions ja que no seran "
-"eliminades"
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Línies de comprovant"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "Pagaments i rebuts de factures per comprovant."
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Trenca conciliació entrades"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Trenca conciliació"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Trenca conciliació"
diff --git a/addons/account_voucher_payment/i18n/ca_ES.po b/addons/account_voucher_payment/i18n/ca_ES.po
deleted file mode 100644
index 6bafc34d136..00000000000
--- a/addons/account_voucher_payment/i18n/ca_ES.po
+++ /dev/null
@@ -1,81 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * account_voucher_payment
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-05-13 19:47:47+0000\n"
-"PO-Revision-Date: 2009-05-16 18:57+0100\n"
-"Last-Translator: Jordi Esteve \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: \n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML invàlid per a la definició de la vista!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Trenca conciliació de transaccions"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
-msgstr "Si trenqueu conciliació de transaccions, també heu de comprovar totes les accions que estan relacionades amb aquestes transaccions ja que no seran eliminades"
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Línies de comprovant"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "Pagaments i rebuts de factures per comprovant."
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Trenca conciliació entrades"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"Aquest mòdul inclou:\n"
-" * Concilia factures de proveïdors i clients mentre són pagades mitjançant \n"
-" comprovants comptables\n"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Trenca conciliació"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Trenca conciliació"
-
diff --git a/addons/account_voucher_payment/i18n/el.po b/addons/account_voucher_payment/i18n/el.po
deleted file mode 100644
index 5531e87022f..00000000000
--- a/addons/account_voucher_payment/i18n/el.po
+++ /dev/null
@@ -1,93 +0,0 @@
-# Greek 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-06-22 05:05+0000\n"
-"Last-Translator: Panayiotis Konstantinidis \n"
-"Language-Team: Greek \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Ασυμβίβαστες συναλλαγές"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"Αυτή η μονάδα περιλαμβάνει :\n"
-" * Εναρμονίζει το τιμολόγιο ( προμηθευτή, πελάτη ) καθώς πληρώνει απο τον "
-"\n"
-" Λογαριασμό Παραστατικών\n"
-" "
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-"Αν ακυρώσετε συμφωνημένες συναλλαγές θα πρέπει να ελέγξετε όλες τις "
-"ενέργειες που συνδέονται με αυτές διότι δεν θα διαγραφούν."
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Γραμμές Παραστατικού"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "Πληρωμή Τιμολογίου/ Απόδειξη απο Παραστατικό"
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Ασυμβίβαστες εγγραφές"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Τιμολόγιο"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Ακύρωση"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "Συνεργάτης"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Ακυρώνω"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Ακύρωση"
diff --git a/addons/account_voucher_payment/i18n/es.po b/addons/account_voucher_payment/i18n/es.po
deleted file mode 100644
index 134c11751e9..00000000000
--- a/addons/account_voucher_payment/i18n/es.po
+++ /dev/null
@@ -1,94 +0,0 @@
-# Spanish 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-08-11 05:38+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
-"Language-Team: Spanish \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "¡XML inválido para la definición de la vista!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Romper conciliación de transacciones"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"Este módulo incluye :\n"
-" * Concilia facturas de proveedores y clientes mientras son pagadas "
-"mediante \n"
-" comprobantes contables\n"
-" "
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-"Si rompe conciliación de transacciones, también debe verificar todas las "
-"acciones que están enlazadas a estas transacciones porque no serán eliminadas"
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Líneas de comprobante"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "Pagos y recibos de facturas por comprobantes."
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Romper concilación entradas"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "Compañero"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Romper conciliación"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Romper conciliación"
diff --git a/addons/account_voucher_payment/i18n/es_ES.po b/addons/account_voucher_payment/i18n/es_ES.po
deleted file mode 100644
index 28765ce533a..00000000000
--- a/addons/account_voucher_payment/i18n/es_ES.po
+++ /dev/null
@@ -1,81 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * account_voucher_payment
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-05-13 19:47:47+0000\n"
-"PO-Revision-Date: 2009-05-16 18:57+0100\n"
-"Last-Translator: Jordi Esteve \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: \n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "¡XML inválido para la definición de la vista!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Romper conciliación de transacciones"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
-msgstr "Si rompe conciliación de transacciones, también debe verificar todas las acciones que están enlazadas a estas transacciones porque no serán eliminadas"
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Líneas de comprobante"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "Pagos y recibos de facturas por comprobantes."
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Romper concilación entradas"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"Este módulo incluye :\n"
-" * Concilia facturas de proveedores y clientes mientras son pagadas mediante \n"
-" comprobantes contables\n"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Romper conciliación"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Romper conciliación"
-
diff --git a/addons/account_voucher_payment/i18n/et.po b/addons/account_voucher_payment/i18n/et.po
deleted file mode 100644
index ff959abf935..00000000000
--- a/addons/account_voucher_payment/i18n/et.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# Estonian 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-06-08 17:42+0000\n"
-"Last-Translator: lyyser \n"
-"Language-Team: Estonian \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Vigane XML vaate arhitektuurile!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Mittesobivad tehingud"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Tähiku read"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Kooskõlastamatta kirjed"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Arve"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Katkesta"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "Partner"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr ""
diff --git a/addons/account_voucher_payment/i18n/fr_BE.po b/addons/account_voucher_payment/i18n/fr_BE.po
deleted file mode 100644
index 07044b31a84..00000000000
--- a/addons/account_voucher_payment/i18n/fr_BE.po
+++ /dev/null
@@ -1,77 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * account_voucher_payment
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-11-26 06:54:11+0000\n"
-"PO-Revision-Date: 2009-11-26 06:54:11+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: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr ""
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable"
-msgstr ""
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_meta_information
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_meta_information
-msgid "This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr ""
-
diff --git a/addons/account_voucher_payment/i18n/pt_BR.po b/addons/account_voucher_payment/i18n/pt_BR.po
deleted file mode 100644
index 65d8341d436..00000000000
--- a/addons/account_voucher_payment/i18n/pt_BR.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# 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: 2009-05-13 20:11+0000\n"
-"PO-Revision-Date: 2010-07-28 14:21+0000\n"
-"Last-Translator: Leandro Chaves \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-08-12 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML inválido para a arquitetura de exibição"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Transações não conciliadas"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-"Se você desfazer a reconciliação de transações, você deve também verificar "
-"todas as ações que estão ligadas a essas operações, porque elas não serão "
-"desfeitas pelo sistema"
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "Linhas de Comprovantes"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Anular reconciliação de lançamentos"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Fatura"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Cancelar"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "Parceiro"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Não concilidado"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Desconciliação"
diff --git a/addons/account_voucher_payment/i18n/sl.po b/addons/account_voucher_payment/i18n/sl.po
deleted file mode 100644
index f090b7071f9..00000000000
--- a/addons/account_voucher_payment/i18n/sl.po
+++ /dev/null
@@ -1,88 +0,0 @@
-# Slovenian 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-07-28 12:23+0000\n"
-"Last-Translator: Simon Vidmar \n"
-"Language-Team: Slovenian \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Neveljaven XML za arhitekturo pogleda!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "Preklic uskladitve transakcij"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr ""
-"Če prekličete uskladitev transakcij, morate tudi preveriti vse akcije, ki so "
-"povezane s temi transakcijami, kajti le te ne bodo onemogočene."
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr ""
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "Prekliči uskladitev vknjižb"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "Račun"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "Prekliči"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "Partner"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "Prekliči uskladitev"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "Preklic uskladitve"
diff --git a/addons/account_voucher_payment/i18n/zh_CN.po b/addons/account_voucher_payment/i18n/zh_CN.po
deleted file mode 100644
index 00ccf4661a2..00000000000
--- a/addons/account_voucher_payment/i18n/zh_CN.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# Chinese (Simplified) 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-13 20:11+0000\n"
-"PO-Revision-Date: 2010-07-14 03:27+0000\n"
-"Last-Translator: Black Jack \n"
-"Language-Team: Chinese (Simplified) \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: account_voucher_payment
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "无效XML视图结构!"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation transactions"
-msgstr "取消对账"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,description:account_voucher_payment.module_name_translation
-msgid ""
-"This module includes :\n"
-" * It reconcile the invoice (supplier, customer) while paying through \n"
-" Accounting Vouchers\n"
-" "
-msgstr ""
-"这模块包括:\n"
-" *在支付时核销发票(供应商, 客户) \n"
-" 原始凭证\n"
-" "
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid ""
-"If you unreconciliate transactions, you must also verify all the actions "
-"that are linked to those transactions because they will not be disable"
-msgstr "如果取消交易的核销, 你必须检验链接该交易的所有操作. 因为他们不会被禁止."
-
-#. module: account_voucher_payment
-#: view:account.voucher:0
-#: field:account.voucher,voucher_line_ids:0
-msgid "Voucher Lines"
-msgstr "原始凭证明细"
-
-#. module: account_voucher_payment
-#: model:ir.module.module,shortdesc:account_voucher_payment.module_name_translation
-msgid "Invoice Payment/Receipt by Vouchers."
-msgstr "发票付款/ 收入的原始凭证"
-
-#. module: account_voucher_payment
-#: model:ir.actions.wizard,name:account_voucher_payment.wizard_unreconcile_voucher
-msgid "Unreconcile entries"
-msgstr "取消核销"
-
-#. module: account_voucher_payment
-#: field:account.move.line,voucher_invoice:0
-#: field:account.voucher.line,invoice_id:0
-msgid "Invoice"
-msgstr "发票"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,end:0
-msgid "Cancel"
-msgstr "取消"
-
-#. module: account_voucher_payment
-#: field:account.voucher,partner_id:0
-msgid "Partner"
-msgstr "业务伙伴"
-
-#. module: account_voucher_payment
-#: wizard_button:account.voucher.unreconcile,init,unrec:0
-msgid "Unreconcile"
-msgstr "取消核销"
-
-#. module: account_voucher_payment
-#: wizard_view:account.voucher.unreconcile,init:0
-msgid "Unreconciliation"
-msgstr "取消对账"
diff --git a/addons/account_voucher_payment/security/ir.model.access.csv b/addons/account_voucher_payment/security/ir.model.access.csv
deleted file mode 100644
index 0343f29f43a..00000000000
--- a/addons/account_voucher_payment/security/ir.model.access.csv
+++ /dev/null
@@ -1 +0,0 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
diff --git a/addons/account_voucher_payment/test/account_voucher_payment.yml b/addons/account_voucher_payment/test/account_voucher_payment.yml
deleted file mode 100644
index 8bcea6a23a4..00000000000
--- a/addons/account_voucher_payment/test/account_voucher_payment.yml
+++ /dev/null
@@ -1,118 +0,0 @@
--
- In order to test account_voucher_payment module in OpenERP I create an invoice and paid it through voucher
--
- I create a customer invoice record
--
- !record {model: account.invoice, id: account_invoice_voucher_payment}:
- account_id: account.a_recv
- address_contact_id: base.res_partner_address_3000
- address_invoice_id: base.res_partner_address_3000
- company_id: base.main_company
- currency_id: base.EUR
- invoice_line:
- - account_id: account.a_sale
- name: '[PC1] Basic PC'
- price_unit: 450.0
- quantity: 1.0
- product_id: product.product_product_pc1
- uos_id: product.product_uom_unit
- journal_id: account.sales_journal
- partner_id: base.res_partner_desertic_hispafuentes
- reference_type: none
-
--
- I check that Initially customer invoice is in the "Draft" state
--
- !assert {model: account.invoice, id: account_invoice_voucher_payment}:
- - state == 'draft'
--
- I change the state of invoice to "Proforma2" by clicking PRO-FORMA button
--
- !workflow {model: account.invoice, action: invoice_proforma2, ref: account_invoice_voucher_payment}
--
- I check that the invoice state is now "Proforma2"
--
- !assert {model: account.invoice, id: account_invoice_voucher_payment}:
- - state == 'proforma2'
--
- I create invoice by clicking on Create button
--
- !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_voucher_payment}
--
- I check that the invoice state is "Open"
--
- !assert {model: account.invoice, id: account_invoice_voucher_payment}:
- - state == 'open'
-
--
- I create a voucher record for above invoice
--
- !record {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- account_id: account.cash
- company_id: base.main_company
- currency_id: base.EUR
- journal_id: account.bank_journal
- name: Voucher for Axelor
- narration: Basic Pc
- payment_ids:
- - account_id: account.a_recv
- amount: 450.0
- name: Voucher for Axelor
- partner_id: base.res_partner_desertic_hispafuentes
- invoice_id: account_invoice_voucher_payment
- type: cr
- period_id: account.period_6
- reference_type: none
-
--
- I check that Initially customer voucher is in the "Draft" state
--
- !assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- - state == 'draft'
--
- I change the state of voucher to "proforma" by clicking PRO-FORMA button
--
- !workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucherforaxelor1}
--
- I check that the voucher state is now "proforma"
--
- !assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- - state == 'proforma'
--
- I create voucher by clicking on Create button
--
- !workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor1}
--
- I check that the voucher state is "Waiting for re-checking"
--
- !assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- - state == 'recheck'
--
- I clicked on Validate Button
--
- !workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucherforaxelor1}
--
- I check that the voucher state is "posted"
--
- !assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- - state == 'posted'
-
--
- I check that Moves get created for this voucher
--
- !python {model: account.voucher}: |
- acc_id=self.browse(cr, uid, ref("account_voucher_voucherforaxelor1"))
- assert(acc_id.move_id)
-
--
- I check that the invoice state is now Done
--
- !assert {model: account.invoice, id: account_invoice_voucher_payment}:
- - state == 'paid'
-
-
-
-
-
-
-
diff --git a/addons/analytic/__openerp__.py b/addons/analytic/__openerp__.py
index e0411506dd8..1f21fb3fce3 100644
--- a/addons/analytic/__openerp__.py
+++ b/addons/analytic/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
"name" : "Analytic Account",
"version": "1.1",
@@ -30,11 +29,12 @@
"description": """Module for defining analytic accounting object.
""",
"init_xml" : [],
- "update_xml": ["security/ir.model.access.csv",
+ "update_xml": ['security/analytic_security.xml',
+ "security/ir.model.access.csv",
],
'demo_xml': [
],
'installable': True,
'active': False,
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 77a881744bc..e5dd9d52ce1 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -25,19 +25,15 @@ import operator
from osv import fields, osv
import decimal_precision as dp
-#
-# Object definition
-#
-
class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
_description = 'Analytic Account'
- def _compute_currency_for_level_tree(self, cr, uid, ids, ids2, res, context={}):
+ def _compute_currency_for_level_tree(self, cr, uid, ids, ids2, res, context=None):
# Handle multi-currency on each level of analytic account
# This is a refactoring of _balance_calc computation
cr.execute("SELECT a.id, r.currency_id FROM account_analytic_account a INNER JOIN res_company r ON (a.company_id = r.id) where a.id IN %s" , (tuple(ids2),))
- currency= dict(cr.fetchall())
+ currency = dict(cr.fetchall())
res_currency= self.pool.get('res.currency')
for id in ids:
if id not in ids2:
@@ -50,7 +46,7 @@ class account_analytic_account(osv.osv):
else:
res[id] += res.get(child, 0.0)
- cur_obj = res_currency.browse(cr, uid, currency.values(), context)
+ cur_obj = res_currency.browse(cr, uid, currency.values(), context=context)
cur_obj = dict([(o.id, o) for o in cur_obj])
for id in ids:
if id in ids2:
@@ -58,9 +54,10 @@ class account_analytic_account(osv.osv):
return dict([(i, res[i]) for i in ids ])
-
- def _credit_calc(self, cr, uid, ids, name, arg, context={}):
+ def _credit_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
+ if context is None:
+ context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
@@ -69,16 +66,18 @@ class account_analytic_account(osv.osv):
return res
where_date = ''
- if context.get('from_date',False):
+ if context.get('from_date', False):
where_date += " AND l.date >= '" + context['from_date'] + "'"
- if context.get('to_date',False):
+ if context.get('to_date', False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount_currency),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id "+where_date+") WHERE l.amount_currency<0 and a.id IN %s GROUP BY a.id",(tuple(parent_ids),))
r = dict(cr.fetchall())
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, r, context)
- def _debit_calc(self, cr, uid, ids, name, arg, context={}):
+ def _debit_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
+ if context is None:
+ context = {}
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
@@ -92,11 +91,14 @@ class account_analytic_account(osv.osv):
if context.get('to_date',False):
where_date += " AND l.date <= '" + context['to_date'] + "'"
cr.execute("SELECT a.id, COALESCE(SUM(l.amount_currency),0) FROM account_analytic_account a LEFT JOIN account_analytic_line l ON (a.id=l.account_id "+where_date+") WHERE l.amount_currency>0 and a.id IN %s GROUP BY a.id" ,(tuple(parent_ids),))
- r= dict(cr.fetchall())
- return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, r, context)
+ r = dict(cr.fetchall())
+ return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, r, context=context)
- def _balance_calc(self, cr, uid, ids, name, arg, context={}):
+ def _balance_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
+ if context is None:
+ context = {}
+
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
res.setdefault(i,0.0)
@@ -114,11 +116,14 @@ class account_analytic_account(osv.osv):
for account_id, sum in cr.fetchall():
res[account_id] = sum
- return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context)
+ return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context)
- def _quantity_calc(self, cr, uid, ids, name, arg, context={}):
+ def _quantity_calc(self, cr, uid, ids, name, arg, context=None):
#XXX must convert into one uom
res = {}
+ if context is None:
+ context = {}
+
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
for i in ids:
@@ -150,7 +155,7 @@ class account_analytic_account(osv.osv):
res[id] += res.get(child, 0.0)
return dict([(i, res[i]) for i in ids])
- def name_get(self, cr, uid, ids, context={}):
+ def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
res = []
@@ -168,13 +173,13 @@ class account_analytic_account(osv.osv):
res = self.name_get(cr, uid, ids)
return dict(res)
- def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
+ def _get_company_currency(self, cr, uid, ids, field_name, arg, context=None):
result = {}
for rec in self.browse(cr, uid, ids, context):
result[rec.id] = (rec.company_id.currency_id.id,rec.company_id.currency_id.code) or False
return result
- def _get_account_currency(self, cr, uid, ids, field_name, arg, context={}):
+ def _get_account_currency(self, cr, uid, ids, field_name, arg, context=None):
result=self._get_company_currency(cr, uid, ids, field_name, arg, context={})
return result
@@ -209,19 +214,20 @@ class account_analytic_account(osv.osv):
'currency_id': fields.function(_get_account_currency, method=True, type='many2one', relation='res.currency', string='Account currency', store=True),
}
- def _default_company(self, cr, uid, context={}):
+ def _default_company(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
if user.company_id:
return user.company_id.id
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
+
_defaults = {
- 'type' : lambda *a : 'normal',
+ 'type' : 'normal',
'company_id': _default_company,
- 'state' : lambda *a : 'open',
+ 'state' : 'open',
'user_id' : lambda self, cr, uid, ctx : uid,
'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False),
'contact_id': lambda self, cr, uid, ctx: ctx.get('contact_id', False),
- 'date_start': lambda *a: time.strftime('%Y-%m-%d')
+ 'date_start': time.strftime('%Y-%m-%d')
}
def check_recursion(self, cr, uid, ids, parent=None):
@@ -238,14 +244,13 @@ class account_analytic_account(osv.osv):
vals['code'] = self.pool.get('ir.sequence').get(cr, uid, 'account.analytic.account')
return super(account_analytic_account, self).create(cr, uid, vals, context=context)
- def copy(self, cr, uid, id, default=None, context={}):
+ def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
default['code'] = False
default['line_ids'] = []
return super(account_analytic_account, self).copy(cr, uid, id, default, context=context)
-
def on_change_parent(self, cr, uid, id, parent_id):
if not parent_id:
return {}
@@ -281,9 +286,9 @@ account_analytic_account()
class account_analytic_line(osv.osv):
_name = 'account.analytic.line'
_description = 'Analytic Line'
- def _amount_currency(self, cr, uid, ids, field_name, arg, context={}):
+ def _amount_currency(self, cr, uid, ids, field_name, arg, context=None):
result = {}
- for rec in self.browse(cr, uid, ids, context):
+ for rec in self.browse(cr, uid, ids, context=context):
cmp_cur_id=rec.company_id.currency_id.id
aa_cur_id=rec.account_id.currency_id.id
# Always provide the amount in currency
@@ -298,14 +303,14 @@ class account_analytic_line(osv.osv):
else:
result[rec.id]=rec.amount
return result
-
- def _get_account_currency(self, cr, uid, ids, field_name, arg, context={}):
+
+ def _get_account_currency(self, cr, uid, ids, field_name, arg, context=None):
result = {}
for rec in self.browse(cr, uid, ids, context):
# Always provide second currency
result[rec.id] = (rec.account_id.currency_id.id,rec.account_id.currency_id.code)
return result
- def _get_account_line(self, cr, uid, ids, context={}):
+ def _get_account_line(self, cr, uid, ids, context=None):
aac_ids = {}
for acc in self.pool.get('account.analytic.account').browse(cr, uid, ids):
aac_ids[acc.id] = True
@@ -337,10 +342,12 @@ class account_analytic_line(osv.osv):
}
_defaults = {
- 'date': lambda *a: time.strftime('%Y-%m-%d'),
+ 'date': time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c),
}
+
_order = 'date'
+
account_analytic_line()
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/analytic/i18n/de.po b/addons/analytic/i18n/de.po
new file mode 100644
index 00000000000..e9f672dcf4f
--- /dev/null
+++ b/addons/analytic/i18n/de.po
@@ -0,0 +1,269 @@
+# 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-06-18 10:59+0000\n"
+"PO-Revision-Date: 2010-08-23 06:40+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: analytic
+#: field:account.analytic.account,child_ids:0
+msgid "Child Accounts"
+msgstr "untergeordnete Konten"
+
+#. module: analytic
+#: help:account.analytic.line,amount_currency:0
+msgid ""
+"The amount expressed in the related account currency if not equal to the "
+"company one."
+msgstr "Der Betrag in Fremdwährung, wenn diese von der Hauptwährung abweicht"
+
+#. module: analytic
+#: 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: analytic
+#: field:account.analytic.account,name:0
+msgid "Account Name"
+msgstr "Kontenbezeichnung"
+
+#. module: analytic
+#: help:account.analytic.line,unit_amount:0
+msgid "Specifies the amount of quantity to count."
+msgstr "Definiert die zu zählende Menge"
+
+#. module: analytic
+#: help:account.analytic.line,currency_id:0
+msgid "The related account currency if not equal to the company one."
+msgstr ""
+
+#. module: analytic
+#: model:ir.module.module,description:analytic.module_meta_information
+msgid ""
+"Module for defining analytic accounting object.\n"
+" "
+msgstr ""
+"Diese Module definiert analytische Kostenrechnung\n"
+" "
+
+#. module: analytic
+#: field:account.analytic.account,state:0
+msgid "State"
+msgstr "Status"
+
+#. module: analytic
+#: field:account.analytic.account,user_id:0
+msgid "Account Manager"
+msgstr "Konto Manager"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Draft"
+msgstr "Entwurf"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Closed"
+msgstr "Abgeschlossen"
+
+#. module: analytic
+#: field:account.analytic.account,debit:0
+msgid "Debit"
+msgstr "Soll"
+
+#. module: analytic
+#: help:account.analytic.account,state:0
+msgid ""
+"* When an account is created its in 'Draft' state. "
+" \n"
+"* If any associated partner is there, it can be in 'Open' state. "
+" \n"
+"* If any pending balance is there it can be in 'Pending'. "
+" \n"
+"* And finally when all the transactions are over, it can be in 'Close' "
+"state. \n"
+"* The project can be in either if the states 'Template' and 'Running'.\n"
+" If it is template then we can make projects based on the template projects. "
+"If its in 'Running' state it is a normal project. "
+" \n"
+" If it is to be reviewed then the state is 'Pending'.\n"
+" When the project is completed the state is set to 'Done'."
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,type:0
+msgid "Account Type"
+msgstr ""
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Template"
+msgstr "Vorlage"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Pending"
+msgstr "Unerledigt"
+
+#. module: analytic
+#: model:ir.model,name:analytic.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "Analyse Zeile"
+
+#. module: analytic
+#: field:account.analytic.account,description:0
+#: field:account.analytic.line,name:0
+msgid "Description"
+msgstr "Beschreibung"
+
+#. module: analytic
+#: help:account.analytic.line,amount:0
+msgid ""
+"Calculated by multiplying the quantity and the price given in the Product's "
+"cost price."
+msgstr "Ergebnis aus Menge * Produkt Einstandspreis"
+
+#. module: analytic
+#: field:account.analytic.account,company_id:0
+#: field:account.analytic.line,company_id:0
+msgid "Company"
+msgstr "Mandant"
+
+#. module: analytic
+#: field:account.analytic.account,quantity_max:0
+msgid "Maximum Quantity"
+msgstr "Max. Menge"
+
+#. module: analytic
+#: field:account.analytic.line,user_id:0
+msgid "User"
+msgstr "Benutzer"
+
+#. module: analytic
+#: field:account.analytic.account,parent_id:0
+msgid "Parent Analytic Account"
+msgstr "Übergeordnetes Analyse Konto"
+
+#. module: analytic
+#: field:account.analytic.line,date:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: analytic
+#: field:account.analytic.account,currency_id:0
+#: field:account.analytic.line,currency_id:0
+msgid "Account currency"
+msgstr "Währung des Kontos"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "View"
+msgstr "Ansicht"
+
+#. module: analytic
+#: help:account.analytic.account,quantity_max:0
+msgid "Sets the higher limit of quantity of hours."
+msgstr "Obergrenze der Stunden"
+
+#. module: analytic
+#: field:account.analytic.account,credit:0
+msgid "Credit"
+msgstr "Haben"
+
+#. module: analytic
+#: field:account.analytic.line,amount:0
+msgid "Amount"
+msgstr "Betrag"
+
+#. module: analytic
+#: field:account.analytic.account,contact_id:0
+msgid "Contact"
+msgstr "Ansprechpartner"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Cancelled"
+msgstr "Abgebrochen"
+
+#. module: analytic
+#: field:account.analytic.account,balance:0
+msgid "Balance"
+msgstr "Saldo"
+
+#. module: analytic
+#: field:account.analytic.account,date_start:0
+msgid "Date Start"
+msgstr "Startdatum"
+
+#. module: analytic
+#: field:account.analytic.account,quantity:0
+#: field:account.analytic.line,unit_amount:0
+msgid "Quantity"
+msgstr "Menge"
+
+#. module: analytic
+#: field:account.analytic.account,date:0
+msgid "Date End"
+msgstr "Enddatum"
+
+#. module: analytic
+#: field:account.analytic.account,code:0
+msgid "Account Code"
+msgstr "Kontonummer"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: analytic
+#: field:account.analytic.account,complete_name:0
+msgid "Full Account Name"
+msgstr "vollständiger Kontoname"
+
+#. module: analytic
+#: field:account.analytic.line,account_id:0
+#: model:ir.model,name:analytic.model_account_analytic_account
+#: model:ir.module.module,shortdesc:analytic.module_meta_information
+msgid "Analytic Account"
+msgstr "Analytisches Konto"
+
+#. module: analytic
+#: field:account.analytic.account,company_currency_id:0
+msgid "Currency"
+msgstr "Währung"
+
+#. module: analytic
+#: field:account.analytic.line,amount_currency:0
+msgid "Amount currency"
+msgstr "Betrag in Währung"
+
+#. module: analytic
+#: field:account.analytic.account,partner_id:0
+msgid "Associated Partner"
+msgstr "Zugehöriger Partner"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Open"
+msgstr "Offen"
+
+#. module: analytic
+#: field:account.analytic.account,line_ids:0
+msgid "Analytic Entries"
+msgstr "Analytische Buchungen"
diff --git a/addons/analytic/i18n/it.po b/addons/analytic/i18n/it.po
new file mode 100644
index 00000000000..0d94a043b00
--- /dev/null
+++ b/addons/analytic/i18n/it.po
@@ -0,0 +1,284 @@
+# Italian 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-06-18 10:59+0000\n"
+"PO-Revision-Date: 2010-08-17 10:07+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Italian \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-18 10:34+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: analytic
+#: field:account.analytic.account,child_ids:0
+msgid "Child Accounts"
+msgstr "Conto figlio"
+
+#. module: analytic
+#: help:account.analytic.line,amount_currency:0
+msgid ""
+"The amount expressed in the related account currency if not equal to the "
+"company one."
+msgstr ""
+"L'importo espresso nella valuta del conto non è uguale a quella della "
+"Compagnia"
+
+#. module: analytic
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Il nome dell'oggetto deve iniziare per x_ e non deve contenere caratteri "
+"speciali!"
+
+#. module: analytic
+#: field:account.analytic.account,name:0
+msgid "Account Name"
+msgstr "Nome del conto"
+
+#. module: analytic
+#: help:account.analytic.line,unit_amount:0
+msgid "Specifies the amount of quantity to count."
+msgstr "Specifica la quantità da sommare"
+
+#. module: analytic
+#: help:account.analytic.line,currency_id:0
+msgid "The related account currency if not equal to the company one."
+msgstr "La relativa valuta del conto non è uguale a quella della Compagnia"
+
+#. module: analytic
+#: model:ir.module.module,description:analytic.module_meta_information
+msgid ""
+"Module for defining analytic accounting object.\n"
+" "
+msgstr ""
+"Modulo per definire gli oggetti dei conti analitici\n"
+" "
+
+#. module: analytic
+#: field:account.analytic.account,state:0
+msgid "State"
+msgstr "Stato"
+
+#. module: analytic
+#: field:account.analytic.account,user_id:0
+msgid "Account Manager"
+msgstr "Gestore Conti"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Draft"
+msgstr "Bozza"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Closed"
+msgstr "Chiuso"
+
+#. module: analytic
+#: field:account.analytic.account,debit:0
+msgid "Debit"
+msgstr "Debito"
+
+#. module: analytic
+#: help:account.analytic.account,state:0
+msgid ""
+"* When an account is created its in 'Draft' state. "
+" \n"
+"* If any associated partner is there, it can be in 'Open' state. "
+" \n"
+"* If any pending balance is there it can be in 'Pending'. "
+" \n"
+"* And finally when all the transactions are over, it can be in 'Close' "
+"state. \n"
+"* The project can be in either if the states 'Template' and 'Running'.\n"
+" If it is template then we can make projects based on the template projects. "
+"If its in 'Running' state it is a normal project. "
+" \n"
+" If it is to be reviewed then the state is 'Pending'.\n"
+" When the project is completed the state is set to 'Done'."
+msgstr ""
+"* Quando un conto è creato è nello stato \"Draft\". "
+" \n"
+"* Se c'è qualche partner associato, puà essere nello stato \"Open\".\n"
+"* Se c'è qualche pendenza può essere in \"Pending\".\n"
+"* E, per conlcudere, quando tutte le transazioni sono finite, può essere "
+"nello stato \"Closed\".\n"
+"* Il progetto può essere in entrambe gli stati \"Template\" e \"Running\".\n"
+"Se è nello stato template, allora possiamo creare progetti basati su di "
+"esso. Se è in \"Running\" state è in progetto normale. Se deve essere "
+"revisionato allora lo stato è \"Pending\".\n"
+"Quando il progetto è completato lo stato è \"Done\"."
+
+#. module: analytic
+#: field:account.analytic.account,type:0
+msgid "Account Type"
+msgstr "Tipo di conto"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Template"
+msgstr "Modello"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Pending"
+msgstr "In sospeso"
+
+#. module: analytic
+#: model:ir.model,name:analytic.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "Linea conto analitico"
+
+#. module: analytic
+#: field:account.analytic.account,description:0
+#: field:account.analytic.line,name:0
+msgid "Description"
+msgstr "Descrizione"
+
+#. module: analytic
+#: help:account.analytic.line,amount:0
+msgid ""
+"Calculated by multiplying the quantity and the price given in the Product's "
+"cost price."
+msgstr ""
+"Calcolato multiplicando la quantità e il prezzo dato nel campo "
+"\"costo/prezzo del prodotto\""
+
+#. module: analytic
+#: field:account.analytic.account,company_id:0
+#: field:account.analytic.line,company_id:0
+msgid "Company"
+msgstr "Compagnia"
+
+#. module: analytic
+#: field:account.analytic.account,quantity_max:0
+msgid "Maximum Quantity"
+msgstr "Quantità massima"
+
+#. module: analytic
+#: field:account.analytic.line,user_id:0
+msgid "User"
+msgstr "Utente"
+
+#. module: analytic
+#: field:account.analytic.account,parent_id:0
+msgid "Parent Analytic Account"
+msgstr "Conto Analitico padre"
+
+#. module: analytic
+#: field:account.analytic.line,date:0
+msgid "Date"
+msgstr "Data"
+
+#. module: analytic
+#: field:account.analytic.account,currency_id:0
+#: field:account.analytic.line,currency_id:0
+msgid "Account currency"
+msgstr "Valuta del Conto"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "View"
+msgstr "Visualizza"
+
+#. module: analytic
+#: help:account.analytic.account,quantity_max:0
+msgid "Sets the higher limit of quantity of hours."
+msgstr "Imposta il limite superiore della quantità di ore"
+
+#. module: analytic
+#: field:account.analytic.account,credit:0
+msgid "Credit"
+msgstr "Credito"
+
+#. module: analytic
+#: field:account.analytic.line,amount:0
+msgid "Amount"
+msgstr "Importo"
+
+#. module: analytic
+#: field:account.analytic.account,contact_id:0
+msgid "Contact"
+msgstr "Contatto"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Cancelled"
+msgstr "Cancellato"
+
+#. module: analytic
+#: field:account.analytic.account,balance:0
+msgid "Balance"
+msgstr "Saldo"
+
+#. module: analytic
+#: field:account.analytic.account,date_start:0
+msgid "Date Start"
+msgstr "Data Inizio"
+
+#. module: analytic
+#: field:account.analytic.account,quantity:0
+#: field:account.analytic.line,unit_amount:0
+msgid "Quantity"
+msgstr "Quantità"
+
+#. module: analytic
+#: field:account.analytic.account,date:0
+msgid "Date End"
+msgstr "Data Fine"
+
+#. module: analytic
+#: field:account.analytic.account,code:0
+msgid "Account Code"
+msgstr "Codifica Conto"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "Normal"
+msgstr "Normale"
+
+#. module: analytic
+#: field:account.analytic.account,complete_name:0
+msgid "Full Account Name"
+msgstr "Nome Conto completa"
+
+#. module: analytic
+#: field:account.analytic.line,account_id:0
+#: model:ir.model,name:analytic.model_account_analytic_account
+#: model:ir.module.module,shortdesc:analytic.module_meta_information
+msgid "Analytic Account"
+msgstr "Conto Analitico"
+
+#. module: analytic
+#: field:account.analytic.account,company_currency_id:0
+msgid "Currency"
+msgstr "Valuta"
+
+#. module: analytic
+#: field:account.analytic.line,amount_currency:0
+msgid "Amount currency"
+msgstr "Importo valuta"
+
+#. module: analytic
+#: field:account.analytic.account,partner_id:0
+msgid "Associated Partner"
+msgstr "Partner associato"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Open"
+msgstr "Aperto"
+
+#. module: analytic
+#: field:account.analytic.account,line_ids:0
+msgid "Analytic Entries"
+msgstr "Voci Conto Analitico"
diff --git a/addons/analytic/security/analytic_security.xml b/addons/analytic/security/analytic_security.xml
new file mode 100644
index 00000000000..a382380d962
--- /dev/null
+++ b/addons/analytic/security/analytic_security.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ analytic company rule
+
+
+ [('company_id','=',user.company_id.id)]
+
+
+
diff --git a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml
index 3288ca9daf8..39be4c76a23 100644
--- a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml
+++ b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml
@@ -35,7 +35,6 @@
-
diff --git a/addons/analytic_journal_billing_rate/i18n/it.po b/addons/analytic_journal_billing_rate/i18n/it.po
index 800c261112b..0a128b7cb77 100644
--- a/addons/analytic_journal_billing_rate/i18n/it.po
+++ b/addons/analytic_journal_billing_rate/i18n/it.po
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 08:33+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-17 09: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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_journal_billing_rate
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "XML non valido per Visualizzazione Architettura!"
+msgstr "XML non valido per Visualizzare l'architettura!"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
-msgstr ""
+msgstr "Giornale conti analitici"
#. module: analytic_journal_billing_rate
#: constraint:ir.model:0
@@ -37,29 +37,29 @@ msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
+msgstr "Tasso di fatturazione per Giornale per questo Conto Analitico"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
msgid "Analytic Account"
-msgstr ""
+msgstr "Conto analitico"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
-msgstr ""
+msgstr "Tabella di relazione tra Giornali e tassi di fatturazione"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
-msgstr ""
+msgstr "Tasso di fatturazione diviso per Giornale"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
msgid "Analytic Journal Billing Rate"
-msgstr ""
+msgstr "Giornale Conti Analitici Tasso di fatturazione"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
-msgstr ""
+msgstr "Tasso di fatturazione"
diff --git a/addons/analytic_journal_billing_rate/i18n/tr.po b/addons/analytic_journal_billing_rate/i18n/tr.po
index b850089e14c..f2418771b3c 100644
--- a/addons/analytic_journal_billing_rate/i18n/tr.po
+++ b/addons/analytic_journal_billing_rate/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-11 05:03+0000\n"
+"PO-Revision-Date: 2010-08-29 09:43+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_journal_billing_rate
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index 2f5152faea6..0bb9afc3386 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.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 .
#
##############################################################################
@@ -54,7 +54,7 @@ class hr_analytic_timesheet(osv.osv):
# Look in account, if no value for the user => look in parent until there is no more parent to look
# Take the first found... if nothing found => return False
def _get_related_user_account_recursiv(self, cr, uid, user_id, account_id):
-
+
temp=self.pool.get('analytic_user_funct_grid').search(cr, uid, [('user_id', '=', user_id),('account_id', '=', account_id) ])
account=self.pool.get('account.analytic.account').browse(cr, uid, account_id)
if temp:
@@ -64,21 +64,19 @@ class hr_analytic_timesheet(osv.osv):
return self._get_related_user_account_recursiv(cr, uid, user_id, account.parent_id.id)
else:
return False
-
-
+
+
def on_change_account_id(self, cr, uid, ids, account_id, user_id=False, unit_amount=0):
- #{'value': {'to_invoice': False, 'amount': (-162.0,), 'product_id': 7, 'general_account_id': (5,)}}
res = {}
if not (account_id):
#avoid a useless call to super
- return res
+ return res
if not (user_id):
return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids, account_id)
#get the browse record related to user_id and account_id
temp = self._get_related_user_account_recursiv(cr, uid, user_id, account_id)
- # temp = self.pool.get('analytic_user_funct_grid').search(cr, uid, [('user_id', '=', user_id),('account_id', '=', account_id) ])
if not temp:
#if there isn't any record for this user_id and account_id
return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids, account_id)
@@ -100,9 +98,9 @@ class hr_analytic_timesheet(osv.osv):
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
- amount_unit = self.on_change_unit_amount(cr, uid, ids,
+ amount_unit = self.on_change_unit_amount(cr, uid, ids,
r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
-
+
amount = unit_amount * amount_unit
res ['value']['amount']= - round(amount, 2)
res ['value']['general_account_id']= a
@@ -112,19 +110,18 @@ class hr_analytic_timesheet(osv.osv):
res = {}
if not (user_id):
#avoid a useless call to super
- return res
+ return res
#get the old values from super
res = super(hr_analytic_timesheet, self).on_change_user_id(cr, uid, ids, user_id)
if account_id:
#get the browse record related to user_id and account_id
- # temp = self.pool.get('analytic_user_funct_grid').search(cr, uid, [('user_id', '=', user_id),('account_id', '=', account_id) ])
temp = self._get_related_user_account_recursiv(cr, uid, user_id, account_id)
if temp:
#add the value from the new relation analytic_user_funct_grid
r = self.pool.get('analytic_user_funct_grid').browse(cr, uid, temp)[0]
- res['value']['product_id'] = r.product_id.id
+ res['value']['product_id'] = r.product_id.id
#the change of product has to impact the amount, uom and general_account_id
a = r.product_id.product_tmpl_id.property_account_expense.id
@@ -136,9 +133,9 @@ class hr_analytic_timesheet(osv.osv):
'for this product: "%s" (id:%d)') % \
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
- amount_unit = self.on_change_unit_amount(cr, uid, ids,
+ amount_unit = self.on_change_unit_amount(cr, uid, ids,
r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
-
+
amount = unit_amount * amount_unit
res ['value']['amount']= - round(amount, 2)
res ['value']['general_account_id']= a
diff --git a/addons/analytic_user_function/i18n/tr.po b/addons/analytic_user_function/i18n/tr.po
index 15f03fe170c..8078b09134e 100644
--- a/addons/analytic_user_function/i18n/tr.po
+++ b/addons/analytic_user_function/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:43+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_user_function
diff --git a/addons/association/profile_association.xml b/addons/association/profile_association.xml
index 88a8c2940d0..032005010e0 100644
--- a/addons/association/profile_association.xml
+++ b/addons/association/profile_association.xml
@@ -9,7 +9,7 @@
@@ -63,7 +63,7 @@
-
+
diff --git a/addons/auction/__openerp__.py b/addons/auction/__openerp__.py
index 75b50113028..69fef0748c4 100644
--- a/addons/auction/__openerp__.py
+++ b/addons/auction/__openerp__.py
@@ -43,14 +43,11 @@
'init_xml': ['auction_sequence.xml', 'auction_data.xml'],
'update_xml': [
'security/ir.model.access.csv',
- # 'wizard/auction_lots_able_view.xml',
- # 'wizard/auction_lots_enable_view.xml',
'wizard/auction_lots_make_invoice_buyer_view.xml',
'wizard/auction_lots_make_invoice_view.xml',
'wizard/auction_taken_view.xml',
'wizard/auction_lots_auction_move_view.xml',
'wizard/auction_pay_buy_view.xml',
- #'wizard/auction_payer_sel_view.xml',
'wizard/auction_lots_sms_send_view.xml',
'wizard/auction_catalog_flagey_view.xml',
'wizard/auction_lots_buyer_map_view.xml',
@@ -59,12 +56,11 @@
'report/report_auction_view.xml',
'auction_wizard.xml',
'board_auction_view.xml',
- # 'board_auction_manager_view.xml',
],
'demo_xml': ['auction_demo.xml','board_auction_demo.xml'],
'test': ['test/auction.yml'],
-
+
'installable': True,
'active': False,
'certificate': '0039333102717',
diff --git a/addons/auction/auction.py b/addons/auction/auction.py
index f6aebbb5077..5ea2441e6fd 100644
--- a/addons/auction/auction.py
+++ b/addons/auction/auction.py
@@ -35,10 +35,10 @@ import tools
class auction_artists(osv.osv):
_name = "auction.artists"
_columns = {
- 'name': fields.char('Artist/Author Name', size=64, required=True),
- 'pseudo': fields.char('Pseudo', size=64),
- 'birth_death_dates':fields.char('Birth / Death dates', size=64),
- 'biography': fields.text('Biography'),
+ 'name': fields.char('Artist/Author Name', size=64, required=True),
+ 'pseudo': fields.char('Pseudo', size=64),
+ 'birth_death_dates':fields.char('Birth / Death dates', size=64),
+ 'biography': fields.text('Biography'),
}
auction_artists()
@@ -49,10 +49,10 @@ class auction_dates(osv.osv):
"""Auction Dates"""
_name = "auction.dates"
_description=__doc__
-
+
def _adjudication_get(self, cr, uid, ids, prop, unknow_none, unknow_dict):
res={}
- total = 0.0
+ total = 0.0
lots_obj = self.pool.get('auction.lots')
for auction in self.browse(cr, uid, ids):
lots_ids = lots_obj.search(cr, uid, [('auction_id', '=', auction.id)])
@@ -71,27 +71,27 @@ class auction_dates(osv.osv):
return name
_columns = {
- 'name': fields.char('Auction Name', size=64, required=True),
- 'expo1': fields.date('First Exposition Day', required=True, help="Beginning Exposition Date For Auction"),
- 'expo2': fields.date('Last Exposition Day', required=True, help="Last Exposition Date For Auction"),
- 'auction1': fields.date('First Auction Day', required=True, help="Start Date Of Auction"),
- 'auction2': fields.date('Last Auction Day', required=True, help="End Date Of Auction"),
- 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account Journal For Buyer"),
- 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account Journal For Seller"),
- 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account Tax For Buyer"),
- 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account Tax For Seller"),
- 'acc_income': fields.many2one('account.account', 'Income Account', required=True),
- 'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
- 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True),
- 'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True,
- help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
- 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
+ 'name': fields.char('Auction Name', size=64, required=True),
+ 'expo1': fields.date('First Exposition Day', required=True, help="Beginning Exposition Date For Auction"),
+ 'expo2': fields.date('Last Exposition Day', required=True, help="Last Exposition Date For Auction"),
+ 'auction1': fields.date('First Auction Day', required=True, help="Start Date Of Auction"),
+ 'auction2': fields.date('Last Auction Day', required=True, help="End Date Of Auction"),
+ 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account Journal For Buyer"),
+ 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account Journal For Seller"),
+ 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account Tax For Buyer"),
+ 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account Tax For Seller"),
+ 'acc_income': fields.many2one('account.account', 'Income Account', required=True),
+ 'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
+ 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True),
+ 'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True,
+ help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
+ 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
}
-
+
_defaults = {
- 'state': lambda *a: 'draft',
+ 'state': lambda *a: 'draft',
}
-
+
_order = "auction1 desc"
def close(self, cr, uid, ids, context=None):
@@ -112,7 +112,7 @@ class auction_dates(osv.osv):
new_seller_invoice = lots_obj.seller_trans_create(cr, uid, lots_ids2, {})
self.write(cr, uid, ids, {'state': 'closed'}) #close the auction
return True
-
+
auction_dates()
#----------------------------------------------------------
@@ -120,27 +120,27 @@ auction_dates()
#----------------------------------------------------------
class auction_deposit(osv.osv):
"""Auction Deposit Border"""
-
+
_name = "auction.deposit"
_description=__doc__
_order = "id desc"
_columns = {
- 'transfer' : fields.boolean('Transfer'),
- 'name': fields.char('Depositer Inventory', size=64, required=True),
- 'partner_id': fields.many2one('res.partner', 'Seller', required=True, change_default=True),
- 'date_dep': fields.date('Deposit date', required=True),
- 'method': fields.selection((('keep', 'Keep until sold'), ('decease', 'Decrease limit of 10%'), ('contact', 'Contact the Seller')), 'Withdrawned method', required=True),
- 'tax_id': fields.many2one('account.tax', 'Expenses'),
- 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
- 'info': fields.char('Description', size=64),
- 'lot_id': fields.one2many('auction.lots', 'bord_vnd_id', 'Objects'),
- 'specific_cost_ids': fields.one2many('auction.deposit.cost', 'deposit_id', 'Specific Costs'),
- 'total_neg': fields.boolean('Allow Negative Amount'),
+ 'transfer' : fields.boolean('Transfer'),
+ 'name': fields.char('Depositer Inventory', size=64, required=True),
+ 'partner_id': fields.many2one('res.partner', 'Seller', required=True, change_default=True),
+ 'date_dep': fields.date('Deposit date', required=True),
+ 'method': fields.selection((('keep', 'Keep until sold'), ('decease', 'Decrease limit of 10%'), ('contact', 'Contact the Seller')), 'Withdrawned method', required=True),
+ 'tax_id': fields.many2one('account.tax', 'Expenses'),
+ 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
+ 'info': fields.char('Description', size=64),
+ 'lot_id': fields.one2many('auction.lots', 'bord_vnd_id', 'Objects'),
+ 'specific_cost_ids': fields.one2many('auction.deposit.cost', 'deposit_id', 'Specific Costs'),
+ 'total_neg': fields.boolean('Allow Negative Amount'),
}
_defaults = {
- 'method': lambda *a: 'keep',
- 'total_neg': lambda *a: False,
- 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.deposit'),
+ 'method': lambda *a: 'keep',
+ 'total_neg': lambda *a: False,
+ 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.deposit'),
}
auction_deposit()
@@ -149,16 +149,16 @@ auction_deposit()
# (Specific) Deposit Costs
#----------------------------------------------------------
class auction_deposit_cost(osv.osv):
-
+
"""Auction Deposit Cost"""
-
+
_name = 'auction.deposit.cost'
_description=__doc__
_columns = {
- 'name': fields.char('Cost Name', required=True, size=64),
- 'amount': fields.float('Amount'),
- 'account': fields.many2one('account.account', 'Destination Account', required=True),
- 'deposit_id': fields.many2one('auction.deposit', 'Deposit'),
+ 'name': fields.char('Cost Name', required=True, size=64),
+ 'amount': fields.float('Amount'),
+ 'account': fields.many2one('account.account', 'Destination Account', required=True),
+ 'deposit_id': fields.many2one('auction.deposit', 'Deposit'),
}
auction_deposit_cost()
@@ -166,16 +166,16 @@ auction_deposit_cost()
# Lots Categories
#----------------------------------------------------------
class aie_category(osv.osv):
-
+
_name="aie.category"
_order = "name"
_columns={
- 'name': fields.char('Name', size=64, required=True),
- 'code':fields.char('Code', size=64),
- 'parent_id': fields.many2one('aie.category', 'Parent aie Category', ondelete='cascade'),
- 'child_ids': fields.one2many('aie.category', 'parent_id', help="Childs aie category")
+ 'name': fields.char('Name', size=64, required=True),
+ 'code':fields.char('Code', size=64),
+ 'parent_id': fields.many2one('aie.category', 'Parent aie Category', ondelete='cascade'),
+ 'child_ids': fields.one2many('aie.category', 'parent_id', help="Childs aie category")
}
-
+
def name_get(self, cr, uid, ids, context=None):
if not context:
context = {}
@@ -189,22 +189,22 @@ class aie_category(osv.osv):
name = record['parent_id'][1] + ' / ' + name
res.append((record['id'], name))
return res
-
-aie_category()
-
+
+aie_category()
+
class auction_lot_category(osv.osv):
"""Auction Lots Category"""
-
+
_name = 'auction.lot.category'
_description=__doc__
_columns = {
- 'name': fields.char('Category Name', required=True, size=64),
- 'priority': fields.float('Priority'),
- 'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the auction lot category without removing it."),
- 'aie_categ': fields.many2one('aie.category', 'Category', ondelete='cascade'),
+ 'name': fields.char('Category Name', required=True, size=64),
+ 'priority': fields.float('Priority'),
+ 'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the auction lot category without removing it."),
+ 'aie_categ': fields.many2one('aie.category', 'Category', ondelete='cascade'),
}
_defaults = {
- 'active' : lambda *a: 1,
+ 'active' : lambda *a: 1,
}
auction_lot_category()
@@ -217,11 +217,11 @@ def _type_get(self, cr, uid, context=None):
obj = self.pool.get('auction.lot.category')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['name'], context)
- res = [(r['name'], r['name']) for r in res]
- return res
+ res = [(r['name'], r['name']) for r in res]
+ return res
class auction_lots(osv.osv):
-
+
"""Auction Object"""
_name = "auction.lots"
_order = "obj_num,lot_num,id"
@@ -231,7 +231,7 @@ class auction_lots(osv.osv):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'unsold'})
-
+
def button_taken_away(self, cr, uid, ids, context=None):
if not context:
context={}
@@ -256,7 +256,7 @@ class auction_lots(osv.osv):
"""
if not context:
context = {}
-
+
res = {}
account_analytic_line_obj = self.pool.get('account.analytic.line')
lots = self.browse(cr, uid, ids, context)
@@ -289,24 +289,24 @@ class auction_lots(osv.osv):
elif name == "gross_revenue":
if lot.auction_id:
result = lot.buyer_price - lot.seller_price
-
+
elif name == "net_revenue":
if lot.auction_id:
result = lot.buyer_price - lot.seller_price - lot.costs
-
+
elif name == "gross_margin":
if ((lot.obj_price==0) and (lot.state=='draft')):
amount = lot.lot_est1
- else:
+ else:
amount = lot.obj_price
if amount > 0:
result = (lot.gross_revenue * 100) / amount
result = round(result,2)
-
+
elif name == "net_margin":
if ((lot.obj_price==0) and (lot.state=='draft')):
amount = lot.lot_est1
- else:
+ else:
amount = lot.obj_price
if amount > 0:
result = (lot.net_revenue * 100) / amount
@@ -320,8 +320,8 @@ class auction_lots(osv.osv):
auct_id = lot.auction_id.id
lot_count = self.search(cr, uid, [('auction_id', '=', auct_id)], count=True)
line_ids = account_analytic_line_obj.search(cr, uid, [
- ('account_id', '=', lot.auction_id.account_analytic_id.id),
- ('journal_id', '<>', lot.auction_id.journal_id.id),
+ ('account_id', '=', lot.auction_id.account_analytic_id.id),
+ ('journal_id', '<>', lot.auction_id.journal_id.id),
('journal_id', '<>', lot.auction_id.journal_seller_id.id)])
indir_cost = lot.bord_vnd_id.specific_cost_ids
for r in lot.bord_vnd_id.specific_cost_ids:
@@ -330,20 +330,20 @@ class auction_lots(osv.osv):
if line.amount:
som -= line.amount
result = som/lot_count
-
+
elif name=="paid_ach":
result = False
if lot.ach_inv_id and lot.ach_inv_id.state == 'paid':
result = True
-
+
elif name=="paid_vnd":
result = False
if lot.sel_inv_id and lot.sel_inv_id.state == 'paid':
- result = True
-
+ result = True
+
res[lot.id][name] = result
-
-
+
+
return res
def onchange_obj_ret(self, cr, uid, ids, obj_ret, context=None):
@@ -354,66 +354,66 @@ class auction_lots(osv.osv):
return {}
_columns = {
- 'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'),
- 'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction For Object"),
- 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide Deposit Information: seller, Withdrawned Method, Object, Deposit Costs"),
- 'name': fields.char('Title', size=64, required=True, help='Auction Object Name'),
- 'name2': fields.char('Short Description (2)', size=64),
- 'lot_type': fields.selection(_type_get, 'Object category', size=64),
- 'author_right': fields.many2one('account.tax', 'Author rights', help="Account Tax For Author Commission"),
- 'lot_est1': fields.float('Minimum Estimation', help="Minimum Estimate Price"),
- 'lot_est2': fields.float('Maximum Estimation', help="Maximum Estimate Price"),
- 'lot_num': fields.integer('List Number', required=True, select=1, help="List Number In Depositer Inventory"),
- 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
- 'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
- 'lot_local':fields.char('Location', size=64, help="Auction Location"),
- 'artist_id':fields.many2one('auction.artists', 'Artist/Author'),
- 'artist2_id':fields.many2one('auction.artists', 'Artist/Author2'),
- 'important':fields.boolean('To be Emphatized'),
- 'product_id':fields.many2one('product.product', 'Product', required=True),
- 'obj_desc': fields.text('Object Description'),
- 'obj_num': fields.integer('Catalog Number'),
- 'obj_ret': fields.float('Price retired', help="Object Ret"),
- 'obj_comm': fields.boolean('Commission'),
- 'obj_price': fields.float('Adjudication price', help="Object Price"),
- 'ach_avance': fields.float('Buyer Advance'),
- 'ach_login': fields.char('Buyer Username', size=64),
+ 'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'),
+ 'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction For Object"),
+ 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide Deposit Information: seller, Withdrawned Method, Object, Deposit Costs"),
+ 'name': fields.char('Title', size=64, required=True, help='Auction Object Name'),
+ 'name2': fields.char('Short Description (2)', size=64),
+ 'lot_type': fields.selection(_type_get, 'Object category', size=64),
+ 'author_right': fields.many2one('account.tax', 'Author rights', help="Account Tax For Author Commission"),
+ 'lot_est1': fields.float('Minimum Estimation', help="Minimum Estimate Price"),
+ 'lot_est2': fields.float('Maximum Estimation', help="Maximum Estimate Price"),
+ 'lot_num': fields.integer('List Number', required=True, select=1, help="List Number In Depositer Inventory"),
+ 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
+ 'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
+ 'lot_local':fields.char('Location', size=64, help="Auction Location"),
+ 'artist_id':fields.many2one('auction.artists', 'Artist/Author'),
+ 'artist2_id':fields.many2one('auction.artists', 'Artist/Author2'),
+ 'important':fields.boolean('To be Emphatized'),
+ 'product_id':fields.many2one('product.product', 'Product', required=True),
+ 'obj_desc': fields.text('Object Description'),
+ 'obj_num': fields.integer('Catalog Number'),
+ 'obj_ret': fields.float('Price retired', help="Object Ret"),
+ 'obj_comm': fields.boolean('Commission'),
+ 'obj_price': fields.float('Adjudication price', help="Object Price"),
+ 'ach_avance': fields.float('Buyer Advance'),
+ 'ach_login': fields.char('Buyer Username', size=64),
'ach_uid': fields.many2one('res.partner', 'Buyer'),
- 'seller_id': fields.related('bord_vnd_id','partner_id', type='many2one', relation='res.partner', string='Seller', readonly=True),
- 'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, This field is Marked as True"),
- 'is_ok': fields.boolean('Buyer\'s payment', help="When Buyer Pay For Bank statement', This field is Marked"),
- 'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}),
- 'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}),
- 'vnd_lim': fields.float('Seller limit'),
- 'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
- 'image': fields.binary('Image', help="Object Image"),
- 'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', This field is selected as True."),
- 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', This field is selected as True."),
+ 'seller_id': fields.related('bord_vnd_id','partner_id', type='many2one', relation='res.partner', string='Seller', readonly=True),
+ 'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, This field is Marked as True"),
+ 'is_ok': fields.boolean('Buyer\'s payment', help="When Buyer Pay For Bank statement', This field is Marked"),
+ 'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}),
+ 'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}),
+ 'vnd_lim': fields.float('Seller limit'),
+ 'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
+ 'image': fields.binary('Image', help="Object Image"),
+ 'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', This field is selected as True."),
+ 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', This field is selected as True."),
'state': fields.selection((
- ('draft', 'Draft'),
- ('unsold', 'Unsold'),
- ('paid', 'Paid'),
- ('sold', 'Sold'),
- ('taken_away', 'Taken away')), 'State', required=True, readonly=True,
+ ('draft', 'Draft'),
+ ('unsold', 'Unsold'),
+ ('paid', 'Paid'),
+ ('sold', 'Sold'),
+ ('taken_away', 'Taken away')), 'State', required=True, readonly=True,
help=' * The \'Draft\' state is used when a object is encoding as a new object. \
\n* The \'Unsold\' state is used when object does not sold for long time, user can also set it as draft state after unsold. \
\n* The \'Paid\' state is used when user pay for the object \
- \n* The \'Sold\' state is used when user buy the object.'),
- 'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price", help="Buyer Price"),
- 'seller_price': fields.function(_getprice, method=True, string='Seller price', store=True, multi="seller_price", help="Seller Price"),
- 'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"),
- 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"),
- 'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Deposit cost"),
- 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement Line For Given Buyer"),
- 'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"),
- 'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"),
+ \n* The \'Sold\' state is used when user buy the object.'),
+ 'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price", help="Buyer Price"),
+ 'seller_price': fields.function(_getprice, method=True, string='Seller price', store=True, multi="seller_price", help="Seller Price"),
+ 'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"),
+ 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"),
+ 'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Deposit cost"),
+ 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement Line For Given Buyer"),
+ 'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"),
+ 'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"),
}
_defaults = {
- 'state':lambda *a: 'draft',
- 'lot_num':lambda *a:1,
- 'is_ok': lambda *a: False,
+ 'state':lambda *a: 'draft',
+ 'lot_num':lambda *a:1,
+ 'is_ok': lambda *a: False,
}
-
+
def name_get(self, cr, user, ids, context=None):
if not context:
context={}
@@ -467,7 +467,7 @@ class auction_lots(osv.osv):
amount+=t['amount']
amount_total['value']= amount
amount_total['amount']= amount
-
+
return amount_total
@@ -481,7 +481,7 @@ class auction_lots(osv.osv):
tax_cost_ids.append(border_id.tax_id)
elif lot.auction_id and lot.auction_id.seller_costs:
tax_cost_ids += lot.auction_id.seller_costs
-
+
tax_costs = self.pool.get('account.tax').compute_all(cr, uid, tax_cost_ids, lot.obj_price, 1)['taxes']
# delete useless keys from the costs computed by the tax object... this is useless but cleaner...
for cost in tax_costs:
@@ -497,13 +497,13 @@ class auction_lots(osv.osv):
#FIXME:the string passes have lot 'should go through the system translations.
obj_price_wh_costs = reduce(lambda x, y: x + y['amount'], tax_costs, lot.obj_price)
if obj_price_wh_costs < lot.vnd_lim:
- costs.append({ 'type': 1,
- 'id': lot.obj_num,
- 'name': 'Remise lot '+ str(lot.obj_num),
+ costs.append({ 'type': 1,
+ 'id': lot.obj_num,
+ 'name': 'Remise lot '+ str(lot.obj_num),
'amount': lot.vnd_lim - obj_price_wh_costs}
)
return costs
-
+
def compute_seller_costs(self, cr, uid, ids, manual_only=False):
lots = self.browse(cr, uid, ids)
costs = []
@@ -543,9 +543,9 @@ class auction_lots(osv.osv):
# sum remise limite net and ristourne
def compute_seller_costs_summed(self, cr, uid, ids): #ach_pay_id
-
+
"""This Fuction sum Net remittance limit and refund"""
-
+
taxes = self.compute_seller_costs(cr, uid, ids)
taxes_summed = {}
for tax in taxes:
@@ -567,7 +567,7 @@ class auction_lots(osv.osv):
return taxes_summed.values()
def buyer_proforma(self, cr, uid, ids, context=None):
-
+
if not context:
context={}
invoices = {}
@@ -589,11 +589,10 @@ class auction_lots(osv.osv):
if not invoice_addr_id:
raise orm.except_orm(_('No Invoice Address'), _('The Buyer "%s" has no Invoice Address.') % (contact_addr_id,))
inv = {
- 'name': 'Auction proforma:' +lot.name,
- 'journal_id': lot.auction_id.journal_id.id,
- 'partner_id': partner_ref,
- 'type': 'out_invoice',
- # 'state':'proforma',
+ 'name': 'Auction proforma:' +lot.name,
+ 'journal_id': lot.auction_id.journal_id.id,
+ 'partner_id': partner_ref,
+ 'type': 'out_invoice',
}
inv.update(inv_ref.onchange_partner_id(cr, uid, [], 'out_invoice', partner_ref)['value'])
inv['account_id'] = inv['account_id'] and inv['account_id'][0]
@@ -618,7 +617,7 @@ class auction_lots(osv.osv):
'price_unit': lot.obj_price,
}
inv_line_obj.create(cr, uid, inv_line, context)
- inv_ref.button_compute(cr, uid, invoice.values())
+ inv_ref.button_compute(cr, uid, invoices.values())
wf_service.trg_validate(uid, 'account.invoice', inv_id, 'invoice_proforma2', cr)
return invoices.values()
@@ -648,10 +647,10 @@ class auction_lots(osv.osv):
contact_addr_id = res['contact']
invoice_addr_id = res['invoice']
inv = {
- 'name': 'Auction:' +lot.name,
- 'journal_id': lot.auction_id.journal_seller_id.id,
- 'partner_id': lot.bord_vnd_id.partner_id.id,
- 'type': 'in_invoice',
+ 'name': 'Auction:' +lot.name,
+ 'journal_id': lot.auction_id.journal_seller_id.id,
+ 'partner_id': lot.bord_vnd_id.partner_id.id,
+ 'type': 'in_invoice',
}
inv.update(inv_ref.onchange_partner_id(cr, uid, [], 'in_invoice', lot.bord_vnd_id.partner_id.id)['value'])
inv_id = inv_ref.create(cr, uid, inv, context)
@@ -666,14 +665,14 @@ class auction_lots(osv.osv):
taxes += map(lambda x: x.id, lot.auction_id.seller_costs)
inv_line= {
- 'invoice_id': inv_id,
- 'quantity': 1,
- 'product_id': lot.product_id.id,
- 'name': '['+str(lot.obj_num)+'] '+lot.auction_id.name,
- 'invoice_line_tax_id': [(6, 0, taxes)],
- 'account_analytic_id': lot.auction_id.account_analytic_id.id,
- 'account_id': lot.auction_id.acc_expense.id,
- 'price_unit': lot.obj_price,
+ 'invoice_id': inv_id,
+ 'quantity': 1,
+ 'product_id': lot.product_id.id,
+ 'name': '['+str(lot.obj_num)+'] '+lot.auction_id.name,
+ 'invoice_line_tax_id': [(6, 0, taxes)],
+ 'account_analytic_id': lot.auction_id.account_analytic_id.id,
+ 'account_id': lot.auction_id.acc_expense.id,
+ 'price_unit': lot.obj_price,
}
inv_line_obj.create(cr, uid, inv_line, context)
inv_ref.button_compute(cr, uid, invoices.values())
@@ -715,11 +714,11 @@ class auction_lots(osv.osv):
price = lot.obj_price or 0.0
lot_name =lot.obj_num
inv = {
- 'name':lot.auction_id.name or '',
- 'reference': lot.ach_login,
- 'journal_id': lot.auction_id.journal_id.id,
- 'partner_id': lot.ach_uid.id,
- 'type': 'out_invoice',
+ 'name':lot.auction_id.name or '',
+ 'reference': lot.ach_login,
+ 'journal_id': lot.auction_id.journal_id.id,
+ 'partner_id': lot.ach_uid.id,
+ 'type': 'out_invoice',
}
if invoice_number:
inv['number'] = invoice_number
@@ -734,14 +733,14 @@ class auction_lots(osv.osv):
taxes.append(lot.author_right.id)
inv_line= {
- 'invoice_id': inv_id,
- 'quantity': 1,
- 'product_id': lot.product_id.id,
- 'name': '['+str(lot.obj_num)+'] '+ lot.name,
- 'invoice_line_tax_id': [(6, 0, taxes)],
- 'account_analytic_id': lot.auction_id.account_analytic_id.id,
- 'account_id': lot.auction_id.acc_income.id,
- 'price_unit': lot.obj_price,
+ 'invoice_id': inv_id,
+ 'quantity': 1,
+ 'product_id': lot.product_id.id,
+ 'name': '['+str(lot.obj_num)+'] '+ lot.name,
+ 'invoice_line_tax_id': [(6, 0, taxes)],
+ 'account_analytic_id': lot.auction_id.account_analytic_id.id,
+ 'account_id': lot.auction_id.acc_income.id,
+ 'price_unit': lot.obj_price,
}
inv_line_obj.create(cr, uid, inv_line, context)
inv_ref.button_compute(cr, uid, [inv_id])
@@ -756,21 +755,21 @@ auction_lots()
#----------------------------------------------------------
class auction_bid(osv.osv):
"""Bid Auctions"""
-
+
_name = "auction.bid"
_description=__doc__
_order = 'id desc'
_columns = {
- 'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
- 'contact_tel':fields.char('Contact', size=64),
- 'name': fields.char('Bid ID', size=64, required=True),
- 'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True),
- 'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'),
+ 'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
+ 'contact_tel':fields.char('Contact', size=64),
+ 'name': fields.char('Bid ID', size=64, required=True),
+ 'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True),
+ 'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'),
}
_defaults = {
- 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.bid'),
+ 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.bid'),
}
-
+
def onchange_contact(self, cr, uid, ids, partner_id):
if not partner_id:
return {'value': {'contact_tel':False}}
@@ -785,13 +784,13 @@ auction_bid()
class auction_lot_history(osv.osv):
"""Lot History"""
-
+
_name = "auction.lot.history"
_description=__doc__
_columns = {
- 'name': fields.date('Date', size=64),
- 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
- 'auction_id': fields.many2one('auction.dates', 'Auction date', required=True, ondelete='cascade'),
+ 'name': fields.date('Date', size=64),
+ 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
+ 'auction_id': fields.many2one('auction.dates', 'Auction date', required=True, ondelete='cascade'),
'price': fields.float('Withdrawn price', digits=(16, 2))
}
_defaults = {
@@ -804,11 +803,11 @@ class auction_bid_lines(osv.osv):
_description="Bid"
_columns = {
- 'name': fields.char('Bid date', size=64),
- 'bid_id': fields.many2one('auction.bid', 'Bid ID', required=True, ondelete='cascade'),
- 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
- 'call': fields.boolean('To be Called'),
- 'price': fields.float('Maximum Price'),
+ 'name': fields.char('Bid date', size=64),
+ 'bid_id': fields.many2one('auction.bid', 'Bid ID', required=True, ondelete='cascade'),
+ 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
+ 'call': fields.boolean('To be Called'),
+ 'price': fields.float('Maximum Price'),
'auction': fields.char(string='Auction Name', size=64)
}
_defaults = {
diff --git a/addons/auction/auction_demo.xml b/addons/auction/auction_demo.xml
index 45b157e6545..51d9c166178 100644
--- a/addons/auction/auction_demo.xml
+++ b/addons/auction/auction_demo.xml
@@ -11,7 +11,7 @@
Auction Adjudications
- 0
+ A0
view
@@ -22,7 +22,7 @@
Auction Adjudication Expenses
- 1
+ A1
view
@@ -33,16 +33,16 @@
Auction Adjudications
- 7x*
-
+ A7x*
+
receivable
-
+
Auction Adjudication Expenses
- 6x*
+ A6x*
payable
@@ -51,7 +51,7 @@
Auction Buyer Costs
- 8x*
+ A8x*
payable
@@ -59,7 +59,7 @@
Auction Seller Costs
- 9x*
+ A9x*
receivable
@@ -128,7 +128,7 @@
default
-
+
Louvain-la-Neuve
Thomas Passot
@@ -141,12 +141,12 @@
-
+
Philippe Lavilier
1345-1450
-
+
POREAU OSWALD
1877-1955
@@ -195,7 +195,7 @@
-
+
TVA
0.12
@@ -211,7 +211,7 @@
-
+
Buyer Costs
0.21
@@ -219,7 +219,7 @@
-
+
Seller Costs1
-0.10
@@ -227,7 +227,7 @@
-
+
Seller Costs
-0.10
@@ -253,7 +253,7 @@
-
+
Oeuvres a 21%
@@ -267,7 +267,7 @@
1
-
+
Furniture
2
@@ -279,7 +279,7 @@
2
-
+
Sculpture
10
@@ -389,7 +389,6 @@
-
@@ -403,10 +402,8 @@
4
0.00
-
-
@@ -420,17 +417,14 @@
4
375
-
-
Plastic glass
5
-
300
500
show pices
@@ -462,7 +456,6 @@
bresslet
7
-
150
400
show pices
@@ -478,7 +471,6 @@
gold chain
11
-
400
700
show pices
@@ -494,7 +486,6 @@
fiber glass
8
-
300
500
show pices
@@ -510,7 +501,6 @@
lake photos
9
-
100
200
show pices
@@ -526,7 +516,6 @@
mobile photos
10
-
4500
4700
show models
@@ -542,7 +531,6 @@
Antique photos
11
-
1600
2200
show map Items
@@ -558,7 +546,6 @@
Hardware photos
12
-
2600
2800
show map Items
@@ -590,7 +577,6 @@
mobile accesories photos
13
-
1600
2200
show map Items
@@ -606,7 +592,6 @@
pikes-candles
14
-
30
50
show map Items
@@ -622,7 +607,6 @@
Coffee Service
15
-
10
20
show map Items
@@ -823,9 +807,7 @@
Demo
-
-
@@ -836,43 +818,43 @@
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
@@ -886,43 +868,43 @@
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
-
+
sign_in
-
+
sign_out
diff --git a/addons/auction/auction_report.xml b/addons/auction/auction_report.xml
index 885c08582ee..4df44c9c96a 100644
--- a/addons/auction/auction_report.xml
+++ b/addons/auction/auction_report.xml
@@ -1,7 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml
index 20b6dede1f6..648d8f271e8 100644
--- a/addons/auction/auction_view.xml
+++ b/addons/auction/auction_view.xml
@@ -5,9 +5,9 @@
-
+
-
+
auction.artists.tree
auction.artists
@@ -42,9 +42,9 @@
-
-
-
+
+
+
auction.lot.category.tree
auction.lot.category
@@ -55,7 +55,7 @@
-
+
auction.lot.category.form
auction.lot.category
@@ -71,17 +71,17 @@
-
+
auction.lot.category
form
-
+
-
+
-
+
Auction dates
auction.dates
@@ -95,7 +95,7 @@
-
+
Auction dates
auction.dates
@@ -122,8 +122,8 @@
-
-
+
+
@@ -194,7 +194,7 @@
Auctions
auction.dates
form
- tree,form,calendar
+ tree,form,calendar
{"search_default_draft": "1"}
@@ -208,8 +208,8 @@
-
-
+
+
Auction lots
auction.lots
@@ -246,13 +246,13 @@
-
-
+
+
-
+
@@ -295,7 +295,7 @@
-
+
@@ -306,7 +306,7 @@
-
+
@@ -314,8 +314,8 @@
-
-
+
+
@@ -358,7 +358,7 @@
-
+
@@ -373,7 +373,7 @@
-
+
Auction Lots search
auction.lots
@@ -416,9 +416,9 @@
-
-
-
+
+
+
Auction lots
auction.lots
@@ -440,9 +440,9 @@
{"search_default_draft": "1"}
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
@@ -543,7 +543,7 @@
-
+
Deposit border
auction.deposit
@@ -569,7 +569,7 @@
+ context="{'group_by':'date_dep'}"/>
@@ -603,7 +603,7 @@
-
+
auction.bid_line.tree1
auction.bid_line
@@ -617,7 +617,7 @@
-
+
auction.bid_line.form1
auction.bid_line
@@ -708,7 +708,7 @@
-
+
-
-
+
+
diff --git a/addons/auction/auction_wizard.xml b/addons/auction/auction_wizard.xml
index ab1b051add5..70caa14cd3b 100644
--- a/addons/auction/auction_wizard.xml
+++ b/addons/auction/auction_wizard.xml
@@ -1,45 +1,6 @@
-
-
diff --git a/addons/auction/board_auction_demo.xml b/addons/auction/board_auction_demo.xml
index f260f8bb1fc..1727d6a3522 100644
--- a/addons/auction/board_auction_demo.xml
+++ b/addons/auction/board_auction_demo.xml
@@ -2,13 +2,6 @@
-
-
-
-
-
-
-
diff --git a/addons/auction/board_auction_view.xml b/addons/auction/board_auction_view.xml
index 7a233282f2c..8865550949e 100644
--- a/addons/auction/board_auction_view.xml
+++ b/addons/auction/board_auction_view.xml
@@ -10,20 +10,19 @@
form
tree,form
-
+
auction.deposit
form
tree,form
-
-
+
+
report.auction.estimation.adj.category.tree
auction.lots
tree
-
@@ -47,13 +46,13 @@
-
+
Min est/Adj/Max est
auction.lots
form
graph,tree
-
+
board.auction.form
@@ -103,14 +102,16 @@
menu
-
+
-
+
+
+
diff --git a/addons/auction/i18n/de.po b/addons/auction/i18n/de.po
index 8c7aa0b72ea..11452731b2d 100644
--- a/addons/auction/i18n/de.po
+++ b/addons/auction/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 02:59+0000\n"
+"PO-Revision-Date: 2010-08-29 10:17+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 04:00+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
@@ -288,7 +288,9 @@ msgstr "Termine"
#. module: auction
#: 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: auction
#: rml:auction.total.rml:0
@@ -1584,8 +1586,8 @@ msgstr "Erzeuge Rechnungen"
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: auction
#: xsl:report.auction.vnd_bordereau:0
diff --git a/addons/auction/i18n/lt.po b/addons/auction/i18n/lt.po
index 26171c7c78b..6eb7d1bbdc2 100644
--- a/addons/auction/i18n/lt.po
+++ b/addons/auction/i18n/lt.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-11 05:33+0000\n"
+"PO-Revision-Date: 2010-08-29 08:57+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-12 04:00+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
diff --git a/addons/auction/i18n/nl.po b/addons/auction/i18n/nl.po
index be20a86033d..672883ceb24 100644
--- a/addons/auction/i18n/nl.po
+++ b/addons/auction/i18n/nl.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-11 05:29+0000\n"
+"PO-Revision-Date: 2010-08-29 10:34+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 04:00+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
diff --git a/addons/auction/i18n/tr.po b/addons/auction/i18n/tr.po
index 436336b41c0..dc07313ae2e 100644
--- a/addons/auction/i18n/tr.po
+++ b/addons/auction/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-11 05:30+0000\n"
+"PO-Revision-Date: 2010-08-29 09:42+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 04:00+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
diff --git a/addons/auction/report/__init__.py b/addons/auction/report/__init__.py
index feb96ce1564..10e32630526 100644
--- a/addons/auction/report/__init__.py
+++ b/addons/auction/report/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,11 +15,10 @@
# 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 flagey_huissier
import total
import auction_invoice
import seller_address
@@ -38,8 +37,6 @@ import buyer_list
import auction_catelog
import auction_buyer_result
-#import auction_total_rml
-#import auction_report
import auction_total_rml
import deposit_seller
import auction_artists
diff --git a/addons/auction/report/ach_bordereau_photo.xml b/addons/auction/report/ach_bordereau_photo.xml
index 207107d172d..a0d3cecedc8 100644
--- a/addons/auction/report/ach_bordereau_photo.xml
+++ b/addons/auction/report/ach_bordereau_photo.xml
@@ -19,10 +19,8 @@
--->
-
diff --git a/addons/auction/report/buyer_form_report.py b/addons/auction/report/buyer_form_report.py
index 5dfe5fecca6..2de994050d0 100644
--- a/addons/auction/report/buyer_form_report.py
+++ b/addons/auction/report/buyer_form_report.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 .
#
##############################################################################
@@ -59,9 +59,6 @@ class buyer_form_report(report_sxw.rml_parse):
else:
lots = partner.get('lots')
lots.append(object)
-# buyer_ids=self.pool.get(auction.lots).read(cr,uid,lot)
-
-
return ret_dict.values()
def grand_buyer_total(self,o):
diff --git a/addons/auction/report/catalog2.py b/addons/auction/report/catalog2.py
index 80df790f58c..22b6ecb82f7 100644
--- a/addons/auction/report/catalog2.py
+++ b/addons/auction/report/catalog2.py
@@ -84,11 +84,6 @@ class auction_catalog(report_rml):
auction_dates_pool = pooler.get_pool(cr.dbname).get('auction.dates')
for auction in auction_dates_pool.browse(cr, uid, ids, context=context):
auction_lot_ids = auction_lot_pool.search(cr, uid, [('auction_id', '=', auction.id)])
- #for lot in auction_lot_pool.browse(cr, uid, auction_lot_ids, context=context):
- # ab=pooler.get_pool(cr.dbname).get('auction.lots').read(cr, uid, lot_ids, ['auction_id','name','lot_num','lot_est1','lot_est2'], context)
- #auction_dates_ids = [x["auction_id"][0] for x in ab]
-
- # name emelment
key = 'name'
categ = doc.createElement(key)
categ.appendChild(doc.createTextNode(_to_decode(auction.name)))
diff --git a/addons/auction/report/deposit.xml b/addons/auction/report/deposit.xml
index 94f7877ae0c..5c13806948b 100644
--- a/addons/auction/report/deposit.xml
+++ b/addons/auction/report/deposit.xml
@@ -20,8 +20,6 @@
2640
Mortsel
-
-
diff --git a/addons/auction/report/huissier.py b/addons/auction/report/huissier.py
index ad8065be31c..2718e8bedc2 100644
--- a/addons/auction/report/huissier.py
+++ b/addons/auction/report/huissier.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 .
#
##############################################################################
@@ -42,10 +42,9 @@ class report_custom(report_rml):
%s
%s
''' % (toxml(auction['name']), toxml(auction['auction1']))
-
+
i = 0
for l in lots:
-# l['id_cont'] = str(i)
if l['obj_price']==0:
price_french = u'retiré'
else:
@@ -59,7 +58,7 @@ class report_custom(report_rml):
%s
''' % (i, l['obj_num'], ustr(toxml(l['name'])), ustr(price_french), ustr(l['obj_price'] or '/'))
xml += ''
-
+
return xml
report_custom('report.flagey.huissier', 'auction.lots', '', 'addons/auction/report/huissier.xsl')
diff --git a/addons/auction/report/lots_list_landscape.py b/addons/auction/report/lots_list_landscape.py
index d85e375a8ef..84762fb8b05 100644
--- a/addons/auction/report/lots_list_landscape.py
+++ b/addons/auction/report/lots_list_landscape.py
@@ -23,7 +23,7 @@ import pooler
import time
from report import report_sxw
-class lots_list_llandscape(report_sxw.rml_parse):
+class lots_list_landscape(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(lots_list_landscape, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
diff --git a/addons/auction/report/report_auction.py b/addons/auction/report/report_auction.py
index 9ce346a2632..cf1c680c63b 100644
--- a/addons/auction/report/report_auction.py
+++ b/addons/auction/report/report_auction.py
@@ -34,11 +34,11 @@ def _type_get(self, cr, uid, context=None):
obj = self.pool.get('auction.lot.category')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['name'], context)
- res = [(r['name'], r['name']) for r in res]
- return res
+ res = [(r['name'], r['name']) for r in res]
+ return res
class report_auction(osv.osv):
-
+
"""Auction Report"""
_name = "report.auction"
_description = "Auction's Summary"
@@ -49,22 +49,22 @@ class report_auction(osv.osv):
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'day': fields.char('Day', size=128, readonly=True),
- 'buyer_login': fields.char('Buyer Login', size=64, readonly=True, select=1),
- 'buyer':fields.many2one('res.partner', 'Buyer', readonly=True, select=2),
+ 'buyer_login': fields.char('Buyer Login', size=64, readonly=True, select=1),
+ 'buyer':fields.many2one('res.partner', 'Buyer', readonly=True, select=2),
'seller': fields.many2one('res.partner', 'Seller', readonly=True, select=1),
- 'object':fields.integer('No of objects', readonly=True, select=1),
+ 'object':fields.integer('No of objects', readonly=True, select=1),
'total_price':fields.float('Total Price', digits=(16, 2), readonly=True, select=2),
- 'lot_type': fields.selection(_type_get, 'Object category', size=64),
- 'avg_price':fields.float('Avg Price.', digits=(16, 2), readonly=True, select=2),
+ 'lot_type': fields.selection(_type_get, 'Object category', size=64),
+ 'avg_price':fields.float('Avg Price.', digits=(16, 2), readonly=True, select=2),
'date': fields.date('Create Date', select=1),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
- 'gross_revenue':fields.float('Gross Revenue', readonly=True),
- 'net_revenue':fields.float('Net Revenue', readonly=True),
+ 'gross_revenue':fields.float('Gross Revenue', readonly=True),
+ 'net_revenue':fields.float('Net Revenue', readonly=True),
'net_margin':fields.float('Net Margin', readonly=True),
'avg_estimation':fields.float('Avg estimation', readonly=True),
'user_id':fields.many2one('res.users', 'User', select=1),
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('sold', 'Sold')), 'State', readonly=True, select=1),
-
+
}
def init(self, cr):
@@ -125,7 +125,6 @@ class report_auction_object_date(osv.osv):
'month': fields.date('Month', select=1),
'user_id':fields.many2one('res.users', 'User',select=1),
}
- #l.create_uid as user,
def init(self, cr):
cr.execute("""create or replace view report_auction_object_date as
@@ -213,6 +212,6 @@ class report_object_encoded(osv.osv):
where al.obj_price>0
group by to_char(al.create_date, 'YYYY-MM-DD'), al.state, al.create_uid)
''')
-
+
report_object_encoded()
diff --git a/addons/auction/report/report_auction_view.xml b/addons/auction/report/report_auction_view.xml
index 686cb80d78f..8153314e877 100644
--- a/addons/auction/report/report_auction_view.xml
+++ b/addons/auction/report/report_auction_view.xml
@@ -1,7 +1,7 @@
-
+
Auction's Summary
report.auction
@@ -29,7 +29,7 @@
-
+
report.auction.search
report.auction
@@ -55,7 +55,7 @@
domain="[('state','=','draft')]"/>
+ domain="[('state','=', 'sold')]"/>
@@ -89,7 +89,7 @@
-
+
report.auction.graph
report.auction
@@ -105,19 +105,17 @@
-
-
+
+
Auction Analysis
report.auction
form
tree,graph
-
{'search_default_month':1}
-
-
+
diff --git a/addons/auction/report/seller_form_report.py b/addons/auction/report/seller_form_report.py
index 7e8af752796..d033720d615 100644
--- a/addons/auction/report/seller_form_report.py
+++ b/addons/auction/report/seller_form_report.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 .
#
##############################################################################
@@ -29,20 +29,12 @@ class seller_form_report(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(seller_form_report, self).__init__(cr, uid, name, context=context)
lot=self.pool.get('auction.lots').browse(cr, uid, uid)
- #address=lot.bord_vnd_id.address_get(self.cr,self.uid,[partner.id])
- # partner=lot.bord_vnd_id.partner_id
- # address=partner.address and partner.address[0] or ""
- # street = address and address.street or ""
-
-
self.localcontext.update({
'time': time,
'sum_taxes': self.sum_taxes,
'sellerinfo' : self.seller_info,
'grand_total' : self.grand_seller_total,
- # 'street':street,
- # 'address':address,
})
@@ -69,7 +61,6 @@ class seller_form_report(report_sxw.rml_parse):
else:
lots = partner.get('lots')
lots.append(object)
-# buyer_ids=self.pool.get(auction.lots).read(cr,uid,lot)
return ret_dict.values()
def grand_seller_total(self,o):
grand_total = 0
diff --git a/addons/auction/report/total.py b/addons/auction/report/total.py
index fe6ce584339..a5b937c3ad8 100644
--- a/addons/auction/report/total.py
+++ b/addons/auction/report/total.py
@@ -38,14 +38,9 @@ class report_custom(report_rml):
def create_xml(self, cr, uid, ids, datas, context={}):
service = netsvc.LocalService("object_proxy")
-# start_time = time.clock()
-
-# lots = service.execute(cr.dbname,uid, 'auction.lots', 'read', ids, ['obj_price','ach_pay_id','ach_login','obj_comm','lot_est1','lot_est2','bord_vnd_id','ach_emp','auction_id'])
lots = service.execute(cr.dbname, uid, 'auction.lots', 'read', ids, ['obj_price','ach_login','obj_comm','lot_est1','lot_est2','bord_vnd_id','ach_emp','auction_id'])
auction = service.execute(cr.dbname, uid, 'auction.dates', 'read', [lots[0]['auction_id'][0]])[0]
-# mid_time = time.clock()
-
unsold = comm = emp = paid = unpaid = 0
est1 = est2 = adj = 0
paid_ids = []
@@ -83,24 +78,12 @@ class report_custom(report_rml):
buyer[l['ach_login']]=1
seller[l['bord_vnd_id']]=1
-# mid_time2 = time.clock()
-
-# costs = service.execute(cr.dbname,uid, 'auction.lots', 'compute_buyer_costs', paid_ids)
-# for cost in costs:
-# paid += cost['amount']
-#
-# costs = service.execute(cr.dbname,uid, 'auction.lots', 'compute_buyer_costs', unpaid_ids)
-# for cost in costs:
-# unpaid += cost['amount']
-
-# mid_time3 = time.clock()
debit = adj
costs = service.execute(cr.dbname, uid, 'auction.lots', 'compute_seller_costs', ids)
for cost in costs:
debit += cost['amount']
-# mid_time4 = time.clock()
xml = '''
@@ -130,8 +113,6 @@ class report_custom(report_rml):
''' % (time.strftime('%d/%m/%Y'), toxml(auction['name']), auction['auction1'], len(lots), est1, est2, unsold, adj, len(buyer), len(paid_ids), comm, emp, unpaid, paid, len(seller), debit)
-# file('/tmp/terp.xml','wb+').write(xml)
-# end_time = time.clock()
return self.post_process_xml_data(cr, uid, xml, context)
report_custom('report.auction.total', 'auction.lots', '', 'addons/auction/report/total.xsl')
diff --git a/addons/auction/wizard/auction_aie_send.py b/addons/auction/wizard/auction_aie_send.py
index 238f9923677..f11c9388021 100644
--- a/addons/auction/wizard/auction_aie_send.py
+++ b/addons/auction/wizard/auction_aie_send.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,19 +15,20 @@
# 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 .
#
##############################################################################
#
# Does not properly work concurrently !!!
#
-import base64
-import mimetypes
-import httplib
-import threading
-from tools.translate import _
from osv import fields,osv
+from tools.translate import _
+import base64
+import httplib
+import mimetypes
+import netsvc
+import threading
class auction_lots_send_aie(osv.osv_memory):
_name = 'auction.lots.send.aie'
@@ -140,13 +141,11 @@ class auction_lots_send_aie(osv.osv_memory):
def _photos_send(cr, uid, uname, passwd, did, ids):
service = netsvc.LocalService("object_proxy")
for (ref,id) in ids:
-
- # ids_attach = service.execute(db_name,uid, 'ir.attachment', 'search', [('res_model','=','auction.lots'), ('res_id', '=',id)])
datas = service.execute(cr.db_name, uid, 'auction.lots', 'read', [id], ['name','image'])
if len(datas):
bin = base64.decodestring(datas[0]['image'])
fname = datas[0]['name']
- _photo_bin_send(uname, passwd, ref, did, fname, bin)
+ self._photo_bin_send(uname, passwd, ref, did, fname, bin)
def get_dates(self, cr, uid, ids, context={}):
import httplib
diff --git a/addons/auction/wizard/auction_lots_auction_move.py b/addons/auction/wizard/auction_lots_auction_move.py
index a9351d5ffa2..cb19f65172c 100644
--- a/addons/auction/wizard/auction_lots_auction_move.py
+++ b/addons/auction/wizard/auction_lots_auction_move.py
@@ -32,7 +32,7 @@ class auction_lots_auction_move(osv.osv_memory):
_name = "auction.lots.auction.move"
_description = __doc__
_columns= {
- 'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True),
+ 'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True),
}
def auction_move_set(self, cr, uid, ids, context=None):
@@ -53,24 +53,22 @@ class auction_lots_auction_move(osv.osv_memory):
for current in self.browse(cr, uid, ids, context):
if not (current.auction_id and len(context.get('active_ids', []))):
return {}
-
-# line_ids = auction_bid_line_obj.search(cr, uid, [('lot_id', 'in', context['active_ids'])])
-# pooler.get_pool(cr.dbname).get('auction.bid_line').unlink(cr, uid, line_ids)
+
for rec in rec_ids:
new_id = auction_lot_history_obj.create(cr, uid, {
- 'auction_id': rec.auction_id.id,
- 'lot_id': rec.id,
+ 'auction_id': rec.auction_id.id,
+ 'lot_id': rec.id,
'price': rec.obj_ret
})
up_auction = auction_lots_obj.write(cr, uid, [rec.id], {
- 'auction_id': current.auction_id.id,
- 'obj_ret': None,
- 'obj_price': None,
- 'ach_login': None,
- 'ach_uid': None,
- 'ach_inv_id': None,
- 'sel_inv_id': None,
- 'obj_num': None,
+ 'auction_id': current.auction_id.id,
+ 'obj_ret': None,
+ 'obj_price': None,
+ 'ach_login': None,
+ 'ach_uid': None,
+ 'ach_inv_id': None,
+ 'sel_inv_id': None,
+ 'obj_num': None,
'state': 'draft'})
return {}
diff --git a/addons/auction/wizard/auction_lots_buyer_map.py b/addons/auction/wizard/auction_lots_buyer_map.py
index c0d9e271e8e..23279942965 100644
--- a/addons/auction/wizard/auction_lots_buyer_map.py
+++ b/addons/auction/wizard/auction_lots_buyer_map.py
@@ -19,9 +19,10 @@
#
##############################################################################
+from osv import osv,fields
+from tools.translate import _
import netsvc
import sql_db
-from osv import osv,fields
class wiz_auc_lots_buyer_map(osv.osv_memory):
_name = 'auction.lots.buyer_map'
diff --git a/addons/auction/wizard/auction_lots_invoice.py b/addons/auction/wizard/auction_lots_invoice.py
index 999db109490..89d66f5f2d5 100644
--- a/addons/auction/wizard/auction_lots_invoice.py
+++ b/addons/auction/wizard/auction_lots_invoice.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 .
#
##############################################################################
@@ -26,7 +26,7 @@ from tools.translate import _
class auction_lots_invoice(osv.osv_memory):
_name = 'auction.lots.invoice'
_description = "Auction Lots Invoice"
-
+
_columns = {
'amount': fields.float('Invoiced Amount', required=True, readonly=True),
'amount_topay': fields.float('Amount to pay', required=True, readonly=True),
@@ -34,39 +34,33 @@ class auction_lots_invoice(osv.osv_memory):
'objects': fields.integer('# of objects', required=True, readonly=True),
'ach_uid': fields.many2one('res.partner','Buyer Name', required=True ),
'number': fields.integer('Invoice Number'),
-# 'tax_applied':{'string':'Tax Applied', 'type':'float', 'readonly':True},
}
def default_get(self, cr, uid, fields, context={}):
- """
+ """
To get default values for the object.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
"""
res = super(auction_lots_invoice, self).default_get(cr, uid, fields, context=context)
service = netsvc.LocalService("object_proxy")
lots = service.execute(cr.dbname, uid, 'auction.lots', 'read', context.get('active_ids', []))
auction = service.execute(cr.dbname, uid, 'auction.dates', 'read', [lots[0]['auction_id'][0]])[0]
-
+
price = 0.0
price_topay = 0.0
price_paid = 0.0
- #tax=data['form']['tax_applied']
-# uid = False
for lot in lots:
price_lot = lot['obj_price'] or 0.0
-
+
costs = service.execute(cr.dbname, uid, 'auction.lots', 'compute_buyer_costs', [lot['id']])
price_lot += costs['amount']
-# for cost in costs:
-# price_lot += cost['amount']
-
price += price_lot
-
+
if lot['ach_uid']:
if uid and (lot['ach_uid'][0]<>uid):
raise osv.except_osv(_('UserError'), _('Two different buyers for the same invoice !\nPlease correct this problem before invoicing'))
@@ -81,7 +75,7 @@ class auction_lots_invoice(osv.osv_memory):
else:
price_topay += price_lot
#*tax
-
+
#TODO: recuperer id next invoice (de la sequence)???
invoice_number = False
for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
@@ -106,19 +100,18 @@ class auction_lots_invoice(osv.osv_memory):
@param uid: the current user’s ID for security checks.
@param ids: List of Auction lots make invoice buyer’s IDs
@return: dictionary of account invoice form.
- """
+ """
service = netsvc.LocalService("object_proxy")
datas = {'ids' : context.get('active_ids',[])}
res = self.read(cr, uid, ids, ['number','ach_uid'])
- res = res and res[0] or {}
+ res = res and res[0] or {}
datas['form'] = res
-# service.execute(cr.dbname, uid, 'auction.lots', 'lots_invoice_and_cancel_old_invoice', datas['ids'], datas['form']['number'], datas['form']['ach_uid'], 'invoice_open')
return {
'type' : 'ir.actions.report.xml',
'report_name':'auction.invoice',
- 'datas' : datas,
+ 'datas' : datas,
}
-
+
auction_lots_invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_lots_sms_send.py b/addons/auction/wizard/auction_lots_sms_send.py
index 09dabd291ab..094ecea1ca2 100644
--- a/addons/auction/wizard/auction_lots_sms_send.py
+++ b/addons/auction/wizard/auction_lots_sms_send.py
@@ -48,7 +48,7 @@ class auction_lots_sms_send(osv.osv_memory):
lot_obj = self.pool.get('auction.lots')
partner_obj = self.pool.get('res.partner')
partner_address_obj = self.pool.get('res.partner.address')
- for datas in self.read(cr, uid, ids):
+ for data in self.read(cr, uid, ids):
lots = lot_obj.read(cr, uid, context['active_ids'], ['obj_num','obj_price','ach_uid'])
res = partner_obj.read(cr, uid, [l['ach_uid'][0] for l in lots if l['ach_uid']], ['gsm'], context)
diff --git a/addons/auction/wizard/auction_pay_sel.py b/addons/auction/wizard/auction_pay_sel.py
index 711cb8dcedc..a6444f8d646 100644
--- a/addons/auction/wizard/auction_pay_sel.py
+++ b/addons/auction/wizard/auction_pay_sel.py
@@ -25,23 +25,23 @@ import tools
class auction_pay_sel(osv.osv_memory):
_name = "auction.pay.sel"
_description = "Pay Invoice"
-
+
_columns= {
- 'amount': fields.float('Amount paid', digits= (16, 2), required=True),
- 'dest_account_id':fields.many2one('account.account', 'Payment to Account', required=True, domain= [('type', '=', 'cash')]),
- 'journal_id':fields.many2one('account.journal', 'Journal', required=True),
- 'period_id':fields.many2one('account.period', 'Period', required=True),
+ 'amount': fields.float('Amount paid', digits= (16, 2), required=True),
+ 'dest_account_id':fields.many2one('account.account', 'Payment to Account', required=True, domain= [('type', '=', 'cash')]),
+ 'journal_id':fields.many2one('account.journal', 'Journal', required=True),
+ 'period_id':fields.many2one('account.period', 'Period', required=True),
}
-
+
def pay_and_reconcile(self, cr, uid, ids, context):
"""
Pay and Reconcile
@param cr: the current row, from the database cursor.
@param uid: the current user’s ID for security checks.
@param ids: the ID or list of IDs
- @param context: A standard dictionary
- @return:
- """
+ @param context: A standard dictionary
+ @return:
+ """
lot = self.pool.get('auction.lots').browse(cr, uid, context['active_id'], context)
invoice_obj = self.pool.get('account.invoice')
for datas in self.read(cr, uid, ids):
@@ -50,7 +50,6 @@ class auction_pay_sel(osv.osv_memory):
journal_id = datas.get('journal_id', False)
if lot.sel_inv_id:
p = invoice_obj.pay_and_reconcile(['lot.sel_inv_id.id'], datas['amount'], datas['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
- # lots.sel_inv_id.pay_and_reconcile(cr,uid,data[id], form['amount'], form['dest_account_id'], journal_id, account_id, period_id, journal_id, context)
return {}
-
+
auction_pay_sel()
diff --git a/addons/auction/wizard/auction_transfer_unsold_object.py b/addons/auction/wizard/auction_transfer_unsold_object.py
index 73095b3433d..d2b38811daa 100644
--- a/addons/auction/wizard/auction_transfer_unsold_object.py
+++ b/addons/auction/wizard/auction_transfer_unsold_object.py
@@ -28,16 +28,7 @@ class auction_transfer_unsold_object(osv.osv):
'''
_name = 'auction.transfer.unsold.object'
_description = 'To transfer unsold objects'
-
- _columns = {
- 'auction_id_from':fields.many2one('auction.dates', 'From Auction Date', required=True),
- 'auction_id_to':fields.many2one('auction.dates', 'To Auction Date', required=True),
- }
- _defaults = {
- 'auction_id_from': _start,
- }
-
def _start(self, cr, uid, context):
"""
To initialize auction_id_from
@@ -52,7 +43,16 @@ class auction_transfer_unsold_object(osv.osv):
rec = lots_obj.browse(cr, uid, context['active_id'], context)
auction_from = rec and rec.auction_id.id or False
return auction_from
+
+ _columns = {
+ 'auction_id_from':fields.many2one('auction.dates', 'From Auction Date', required=True),
+ 'auction_id_to':fields.many2one('auction.dates', 'To Auction Date', required=True),
+ }
+ _defaults = {
+ 'auction_id_from': _start,
+ }
+
def transfer_unsold_object(self, cr, uid, ids, context):
"""
To Transfer the unsold object
diff --git a/addons/audittrail/audittrail.py b/addons/audittrail/audittrail.py
index 3a56f15ed3d..e08fc0ffd69 100644
--- a/addons/audittrail/audittrail.py
+++ b/addons/audittrail/audittrail.py
@@ -146,7 +146,6 @@ class audittrail_log(osv.osv):
_columns = {
"name": fields.char("Resource Name",size=64),
- # "name": fields.function(_name_get_resname, type='char', string='Resource Name', method=True),
"object_id": fields.many2one('ir.model', 'Object'),
"user_id": fields.many2one('res.users', 'User'),
"method": fields.char("Method", size=64),
diff --git a/addons/audittrail/i18n/it.po b/addons/audittrail/i18n/it.po
index 798fc43c04c..c720dd79016 100644
--- a/addons/audittrail/i18n/it.po
+++ b/addons/audittrail/i18n/it.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 00:47+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-18 13:14+0000\n"
+"Last-Translator: vra (openerp) \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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
@@ -52,17 +52,17 @@ msgstr "Crea"
#. module: audittrail
#: wizard_view:audittrail.view.log,init:0
msgid "Audit Logs"
-msgstr ""
+msgstr "Log di verifica"
#. module: audittrail
#: field:audittrail.rule,state:0
msgid "State"
-msgstr ""
+msgstr "Stato"
#. module: audittrail
#: selection:audittrail.rule,state:0
msgid "Draft"
-msgstr ""
+msgstr "Bozza"
#. module: audittrail
#: field:audittrail.log.line,old_value:0
@@ -72,83 +72,83 @@ msgstr "Valore precedente"
#. module: audittrail
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome modello non valido nella definizione dell'azione."
#. module: audittrail
#: model:ir.actions.wizard,name:audittrail.wizard_audittrail_log
msgid "View log"
-msgstr ""
+msgstr "Mostra log"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "audittrail.log.line"
-msgstr ""
+msgstr "audittrail.log.line"
#. module: audittrail
#: field:audittrail.log,method:0
msgid "Method"
-msgstr ""
+msgstr "Metodo"
#. module: audittrail
#: wizard_field:audittrail.view.log,init,from:0
msgid "Log From"
-msgstr ""
+msgstr "Videata Logs"
#. module: audittrail
#: field:audittrail.log.line,log:0
msgid "Log ID"
-msgstr ""
+msgstr "ID log"
#. module: audittrail
#: field:audittrail.log,res_id:0
msgid "Resource Id"
-msgstr ""
+msgstr "ID Risorsa"
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Write"
-msgstr ""
+msgstr "Scrivi"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail
msgid "Audittrails"
-msgstr ""
+msgstr "Audittrails"
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
-msgstr ""
+msgstr "Linee di log"
#. module: audittrail
#: view:audittrail.rule:0
msgid "Subscribe"
-msgstr ""
+msgstr "Sottoscrivi"
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Read"
-msgstr ""
+msgstr "Leggi"
#. module: audittrail
#: field:audittrail.log,object_id:0
#: field:audittrail.rule,object_id:0
msgid "Object"
-msgstr ""
+msgstr "Oggetto"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rule"
-msgstr ""
+msgstr "Regole tracciamento attività"
#. module: audittrail
#: wizard_field:audittrail.view.log,init,to:0
msgid "Log To"
-msgstr ""
+msgstr "Log a"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value Text: "
-msgstr ""
+msgstr "Nuovo valore di testo: "
#. module: audittrail
#: model:ir.module.module,description:audittrail.module_meta_information
@@ -158,21 +158,25 @@ msgid ""
" Subscribe Rules for read, write, create and delete on objects and check "
"logs"
msgstr ""
+"Permette all'amministratore di tenere traccia di tutte le operazioni utente "
+"su tutti gli oggetti di sistema.\n"
+" Regole che posso sottoscrivere: lettura, scrittura, creazione e "
+"cancellazione oggetti e controllo logs"
#. module: audittrail
#: field:audittrail.log,timestamp:0
msgid "Date"
-msgstr ""
+msgstr "Data"
#. module: audittrail
#: field:audittrail.log,user_id:0
msgid "User"
-msgstr ""
+msgstr "Utente"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value Text : "
-msgstr ""
+msgstr "Vecchio valore del campo: "
#. module: audittrail
#: constraint:ir.ui.view:0
@@ -182,102 +186,102 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Name"
-msgstr ""
+msgstr "Nome"
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
-msgstr ""
+msgstr "Linea di log"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree_sub
msgid "Subscribed Rules"
-msgstr ""
+msgstr "Regole applicate"
#. module: audittrail
#: field:audittrail.log.line,field_id:0
msgid "Fields"
-msgstr ""
+msgstr "Campi"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
-msgstr ""
+msgstr "Regole AuditTrail"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "audittrail.rule"
-msgstr ""
+msgstr "audittrail.rule"
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
-msgstr ""
+msgstr "Annulla sottoscrizione"
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log writes"
-msgstr ""
+msgstr "Scrittura Log"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "audittrail.log"
-msgstr ""
+msgstr "audittrail.log"
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
-msgstr ""
+msgstr "Descrizione campo"
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Delete"
-msgstr ""
+msgstr "Elimina"
#. module: audittrail
#: wizard_button:audittrail.view.log,init,open:0
msgid "Open Logs"
-msgstr ""
+msgstr "Apri logs"
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
-msgstr ""
+msgstr "Nuovo Valore del campo"
#. module: audittrail
#: field:audittrail.rule,name:0
msgid "Rule Name"
-msgstr ""
+msgstr "Nome della Regola"
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log reads"
-msgstr ""
+msgstr "Lettura Logs"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree
msgid "Logs"
-msgstr ""
+msgstr "Logs"
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
-msgstr ""
+msgstr "Nuovo valore"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_log_tree2
msgid "View Logs"
-msgstr ""
+msgstr "Guarda i Logs"
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log creates"
-msgstr ""
+msgstr "Creazione Log"
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
-msgstr ""
+msgstr "Logs di AuditTrail"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
@@ -287,24 +291,24 @@ msgstr "Regole"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
-msgstr ""
+msgstr "Nuovo Valore: "
#. module: audittrail
#: field:audittrail.rule,user_id:0
msgid "Users"
-msgstr ""
+msgstr "Utenti"
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
-msgstr ""
+msgstr "Vecchio valore del campo"
#. module: audittrail
#: wizard_button:audittrail.view.log,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log deletes"
-msgstr ""
+msgstr "Cancellazioni Log"
diff --git a/addons/audittrail/i18n/lt.po b/addons/audittrail/i18n/lt.po
index 6d9e098c56e..caf692ea6eb 100644
--- a/addons/audittrail/i18n/lt.po
+++ b/addons/audittrail/i18n/lt.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-11 05:14+0000\n"
+"PO-Revision-Date: 2010-08-29 10:43+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
diff --git a/addons/audittrail/i18n/tr.po b/addons/audittrail/i18n/tr.po
index 4ae68c76bb9..7da4abbf876 100644
--- a/addons/audittrail/i18n/tr.po
+++ b/addons/audittrail/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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:56+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-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
diff --git a/addons/audittrail/i18n/zh_CN.po b/addons/audittrail/i18n/zh_CN.po
index 9380bfd0605..75522522104 100644
--- a/addons/audittrail/i18n/zh_CN.po
+++ b/addons/audittrail/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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:53+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
diff --git a/addons/audittrail/security/audittrail_security.xml b/addons/audittrail/security/audittrail_security.xml
index 8b1f17aa939..5e94229982f 100644
--- a/addons/audittrail/security/audittrail_security.xml
+++ b/addons/audittrail/security/audittrail_security.xml
@@ -2,9 +2,6 @@
-
diff --git a/addons/audittrail/wizard/audittrail_view_log.py b/addons/audittrail/wizard/audittrail_view_log.py
index aa26c8cfd4c..f1329b58a0d 100644
--- a/addons/audittrail/wizard/audittrail_view_log.py
+++ b/addons/audittrail/wizard/audittrail_view_log.py
@@ -23,7 +23,7 @@ from osv import fields, osv
import time
class audittrail_view_log(osv.osv_memory):
-
+
_name = "audittrail.view.log"
_description = "View Log"
_columns = {
@@ -33,7 +33,7 @@ class audittrail_view_log(osv.osv_memory):
_defaults = {
'to': lambda *a: time.strftime("%Y-%m-%d %H:%M:%S"),
}
-
+
def log_open_window(self, cr, uid, ids, context=None):
"""
Open Log form from given date range..
@@ -44,26 +44,23 @@ class audittrail_view_log(osv.osv_memory):
"""
if not context:
context = {}
-
+
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
result = mod_obj._get_id(cr, uid, 'audittrail', 'action_audittrail_log_tree')
id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id']
result = act_obj.read(cr, uid, [id])[0]
- #log_obj = self.pool.get(result['res_model'])
- #log_id = log_obj.search(cr, uid, [])
- #log_model = log_obj.read(cr, uid, log_id, ['object_id'])
- #start Loop
+ #start Loop
for datas in self.read(cr, uid, ids):
if not datas.get('from', None):
if datas.get('to') <> time.strftime("%Y-%m-%d %H:%M:%S"):
- result['domain'] = str([('timestamp', '<', datas.get('to'))])
+ result['domain'] = str([('timestamp', '<', datas.get('to'))])
else:
pass
else:
result['domain'] = str([('timestamp', '>', datas.get('from', None)), ('timestamp', '<', datas.get('to'))])
- #End Loop
+ #End Loop
return result
audittrail_view_log()
diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index d2c238f81e4..ff6321e599f 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -19,11 +19,11 @@
#
##############################################################################
-from datetime import datetime
from osv import fields, osv, orm
from tools.translate import _
from datetime import datetime
from datetime import timedelta
+from tools.safe_eval import safe_eval
import pooler
import re
import time
@@ -111,6 +111,8 @@ the rule to mark CC(mail to any other person defined in actions)."),
\nNote: This is case sensitive search."),
'server_action_id': fields.many2one('ir.actions.server', 'Server Action', help="Describes the action name.\neg:on which object which action to be taken on basis of which condition"),
'filter_id':fields.many2one('ir.filters', 'Filter', required=False),
+ 'act_email_from' : fields.char('Email From', size=64, required=False,
+ help="Use a python expression to specify the right field on which one than we will use for the 'From' field of the header"),
}
_defaults = {
@@ -149,7 +151,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
continue
else:
obj = self.pool.get(obj_name)
- self._action(cr, uid, [rule_id], obj.browse(cr, uid, ids, context=context))
+ self._action(cr, uid, [rule_id], obj.browse(cr, uid, ids, context=context), context=context)
return True
def _create(self, old_create, model, context=None):
@@ -179,10 +181,12 @@ the rule to mark CC(mail to any other person defined in actions)."),
for action_rule in self.browse(cr, uid, ids, context=context):
model = action_rule.model_id.model
obj_pool = self.pool.get(model)
- obj_pool.__setattr__('create', self._create(obj_pool.create, model, context=context))
- obj_pool.__setattr__('write', self._write(obj_pool.write, model, context=context))
- return True
+ if not hasattr(obj_pool, 'base_action_ruled'):
+ obj_pool.create = self._create(obj_pool.create, model, context=context)
+ obj_pool.write = self._write(obj_pool.write, model, context=context)
+ obj_pool.base_action_ruled = True
+ return True
def create(self, cr, uid, vals, context=None):
res_id = super(base_action_rule, self).create(cr, uid, vals, context)
self._register_hook(cr, uid, [res_id], context=context)
@@ -228,7 +232,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
}
return self.format_body(body % data)
- def email_send(self, cr, uid, obj, emails, body, emailfrom=tools.config.get('email_from', False), context={}):
+ def email_send(self, cr, uid, obj, emails, body, emailfrom=None, context=None):
""" send email
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -236,6 +240,13 @@ the rule to mark CC(mail to any other person defined in actions)."),
@param email: pass the emails
@param emailfrom: Pass name the email From else False
@param context: A standard dictionary for contextual values """
+
+ if not emailfrom:
+ emailfrom = tools.config.get('email_from', False)
+
+ if context is None:
+ context = {}
+
body = self.format_mail(obj, body)
if not emailfrom:
if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and\
@@ -251,12 +262,14 @@ the rule to mark CC(mail to any other person defined in actions)."),
return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id))
- def do_check(self, cr, uid, action, obj, context={}):
+ def do_check(self, cr, uid, action, obj, context=None):
""" check Action
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
+ if context is None:
+ context = {}
ok = True
if action.filter_id:
if action.model_id.model == action.filter_id.model_id:
@@ -266,9 +279,9 @@ the rule to mark CC(mail to any other person defined in actions)."),
ok = False
else:
ok = False
- if hasattr(obj, 'user_id'):
+ if getattr(obj, 'user_id', False):
ok = ok and (not action.trg_user_id.id or action.trg_user_id.id==obj.user_id.id)
- if hasattr(obj, 'partner_id'):
+ if getattr(obj, 'partner_id', False):
ok = ok and (not action.trg_partner_id.id or action.trg_partner_id.id==obj.partner_id.id)
ok = ok and (
not action.trg_partner_categ_id.id or
@@ -278,8 +291,9 @@ the rule to mark CC(mail to any other person defined in actions)."),
)
)
state_to = context.get('state_to', False)
- if hasattr(obj, 'state'):
- ok = ok and (not action.trg_state_from or action.trg_state_from==obj.state)
+ state = getattr(obj, 'state', False)
+ if state:
+ ok = ok and (not action.trg_state_from or action.trg_state_from==state)
if state_to:
ok = ok and (not action.trg_state_to or action.trg_state_to==state_to)
elif action.trg_state_to:
@@ -295,7 +309,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
ok = ok and regex_n
return ok
- def do_action(self, cr, uid, action, model_obj, obj, context={}):
+ def do_action(self, cr, uid, action, model_obj, obj, context=None):
""" Do Action
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -303,6 +317,8 @@ the rule to mark CC(mail to any other person defined in actions)."),
@param action: pass action
@param model_obj: pass Model object
@param context: A standard dictionary for contextual values """
+ if context is None:
+ context = {}
if action.server_action_id:
context.update({'active_id':obj.id, 'active_ids':[obj.id]})
@@ -330,6 +346,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
model_obj.remind_partner(cr, uid, [obj.id], context, attach=action.act_remind_attach)
if action.act_method:
getattr(model_obj, 'act_method')(cr, uid, [obj.id], action, context)
+
emails = []
if hasattr(obj, 'user_id') and action.act_mail_to_user:
if obj.user_id and obj.user_id.address_id:
@@ -342,10 +359,14 @@ the rule to mark CC(mail to any other person defined in actions)."),
emails = filter(None, emails)
if len(emails) and action.act_mail_body:
emails = list(set(emails))
- self.email_send(cr, uid, obj, emails, action.act_mail_body)
+ email_from = safe_eval(action.act_email_from, {}, {
+ 'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
+ 'obj' : obj,
+ })
+ self.email_send(cr, uid, obj, emails, action.act_mail_body, emailfrom=email_from)
return True
- def _action(self, cr, uid, ids, objects, scrit=None, context={}):
+ def _action(self, cr, uid, ids, objects, scrit=None, context=None):
""" Do Action
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -353,10 +374,15 @@ the rule to mark CC(mail to any other person defined in actions)."),
@param ids: List of Basic Action Rule’s IDs,
@param objects: pass objects
@param context: A standard dictionary for contextual values """
+ if context is None:
+ context = {}
+
+
context.update({'action': True})
if not scrit:
scrit = []
- for action in self.browse(cr, uid, ids):
+
+ for action in self.browse(cr, uid, ids, context):
model_obj = self.pool.get(action.model_id.model)
for obj in objects:
ok = self.do_check(cr, uid, action, obj, context=context)
diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml
index c8adf10b168..526fe55f4a3 100644
--- a/addons/base_action_rule/base_action_rule_view.xml
+++ b/addons/base_action_rule/base_action_rule_view.xml
@@ -2,7 +2,7 @@
diff --git a/addons/base_calendar/i18n/base_calendar.pot b/addons/base_calendar/i18n/base_calendar.pot
new file mode 100644
index 00000000000..1c5efc1526c
--- /dev/null
+++ b/addons/base_calendar/i18n/base_calendar.pot
@@ -0,0 +1,1516 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * base_calendar
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-19 12:50:56+0000\n"
+"PO-Revision-Date: 2010-08-19 12:50:56+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: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event starts"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Hourly"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required to Join"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,exdate:0
+#: help:calendar.todo,exdate:0
+msgid "This property defines the list of date/time exceptions for a recurring calendar component."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event.edit.all,name:0
+msgid "Title"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Monthly"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invited User"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view
+#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm
+msgid "Alarms"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Sunday"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,role:0
+msgid "Role"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation details"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fourth"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,show_as:0
+#: field:calendar.todo,show_as:0
+msgid "Show as"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,day:0
+#: selection:base.calendar.set.exrule,select1:0
+#: field:calendar.event,day:0
+#: selection:calendar.event,select1:0
+#: field:calendar.todo,day:0
+#: selection:calendar.todo,select1:0
+msgid "Date of month"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Public"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Hours"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "March"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Friday"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,allday:0
+#: field:calendar.todo,allday:0
+msgid "All Day"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,select1:0
+#: field:calendar.event,select1:0
+#: field:calendar.todo,select1:0
+msgid "Option"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Free"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,rsvp:0
+msgid "Indicats whether the favor of a reply is requested"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,delegated_to:0
+msgid "The users that the original request was delegated to"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_to:0
+msgid "Delegated To"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,we:0
+#: field:calendar.event,we:0
+#: field:calendar.todo,we:0
+msgid "Wed"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Show time as"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,tu:0
+#: field:calendar.event,tu:0
+#: field:calendar.todo,tu:0
+msgid "Tue"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Yearly"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event ends"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Last"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,state:0
+msgid "Status of the attendee's participation"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Room"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Days"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "No Repeat"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:0
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Chair Person"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Procedure"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Select data for Custom Rule"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Minutes"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Display"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "Edit all Occurrences"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation type"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Secondly"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,event_date:0
+#: field:calendar.attendee,event_date:0
+#: view:calendar.event:0
+msgid "Event Date"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Group By..."
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,partner_id:0
+msgid "Partner related to contact"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,cutype:0
+msgid "Specify the type of Invitation"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,exrule:0
+#: help:calendar.todo,exrule:0
+msgid "defines a rule or repeating pattern for an exception to a recurrence set"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,event_end_date:0
+#: field:calendar.attendee,event_end_date:0
+msgid "Event End Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Optional Participation"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,date_deadline:0
+#: field:calendar.todo,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.module.module,shortdesc:base_calendar.module_meta_information
+msgid "Basic Calendar Functionality"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,organizer:0
+#: field:calendar.event,organizer_id:0
+#: field:calendar.todo,organizer:0
+#: field:calendar.todo,organizer_id:0
+msgid "Organizer"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: view:calendar.event:0
+#: model:res.request.link,name:base_calendar.request_link_meeting
+#, python-format
+msgid "Event"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "Before"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all
+msgid "Edit all events"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,attendee_ids:0
+#: field:calendar.event,attendee_ids:0
+#: field:calendar.todo,attendee_ids:0
+msgid "Attendees"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Confirm"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_todo
+msgid "Calendar Task"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,su:0
+#: field:calendar.event,su:0
+#: field:calendar.todo,su:0
+msgid "Sun"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,cutype:0
+msgid "Invite Type"
+msgstr ""
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder details"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,parent_ids:0
+msgid "Delegrated From"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,select1:0
+#: selection:calendar.event,select1:0
+#: selection:calendar.todo,select1:0
+msgid "Day of month"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,location:0
+#: field:calendar.event.edit.all,location:0
+#: field:calendar.todo,location:0
+msgid "Location"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,send_mail:0
+msgid "Send mail?"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,email:0
+#: selection:calendar.alarm,action:0
+#: field:calendar.attendee,email:0
+msgid "Email"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Event Detail"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Run"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_alarm
+msgid "Event alarm information"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Confidential"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,end_date:0
+#: field:calendar.event,end_date:0
+#: field:calendar.todo,end_date:0
+msgid "Repeat Until"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Visibility"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,rsvp:0
+msgid "Required Reply?"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,base_calendar_url:0
+#: field:calendar.todo,base_calendar_url:0
+msgid "Caldav URL"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_uid:0
+#: field:calendar.todo,recurrent_uid:0
+msgid "Recurrent ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "July"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Accepted"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,th:0
+#: field:calendar.event,th:0
+#: field:calendar.todo,th:0
+msgid "Thu"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,child_ids:0
+msgid "Delegrated To"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required Reply"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Participation required"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,create_date:0
+#: field:calendar.todo,create_date:0
+msgid "Created"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Private"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Daily"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Can not Duplicate"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,class:0
+#: field:calendar.todo,class:0
+msgid "Mark as"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_address_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Delegate"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,partner_id:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "Select data for ExRule"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Partner Contacts"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Ok"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "First"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Privacy"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Subject"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "September"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "December"
+msgstr ""
+
+#. module: base_calendar
+#: help:base_calendar.invite.attendee,send_mail:0
+msgid "Check this if you want to send an Email to Invited Person"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Availability"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "_Save"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Individual"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,user_id:0
+msgid "Owner"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Delegation Info"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date:0
+msgid "Start Date"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,cn:0
+msgid "Common name"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Declined"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "My Role"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "My Events"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Decline"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Group"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Edit All"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,contact_ids:0
+msgid "Contacts"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_alarm
+msgid "Basic Alarm Information"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,fr:0
+#: field:calendar.event,fr:0
+#: field:calendar.todo,fr:0
+msgid "Fri"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation Detail"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,member:0
+msgid "Member"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,location:0
+#: help:calendar.todo,location:0
+msgid "Location of Event"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,rrule:0
+#: field:calendar.todo,rrule:0
+msgid "Recurrent Rule"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,attach:0
+msgid "Attachment"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation From"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,alarm_id:0
+msgid "Reminder"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: model:ir.actions.act_window,name:base_calendar.action_base_calendar_set_exrule
+#: model:ir.model,name:base_calendar.model_base_calendar_set_exrule
+msgid "Set Exrule"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: model:ir.actions.act_window,name:base_calendar.action_view_event
+#: model:ir.ui.menu,name:base_calendar.menu_events
+msgid "Events"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard
+#: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee
+msgid "Invite Attendees"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,email:0
+msgid "Email of Invited Person"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,repeat:0
+#: field:res.alarm,repeat:0
+msgid "Repeat"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,dir:0
+msgid "Reference to the URIthat points to the directory information corresponding to the attendee."
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "August"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Monday"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Third"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "June"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,alarm_id:0
+msgid "Basic Alarm"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "The"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_from:0
+msgid "Delegated From"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "ExRule"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "November"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,member:0
+msgid "Indicate the groups that the attendee belongs to"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,mo:0
+#: field:calendar.event,mo:0
+#: field:calendar.todo,mo:0
+msgid "Mon"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,count:0
+#: field:calendar.event,count:0
+#: field:calendar.todo,count:0
+msgid "Count"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "October"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Uncertain"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,language:0
+msgid "Language"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_occurs:0
+#: field:res.alarm,trigger_occurs:0
+msgid "Triggers"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "January"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_related:0
+#: field:res.alarm,trigger_related:0
+msgid "Related to"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,interval:0
+#: field:calendar.alarm,trigger_interval:0
+#: field:calendar.event,interval:0
+#: field:calendar.todo,interval:0
+#: field:res.alarm,trigger_interval:0
+msgid "Interval"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Wednesday"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,name:0
+#: view:calendar.event:0
+msgid "Summary"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,active:0
+#: field:calendar.event,active:0
+#: field:calendar.todo,active:0
+#: field:res.alarm,active:0
+msgid "Active"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,action:0
+msgid "Action"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,duration:0
+#: help:res.alarm,duration:0
+msgid "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the other"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event_edit_all
+msgid "Calendar Edit all event"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,role:0
+msgid "Participation role for the calendar user"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,ref:0
+msgid "Event Ref"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,action:0
+msgid "Defines the action to be invoked when an alarm is triggered"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Search Events"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Weekly"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,active:0
+#: help:calendar.event,active:0
+#: help:calendar.todo,active:0
+#: help:res.alarm,active:0
+msgid "If the active field is set to true, it will allow you to hide the event alarm information without removing it."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_id:0
+#: field:calendar.todo,recurrent_id:0
+msgid "Recurrent ID date"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,state:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,state:0
+#: view:calendar.event:0
+#: field:calendar.event,state:0
+#: field:calendar.todo,state:0
+msgid "State"
+msgstr ""
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder Details"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "To Review"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,freq:0
+#: field:calendar.event,freq:0
+#: field:calendar.todo,freq:0
+msgid "Frequency"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Done"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: field:base_calendar.invite.attendee,user_ids:0
+msgid "Users"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "of"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+#: view:calendar.event.edit.all:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Tuesday"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,description:0
+msgid "Provides a more complete description of the calendar component, than that provided by the \"SUMMARY\" property"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Responsible User"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Busy"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event
+msgid "Calendar Event"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Tentative"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,user_id:0
+#: field:calendar.todo,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,rrule_type:0
+#: field:calendar.todo,rrule_type:0
+msgid "Recurrency"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form
+#: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations
+msgid "Event Invitations"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Thursday"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Custom"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,exrule:0
+#: field:calendar.todo,exrule:0
+msgid "Exception Rule"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,language:0
+msgid "To specify the language for text values in aproperty or property parameter."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Details"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,month_list:0
+#: field:calendar.event,month_list:0
+#: field:calendar.todo,month_list:0
+msgid "Month"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+msgid "Invite People"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,rrule:0
+#: help:calendar.todo,rrule:0
+msgid "Defines a rule or repeating pattern for recurring events\n"
+"e.g.: Every other month on the last Sunday of the month for 10 occurrences: FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,dir:0
+msgid "URI Reference"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,description:0
+#: view:calendar.event:0
+#: field:calendar.event,description:0
+#: field:calendar.event,name:0
+#: field:calendar.todo,description:0
+#: field:calendar.todo,name:0
+msgid "Description"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "May"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,type:0
+#: view:calendar.attendee:0
+msgid "Type"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Search Invitations"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "After"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Stop"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_values
+msgid "ir.values"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_model
+msgid "Objects"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Delegated"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,sa:0
+#: field:calendar.event,sa:0
+#: field:calendar.todo,sa:0
+msgid "Sat"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.module.module,description:base_calendar.module_meta_information
+msgid "Full featured calendar system that supports:\n"
+" - Calendar of events\n"
+" - Alerts (create requests)\n"
+" - Recurring events\n"
+" - Invitations to people"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Minutely"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,sent_by:0
+msgid "Specify the user that is acting on behalf of the calendar user"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date_deadline:0
+msgid "End Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "February"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Resource"
+msgstr ""
+
+#. module: base_calendar
+#: field:res.alarm,name:0
+msgid "Name"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,exdate:0
+#: field:calendar.todo,exdate:0
+msgid "Exception Date/Times"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,name:0
+msgid "Contains the text to be used as the message subject for email or contains the text to be used for display"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,alarm_id:0
+#: field:calendar.event,base_calendar_alarm_id:0
+#: field:calendar.todo,alarm_id:0
+#: field:calendar.todo,base_calendar_alarm_id:0
+msgid "Alarm"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Please Apply Recurrency before applying Exception Rule."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by_uid:0
+msgid "Sent By User"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "April"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,week_list:0
+#: field:calendar.event,week_list:0
+#: field:calendar.todo,week_list:0
+msgid "Weekday"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,byday:0
+#: field:calendar.event,byday:0
+#: field:calendar.todo,byday:0
+msgid "By day"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Audio"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,id:0
+#: field:calendar.todo,id:0
+msgid "ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "For information Purpose"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+msgid "Invite"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_attendee
+msgid "Attendee information"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+msgid "Needs Action"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by:0
+msgid "Sent By"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,sequence:0
+#: field:calendar.todo,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,vtimezone:0
+#: field:calendar.todo,vtimezone:0
+msgid "Timezone"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Internal User"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Accept"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Saturday"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation To"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Second"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,availability:0
+#: field:res.users,availability:0
+msgid "Free/Busy"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,duration:0
+#: field:calendar.alarm,trigger_duration:0
+#: field:calendar.event,duration:0
+#: field:calendar.todo,date:0
+#: field:calendar.todo,duration:0
+#: field:res.alarm,duration:0
+#: field:res.alarm,trigger_duration:0
+msgid "Duration"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "External Email"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_date:0
+msgid "Trigger Date"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,attach:0
+msgid "* Points to a sound resource, which is rendered when the alarm is triggered for audio,\n"
+" * File which is intended to be sent as message attachments for email,\n"
+" * Points to a procedure resource, which is invoked when the alarm is triggered for procedure."
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fifth"
+msgstr ""
+
diff --git a/addons/base_calendar/i18n/en_US.po b/addons/base_calendar/i18n/en_US.po
new file mode 100644
index 00000000000..c9bc6e5e0b4
--- /dev/null
+++ b/addons/base_calendar/i18n/en_US.po
@@ -0,0 +1,1523 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * base_calendar
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-23 05:02:00+0000\n"
+"PO-Revision-Date: 2010-08-23 05:02: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: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event starts"
+msgstr "The event starts"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Hourly"
+msgstr "Hourly"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required to Join"
+msgstr "Required to Join"
+
+#. module: base_calendar
+#: help:calendar.event,exdate:0
+#: help:calendar.todo,exdate:0
+msgid "This property defines the list of date/time exceptions for a recurring calendar component."
+msgstr "This property defines the list of date/time exceptions for a recurring calendar component."
+
+#. module: base_calendar
+#: field:calendar.event.edit.all,name:0
+msgid "Title"
+msgstr "Title"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Monthly"
+msgstr "Monthly"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invited User"
+msgstr "Invited User"
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view
+#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm
+msgid "Alarms"
+msgstr "Alarms"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Sunday"
+msgstr "Sunday"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,role:0
+msgid "Role"
+msgstr "Role"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation details"
+msgstr "Invitation details"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fourth"
+msgstr "Fourth"
+
+#. module: base_calendar
+#: field:calendar.event,show_as:0
+#: field:calendar.todo,show_as:0
+msgid "Show as"
+msgstr "Show as"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,day:0
+#: selection:base.calendar.set.exrule,select1:0
+#: field:calendar.event,day:0
+#: selection:calendar.event,select1:0
+#: field:calendar.todo,day:0
+#: selection:calendar.todo,select1:0
+msgid "Date of month"
+msgstr "Date of month"
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Public"
+msgstr "Public"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Hours"
+msgstr "Hours"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "March"
+msgstr "March"
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Warning !"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Friday"
+msgstr "Friday"
+
+#. module: base_calendar
+#: field:calendar.event,allday:0
+#: field:calendar.todo,allday:0
+msgid "All Day"
+msgstr "All Day"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,select1:0
+#: field:calendar.event,select1:0
+#: field:calendar.todo,select1:0
+msgid "Option"
+msgstr "Option"
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Free"
+msgstr "Free"
+
+#. module: base_calendar
+#: help:calendar.attendee,rsvp:0
+msgid "Indicats whether the favor of a reply is requested"
+msgstr "Indicats whether the favor of a reply is requested"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_attachment
+msgid "ir.attachment"
+msgstr "ir.attachment"
+
+#. module: base_calendar
+#: help:calendar.attendee,delegated_to:0
+msgid "The users that the original request was delegated to"
+msgstr "The users that the original request was delegated to"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_to:0
+msgid "Delegated To"
+msgstr "Delegated To"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,we:0
+#: field:calendar.event,we:0
+#: field:calendar.todo,we:0
+msgid "Wed"
+msgstr "Wed"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Show time as"
+msgstr "Show time as"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,tu:0
+#: field:calendar.event,tu:0
+#: field:calendar.todo,tu:0
+msgid "Tue"
+msgstr "Tue"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Yearly"
+msgstr "Yearly"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event ends"
+msgstr "The event ends"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Last"
+msgstr "Last"
+
+#. module: base_calendar
+#: help:calendar.attendee,state:0
+msgid "Status of the attendee's participation"
+msgstr "Status of the attendee's participation"
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Room"
+msgstr "Room"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Days"
+msgstr "Days"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "No Repeat"
+msgstr "No Repeat"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:0
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Error!"
+msgstr "Error!"
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Chair Person"
+msgstr "Chair Person"
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Procedure"
+msgstr "Procedure"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Select data for Custom Rule"
+msgstr "Select data for Custom Rule"
+
+#. module: base_calendar
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Minutes"
+msgstr "Minutes"
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Display"
+msgstr "Display"
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "Edit all Occurrences"
+msgstr "Edit all Occurrences"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation type"
+msgstr "Invitation type"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Secondly"
+msgstr "Secondly"
+
+#. module: base_calendar
+#: field:calendar.alarm,event_date:0
+#: field:calendar.attendee,event_date:0
+#: view:calendar.event:0
+msgid "Event Date"
+msgstr "Event Date"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: base_calendar
+#: help:calendar.attendee,partner_id:0
+msgid "Partner related to contact"
+msgstr "Partner related to contact"
+
+#. module: base_calendar
+#: help:calendar.attendee,cutype:0
+msgid "Specify the type of Invitation"
+msgstr "Specify the type of Invitation"
+
+#. module: base_calendar
+#: help:calendar.event,exrule:0
+#: help:calendar.todo,exrule:0
+msgid "defines a rule or repeating pattern for an exception to a recurrence set"
+msgstr "defines a rule or repeating pattern for an exception to a recurrence set"
+
+#. module: base_calendar
+#: field:calendar.alarm,event_end_date:0
+#: field:calendar.attendee,event_end_date:0
+msgid "Event End Date"
+msgstr "Event End Date"
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Optional Participation"
+msgstr "Optional Participation"
+
+#. module: base_calendar
+#: field:calendar.event,date_deadline:0
+#: field:calendar.todo,date_deadline:0
+msgid "Deadline"
+msgstr "Deadline"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Warning!"
+msgstr "Warning!"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Cancel"
+msgstr "_Cancel"
+
+#. module: base_calendar
+#: model:ir.module.module,shortdesc:base_calendar.module_meta_information
+msgid "Basic Calendar Functionality"
+msgstr "Basic Calendar Functionality"
+
+#. module: base_calendar
+#: field:calendar.event,organizer:0
+#: field:calendar.event,organizer_id:0
+#: field:calendar.todo,organizer:0
+#: field:calendar.todo,organizer_id:0
+msgid "Organizer"
+msgstr "Organizer"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: view:calendar.event:0
+#: model:res.request.link,name:base_calendar.request_link_meeting
+#, python-format
+msgid "Event"
+msgstr "Event"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "Before"
+msgstr "Before"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Confirmed"
+msgstr "Confirmed"
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all
+msgid "Edit all events"
+msgstr "Edit all events"
+
+#. module: base_calendar
+#: field:calendar.alarm,attendee_ids:0
+#: field:calendar.event,attendee_ids:0
+#: field:calendar.todo,attendee_ids:0
+msgid "Attendees"
+msgstr "Attendees"
+
+#. module: base_calendar
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Confirm"
+msgstr "Confirm"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_todo
+msgid "Calendar Task"
+msgstr "Calendar Task"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,su:0
+#: field:calendar.event,su:0
+#: field:calendar.todo,su:0
+msgid "Sun"
+msgstr "Sun"
+
+#. module: base_calendar
+#: field:calendar.attendee,cutype:0
+msgid "Invite Type"
+msgstr "Invite Type"
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder details"
+msgstr "Reminder details"
+
+#. module: base_calendar
+#: field:calendar.attendee,parent_ids:0
+msgid "Delegrated From"
+msgstr "Delegrated From"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,select1:0
+#: selection:calendar.event,select1:0
+#: selection:calendar.todo,select1:0
+msgid "Day of month"
+msgstr "Day of month"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,location:0
+#: field:calendar.event.edit.all,location:0
+#: field:calendar.todo,location:0
+msgid "Location"
+msgstr "Location"
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,send_mail:0
+msgid "Send mail?"
+msgstr "Send mail?"
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,email:0
+#: selection:calendar.alarm,action:0
+#: field:calendar.attendee,email:0
+msgid "Email"
+msgstr "Email"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Event Detail"
+msgstr "Event Detail"
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Run"
+msgstr "Run"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_alarm
+msgid "Event alarm information"
+msgstr "Event alarm information"
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Confidential"
+msgstr "Confidential"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,end_date:0
+#: field:calendar.event,end_date:0
+#: field:calendar.todo,end_date:0
+msgid "Repeat Until"
+msgstr "Repeat Until"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Visibility"
+msgstr "Visibility"
+
+#. module: base_calendar
+#: field:calendar.attendee,rsvp:0
+msgid "Required Reply?"
+msgstr "Required Reply?"
+
+#. module: base_calendar
+#: field:calendar.event,base_calendar_url:0
+#: field:calendar.todo,base_calendar_url:0
+msgid "Caldav URL"
+msgstr "Caldav URL"
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_uid:0
+#: field:calendar.todo,recurrent_uid:0
+msgid "Recurrent ID"
+msgstr "Recurrent ID"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "July"
+msgstr "July"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Accepted"
+msgstr "Accepted"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,th:0
+#: field:calendar.event,th:0
+#: field:calendar.todo,th:0
+msgid "Thu"
+msgstr "Thu"
+
+#. module: base_calendar
+#: field:calendar.attendee,child_ids:0
+msgid "Delegrated To"
+msgstr "Delegrated To"
+
+#. module: base_calendar
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr "Invalid arguments"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required Reply"
+msgstr "Required Reply"
+
+#. module: base_calendar
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Participation required"
+msgstr "Participation required"
+
+#. module: base_calendar
+#: field:calendar.event,create_date:0
+#: field:calendar.todo,create_date:0
+msgid "Created"
+msgstr "Created"
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Private"
+msgstr "Private"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Daily"
+msgstr "Daily"
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Can not Duplicate"
+msgstr "Can not Duplicate"
+
+#. module: base_calendar
+#: field:calendar.event,class:0
+#: field:calendar.todo,class:0
+msgid "Mark as"
+msgstr "Mark as"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_address_id:0
+msgid "Contact"
+msgstr "Contact"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Delegate"
+msgstr "Delegate"
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,partner_id:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "Select data for ExRule"
+msgstr "Select data for ExRule"
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Partner Contacts"
+msgstr "Partner Contacts"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Ok"
+msgstr "_Ok"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "First"
+msgstr "First"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Privacy"
+msgstr "Privacy"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Subject"
+msgstr "Subject"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "September"
+msgstr "September"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "December"
+msgstr "December"
+
+#. module: base_calendar
+#: help:base_calendar.invite.attendee,send_mail:0
+msgid "Check this if you want to send an Email to Invited Person"
+msgstr "Check this if you want to send an Email to Invited Person"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Availability"
+msgstr "Availability"
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "_Save"
+msgstr "_Save"
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Individual"
+msgstr "Individual"
+
+#. module: base_calendar
+#: field:calendar.alarm,user_id:0
+msgid "Owner"
+msgstr "Owner"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Delegation Info"
+msgstr "Delegation Info"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date:0
+msgid "Start Date"
+msgstr "Start Date"
+
+#. module: base_calendar
+#: field:calendar.attendee,cn:0
+msgid "Common name"
+msgstr "Common name"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Declined"
+msgstr "Declined"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "My Role"
+msgstr "My Role"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "My Events"
+msgstr "My Events"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Decline"
+msgstr "Decline"
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Group"
+msgstr "Group"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Edit All"
+msgstr "Edit All"
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,contact_ids:0
+msgid "Contacts"
+msgstr "Contacts"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_alarm
+msgid "Basic Alarm Information"
+msgstr "Basic Alarm Information"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,fr:0
+#: field:calendar.event,fr:0
+#: field:calendar.todo,fr:0
+msgid "Fri"
+msgstr "Fri"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation Detail"
+msgstr "Invitation Detail"
+
+#. module: base_calendar
+#: field:calendar.attendee,member:0
+msgid "Member"
+msgstr "Member"
+
+#. module: base_calendar
+#: help:calendar.event,location:0
+#: help:calendar.todo,location:0
+msgid "Location of Event"
+msgstr "Location of Event"
+
+#. module: base_calendar
+#: field:calendar.event,rrule:0
+#: field:calendar.todo,rrule:0
+msgid "Recurrent Rule"
+msgstr "Recurrent Rule"
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: base_calendar
+#: field:calendar.alarm,attach:0
+msgid "Attachment"
+msgstr "Attachment"
+
+#. module: base_calendar
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation From"
+msgstr "Invitation From"
+
+#. module: base_calendar
+#: 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: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,alarm_id:0
+msgid "Reminder"
+msgstr "Reminder"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: model:ir.actions.act_window,name:base_calendar.action_base_calendar_set_exrule
+#: model:ir.model,name:base_calendar.model_base_calendar_set_exrule
+msgid "Set Exrule"
+msgstr "Set Exrule"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: model:ir.actions.act_window,name:base_calendar.action_view_event
+#: model:ir.ui.menu,name:base_calendar.menu_events
+msgid "Events"
+msgstr "Events"
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard
+#: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee
+msgid "Invite Attendees"
+msgstr "Invite Attendees"
+
+#. module: base_calendar
+#: help:calendar.attendee,email:0
+msgid "Email of Invited Person"
+msgstr "Email of Invited Person"
+
+#. module: base_calendar
+#: field:calendar.alarm,repeat:0
+#: field:res.alarm,repeat:0
+msgid "Repeat"
+msgstr "Repeat"
+
+#. module: base_calendar
+#: help:calendar.attendee,dir:0
+msgid "Reference to the URIthat points to the directory information corresponding to the attendee."
+msgstr "Reference to the URIthat points to the directory information corresponding to the attendee."
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "August"
+msgstr "August"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Monday"
+msgstr "Monday"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Third"
+msgstr "Third"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "June"
+msgstr "June"
+
+#. module: base_calendar
+#: field:calendar.alarm,alarm_id:0
+msgid "Basic Alarm"
+msgstr "Basic Alarm"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "The"
+msgstr "The"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_from:0
+msgid "Delegated From"
+msgstr "Delegated From"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "ExRule"
+msgstr "ExRule"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "November"
+msgstr "November"
+
+#. module: base_calendar
+#: help:calendar.attendee,member:0
+msgid "Indicate the groups that the attendee belongs to"
+msgstr "Indicate the groups that the attendee belongs to"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,mo:0
+#: field:calendar.event,mo:0
+#: field:calendar.todo,mo:0
+msgid "Mon"
+msgstr "Mon"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,count:0
+#: field:calendar.event,count:0
+#: field:calendar.todo,count:0
+msgid "Count"
+msgstr "Count"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "October"
+msgstr "October"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Uncertain"
+msgstr "Uncertain"
+
+#. module: base_calendar
+#: field:calendar.attendee,language:0
+msgid "Language"
+msgstr "Language"
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_occurs:0
+#: field:res.alarm,trigger_occurs:0
+msgid "Triggers"
+msgstr "Triggers"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "January"
+msgstr "January"
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_related:0
+#: field:res.alarm,trigger_related:0
+msgid "Related to"
+msgstr "Related to"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,interval:0
+#: field:calendar.alarm,trigger_interval:0
+#: field:calendar.event,interval:0
+#: field:calendar.todo,interval:0
+#: field:res.alarm,trigger_interval:0
+msgid "Interval"
+msgstr "Interval"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Wednesday"
+msgstr "Wednesday"
+
+#. module: base_calendar
+#: field:calendar.alarm,name:0
+#: view:calendar.event:0
+msgid "Summary"
+msgstr "Summary"
+
+#. module: base_calendar
+#: field:calendar.alarm,active:0
+#: field:calendar.event,active:0
+#: field:calendar.todo,active:0
+#: field:res.alarm,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation"
+msgstr "Invitation"
+
+#. module: base_calendar
+#: field:calendar.alarm,action:0
+msgid "Action"
+msgstr "Action"
+
+#. module: base_calendar
+#: help:calendar.alarm,duration:0
+#: help:res.alarm,duration:0
+msgid "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the other"
+msgstr "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the other"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event_edit_all
+msgid "Calendar Edit all event"
+msgstr "Calendar Edit all event"
+
+#. module: base_calendar
+#: help:calendar.attendee,role:0
+msgid "Participation role for the calendar user"
+msgstr "Participation role for the calendar user"
+
+#. module: base_calendar
+#: field:calendar.attendee,ref:0
+msgid "Event Ref"
+msgstr "Event Ref"
+
+#. module: base_calendar
+#: help:calendar.alarm,action:0
+msgid "Defines the action to be invoked when an alarm is triggered"
+msgstr "Defines the action to be invoked when an alarm is triggered"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Search Events"
+msgstr "Search Events"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Weekly"
+msgstr "Weekly"
+
+#. module: base_calendar
+#: help:calendar.alarm,active:0
+#: help:calendar.event,active:0
+#: help:calendar.todo,active:0
+#: help:res.alarm,active:0
+msgid "If the active field is set to true, it will allow you to hide the event alarm information without removing it."
+msgstr "If the active field is set to true, it will allow you to hide the event alarm information without removing it."
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_id:0
+#: field:calendar.todo,recurrent_id:0
+msgid "Recurrent ID date"
+msgstr "Recurrent ID date"
+
+#. module: base_calendar
+#: field:calendar.alarm,state:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,state:0
+#: view:calendar.event:0
+#: field:calendar.event,state:0
+#: field:calendar.todo,state:0
+msgid "State"
+msgstr "State"
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder Details"
+msgstr "Reminder Details"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "To Review"
+msgstr "To Review"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,freq:0
+#: field:calendar.event,freq:0
+#: field:calendar.todo,freq:0
+msgid "Frequency"
+msgstr "Frequency"
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: field:base_calendar.invite.attendee,user_ids:0
+msgid "Users"
+msgstr "Users"
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "of"
+msgstr "of"
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+#: view:calendar.event.edit.all:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_users
+msgid "res.users"
+msgstr "res.users"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Tuesday"
+msgstr "Tuesday"
+
+#. module: base_calendar
+#: help:calendar.alarm,description:0
+msgid "Provides a more complete description of the calendar component, than that provided by the \"SUMMARY\" property"
+msgstr "Provides a more complete description of the calendar component, than that provided by the \"SUMMARY\" property"
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Responsible User"
+msgstr "Responsible User"
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Busy"
+msgstr "Busy"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event
+msgid "Calendar Event"
+msgstr "Calendar Event"
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Tentative"
+msgstr "Tentative"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,user_id:0
+#: field:calendar.todo,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,rrule_type:0
+#: field:calendar.todo,rrule_type:0
+msgid "Recurrency"
+msgstr "Recurrency"
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form
+#: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations
+msgid "Event Invitations"
+msgstr "Event Invitations"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Thursday"
+msgstr "Thursday"
+
+#. module: base_calendar
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Custom"
+msgstr "Custom"
+
+#. module: base_calendar
+#: field:calendar.event,exrule:0
+#: field:calendar.todo,exrule:0
+msgid "Exception Rule"
+msgstr "Exception Rule"
+
+#. module: base_calendar
+#: help:calendar.attendee,language:0
+msgid "To specify the language for text values in aproperty or property parameter."
+msgstr "To specify the language for text values in aproperty or property parameter."
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Details"
+msgstr "Details"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,month_list:0
+#: field:calendar.event,month_list:0
+#: field:calendar.todo,month_list:0
+msgid "Month"
+msgstr "Month"
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+msgid "Invite People"
+msgstr "Invite People"
+
+#. module: base_calendar
+#: help:calendar.event,rrule:0
+#: help:calendar.todo,rrule:0
+msgid "Defines a rule or repeating pattern for recurring events\n"
+"e.g.: Every other month on the last Sunday of the month for 10 occurrences: FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
+msgstr "Defines a rule or repeating pattern for recurring events\n"
+"e.g.: Every other month on the last Sunday of the month for 10 occurrences: FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
+
+#. module: base_calendar
+#: field:calendar.attendee,dir:0
+msgid "URI Reference"
+msgstr "URI Reference"
+
+#. module: base_calendar
+#: field:calendar.alarm,description:0
+#: view:calendar.event:0
+#: field:calendar.event,description:0
+#: field:calendar.event,name:0
+#: field:calendar.todo,description:0
+#: field:calendar.todo,name:0
+msgid "Description"
+msgstr "Description"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "May"
+msgstr "May"
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,type:0
+#: view:calendar.attendee:0
+msgid "Type"
+msgstr "Type"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Search Invitations"
+msgstr "Search Invitations"
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "After"
+msgstr "After"
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Stop"
+msgstr "Stop"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_values
+msgid "ir.values"
+msgstr "ir.values"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_model
+msgid "Objects"
+msgstr "Objects"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Delegated"
+msgstr "Delegated"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,sa:0
+#: field:calendar.event,sa:0
+#: field:calendar.todo,sa:0
+msgid "Sat"
+msgstr "Sat"
+
+#. module: base_calendar
+#: model:ir.module.module,description:base_calendar.module_meta_information
+msgid "Full featured calendar system that supports:\n"
+" - Calendar of events\n"
+" - Alerts (create requests)\n"
+" - Recurring events\n"
+" - Invitations to people"
+msgstr "Full featured calendar system that supports:\n"
+" - Calendar of events\n"
+" - Alerts (create requests)\n"
+" - Recurring events\n"
+" - Invitations to people"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Minutely"
+msgstr "Minutely"
+
+#. module: base_calendar
+#: help:calendar.attendee,sent_by:0
+msgid "Specify the user that is acting on behalf of the calendar user"
+msgstr "Specify the user that is acting on behalf of the calendar user"
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date_deadline:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "February"
+msgstr "February"
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Resource"
+msgstr "Resource"
+
+#. module: base_calendar
+#: field:res.alarm,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: base_calendar
+#: field:calendar.event,exdate:0
+#: field:calendar.todo,exdate:0
+msgid "Exception Date/Times"
+msgstr "Exception Date/Times"
+
+#. module: base_calendar
+#: help:calendar.alarm,name:0
+msgid "Contains the text to be used as the message subject for email or contains the text to be used for display"
+msgstr "Contains the text to be used as the message subject for email or contains the text to be used for display"
+
+#. module: base_calendar
+#: field:calendar.event,alarm_id:0
+#: field:calendar.event,base_calendar_alarm_id:0
+#: field:calendar.todo,alarm_id:0
+#: field:calendar.todo,base_calendar_alarm_id:0
+msgid "Alarm"
+msgstr "Alarm"
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Please Apply Recurrency before applying Exception Rule."
+msgstr "Please Apply Recurrency before applying Exception Rule."
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by_uid:0
+msgid "Sent By User"
+msgstr "Sent By User"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "April"
+msgstr "April"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,week_list:0
+#: field:calendar.event,week_list:0
+#: field:calendar.todo,week_list:0
+msgid "Weekday"
+msgstr "Weekday"
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,byday:0
+#: field:calendar.event,byday:0
+#: field:calendar.todo,byday:0
+msgid "By day"
+msgstr "By day"
+
+#. module: base_calendar
+#: field:calendar.alarm,model_id:0
+msgid "Model"
+msgstr "Model"
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Audio"
+msgstr "Audio"
+
+#. module: base_calendar
+#: field:calendar.event,id:0
+#: field:calendar.todo,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "For information Purpose"
+msgstr "For information Purpose"
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+msgid "Invite"
+msgstr "Invite"
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_attendee
+msgid "Attendee information"
+msgstr "Attendee information"
+
+#. module: base_calendar
+#: field:calendar.alarm,res_id:0
+msgid "Resource ID"
+msgstr "Resource ID"
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+msgid "Needs Action"
+msgstr "Needs Action"
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by:0
+msgid "Sent By"
+msgstr "Sent By"
+
+#. module: base_calendar
+#: field:calendar.event,sequence:0
+#: field:calendar.todo,sequence:0
+msgid "Sequence"
+msgstr "Sequence"
+
+#. module: base_calendar
+#: field:calendar.event,vtimezone:0
+#: field:calendar.todo,vtimezone:0
+msgid "Timezone"
+msgstr "Timezone"
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Internal User"
+msgstr "Internal User"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Accept"
+msgstr "Accept"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Saturday"
+msgstr "Saturday"
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation To"
+msgstr "Invitation To"
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Second"
+msgstr "Second"
+
+#. module: base_calendar
+#: field:calendar.attendee,availability:0
+#: field:res.users,availability:0
+msgid "Free/Busy"
+msgstr "Free/Busy"
+
+#. module: base_calendar
+#: field:calendar.alarm,duration:0
+#: field:calendar.alarm,trigger_duration:0
+#: field:calendar.event,duration:0
+#: field:calendar.todo,date:0
+#: field:calendar.todo,duration:0
+#: field:res.alarm,duration:0
+#: field:res.alarm,trigger_duration:0
+msgid "Duration"
+msgstr "Duration"
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "External Email"
+msgstr "External Email"
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_date:0
+msgid "Trigger Date"
+msgstr "Trigger Date"
+
+#. module: base_calendar
+#: help:calendar.alarm,attach:0
+msgid "* Points to a sound resource, which is rendered when the alarm is triggered for audio,\n"
+" * File which is intended to be sent as message attachments for email,\n"
+" * Points to a procedure resource, which is invoked when the alarm is triggered for procedure."
+msgstr "* Points to a sound resource, which is rendered when the alarm is triggered for audio,\n"
+" * File which is intended to be sent as message attachments for email,\n"
+" * Points to a procedure resource, which is invoked when the alarm is triggered for procedure."
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fifth"
+msgstr "Fifth"
+
diff --git a/addons/base_calendar/i18n/fr.po b/addons/base_calendar/i18n/fr.po
new file mode 100644
index 00000000000..1c5efc1526c
--- /dev/null
+++ b/addons/base_calendar/i18n/fr.po
@@ -0,0 +1,1516 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * base_calendar
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-19 12:50:56+0000\n"
+"PO-Revision-Date: 2010-08-19 12:50:56+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: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event starts"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Hourly"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required to Join"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,exdate:0
+#: help:calendar.todo,exdate:0
+msgid "This property defines the list of date/time exceptions for a recurring calendar component."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event.edit.all,name:0
+msgid "Title"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Monthly"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invited User"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view
+#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm
+msgid "Alarms"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Sunday"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,role:0
+msgid "Role"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation details"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fourth"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,show_as:0
+#: field:calendar.todo,show_as:0
+msgid "Show as"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,day:0
+#: selection:base.calendar.set.exrule,select1:0
+#: field:calendar.event,day:0
+#: selection:calendar.event,select1:0
+#: field:calendar.todo,day:0
+#: selection:calendar.todo,select1:0
+msgid "Date of month"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Public"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Hours"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "March"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Friday"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,allday:0
+#: field:calendar.todo,allday:0
+msgid "All Day"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,select1:0
+#: field:calendar.event,select1:0
+#: field:calendar.todo,select1:0
+msgid "Option"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Free"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,rsvp:0
+msgid "Indicats whether the favor of a reply is requested"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,delegated_to:0
+msgid "The users that the original request was delegated to"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_to:0
+msgid "Delegated To"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,we:0
+#: field:calendar.event,we:0
+#: field:calendar.todo,we:0
+msgid "Wed"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Show time as"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,tu:0
+#: field:calendar.event,tu:0
+#: field:calendar.todo,tu:0
+msgid "Tue"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Yearly"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_related:0
+#: selection:res.alarm,trigger_related:0
+msgid "The event ends"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Last"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,state:0
+msgid "Status of the attendee's participation"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Room"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Days"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "No Repeat"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:0
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Chair Person"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Procedure"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Select data for Custom Rule"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_interval:0
+#: selection:res.alarm,trigger_interval:0
+msgid "Minutes"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Display"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "Edit all Occurrences"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation type"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Secondly"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,event_date:0
+#: field:calendar.attendee,event_date:0
+#: view:calendar.event:0
+msgid "Event Date"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Group By..."
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,partner_id:0
+msgid "Partner related to contact"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,cutype:0
+msgid "Specify the type of Invitation"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,exrule:0
+#: help:calendar.todo,exrule:0
+msgid "defines a rule or repeating pattern for an exception to a recurrence set"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,event_end_date:0
+#: field:calendar.attendee,event_end_date:0
+msgid "Event End Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Optional Participation"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,date_deadline:0
+#: field:calendar.todo,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.module.module,shortdesc:base_calendar.module_meta_information
+msgid "Basic Calendar Functionality"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,organizer:0
+#: field:calendar.event,organizer_id:0
+#: field:calendar.todo,organizer:0
+#: field:calendar.todo,organizer_id:0
+msgid "Organizer"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#: view:calendar.event:0
+#: model:res.request.link,name:base_calendar.request_link_meeting
+#, python-format
+msgid "Event"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "Before"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all
+msgid "Edit all events"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,attendee_ids:0
+#: field:calendar.event,attendee_ids:0
+#: field:calendar.todo,attendee_ids:0
+msgid "Attendees"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Confirm"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_todo
+msgid "Calendar Task"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,su:0
+#: field:calendar.event,su:0
+#: field:calendar.todo,su:0
+msgid "Sun"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,cutype:0
+msgid "Invite Type"
+msgstr ""
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder details"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,parent_ids:0
+msgid "Delegrated From"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,select1:0
+#: selection:calendar.event,select1:0
+#: selection:calendar.todo,select1:0
+msgid "Day of month"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,location:0
+#: field:calendar.event.edit.all,location:0
+#: field:calendar.todo,location:0
+msgid "Location"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,send_mail:0
+msgid "Send mail?"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,email:0
+#: selection:calendar.alarm,action:0
+#: field:calendar.attendee,email:0
+msgid "Email"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Event Detail"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Run"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_alarm
+msgid "Event alarm information"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Confidential"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,end_date:0
+#: field:calendar.event,end_date:0
+#: field:calendar.todo,end_date:0
+msgid "Repeat Until"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Visibility"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,rsvp:0
+msgid "Required Reply?"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,base_calendar_url:0
+#: field:calendar.todo,base_calendar_url:0
+msgid "Caldav URL"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_uid:0
+#: field:calendar.todo,recurrent_uid:0
+msgid "Recurrent ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "July"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Accepted"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,th:0
+#: field:calendar.event,th:0
+#: field:calendar.todo,th:0
+msgid "Thu"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,child_ids:0
+msgid "Delegrated To"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Required Reply"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "Participation required"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,create_date:0
+#: field:calendar.todo,create_date:0
+msgid "Created"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,class:0
+#: selection:calendar.todo,class:0
+msgid "Private"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Daily"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:0
+#, python-format
+msgid "Can not Duplicate"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,class:0
+#: field:calendar.todo,class:0
+msgid "Mark as"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_address_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Delegate"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,partner_id:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "Select data for ExRule"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Partner Contacts"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+msgid "_Ok"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "First"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Privacy"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Subject"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "September"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "December"
+msgstr ""
+
+#. module: base_calendar
+#: help:base_calendar.invite.attendee,send_mail:0
+msgid "Check this if you want to send an Email to Invited Person"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Availability"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event.edit.all:0
+msgid "_Save"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Individual"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,user_id:0
+msgid "Owner"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Delegation Info"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date:0
+msgid "Start Date"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,cn:0
+msgid "Common name"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Declined"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "My Role"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "My Events"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Decline"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Group"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Edit All"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,contact_ids:0
+msgid "Contacts"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_alarm
+msgid "Basic Alarm Information"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,fr:0
+#: field:calendar.event,fr:0
+#: field:calendar.todo,fr:0
+msgid "Fri"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Invitation Detail"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,member:0
+msgid "Member"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,location:0
+#: help:calendar.todo,location:0
+msgid "Location of Event"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,rrule:0
+#: field:calendar.todo,rrule:0
+msgid "Recurrent Rule"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,attach:0
+msgid "Attachment"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation From"
+msgstr ""
+
+#. module: base_calendar
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,alarm_id:0
+msgid "Reminder"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: model:ir.actions.act_window,name:base_calendar.action_base_calendar_set_exrule
+#: model:ir.model,name:base_calendar.model_base_calendar_set_exrule
+msgid "Set Exrule"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: model:ir.actions.act_window,name:base_calendar.action_view_event
+#: model:ir.ui.menu,name:base_calendar.menu_events
+msgid "Events"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard
+#: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee
+msgid "Invite Attendees"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,email:0
+msgid "Email of Invited Person"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,repeat:0
+#: field:res.alarm,repeat:0
+msgid "Repeat"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,dir:0
+msgid "Reference to the URIthat points to the directory information corresponding to the attendee."
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "August"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Monday"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Third"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "June"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,alarm_id:0
+msgid "Basic Alarm"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "The"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,delegated_from:0
+msgid "Delegated From"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: field:calendar.attendee,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "ExRule"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,date:0
+msgid "Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "November"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,member:0
+msgid "Indicate the groups that the attendee belongs to"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,mo:0
+#: field:calendar.event,mo:0
+#: field:calendar.todo,mo:0
+msgid "Mon"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,count:0
+#: field:calendar.event,count:0
+#: field:calendar.todo,count:0
+msgid "Count"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "October"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Uncertain"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,language:0
+msgid "Language"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_occurs:0
+#: field:res.alarm,trigger_occurs:0
+msgid "Triggers"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "January"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_related:0
+#: field:res.alarm,trigger_related:0
+msgid "Related to"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,interval:0
+#: field:calendar.alarm,trigger_interval:0
+#: field:calendar.event,interval:0
+#: field:calendar.todo,interval:0
+#: field:res.alarm,trigger_interval:0
+msgid "Interval"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Wednesday"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,name:0
+#: view:calendar.event:0
+msgid "Summary"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,active:0
+#: field:calendar.event,active:0
+#: field:calendar.todo,active:0
+#: field:res.alarm,active:0
+msgid "Active"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,action:0
+msgid "Action"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,duration:0
+#: help:res.alarm,duration:0
+msgid "Duration' and 'Repeat' are both optional, but if one occurs, so MUST the other"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event_edit_all
+msgid "Calendar Edit all event"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,role:0
+msgid "Participation role for the calendar user"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,ref:0
+msgid "Event Ref"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,action:0
+msgid "Defines the action to be invoked when an alarm is triggered"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Search Events"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,freq:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Weekly"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,active:0
+#: help:calendar.event,active:0
+#: help:calendar.todo,active:0
+#: help:res.alarm,active:0
+msgid "If the active field is set to true, it will allow you to hide the event alarm information without removing it."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,recurrent_id:0
+#: field:calendar.todo,recurrent_id:0
+msgid "Recurrent ID date"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,state:0
+#: view:calendar.attendee:0
+#: field:calendar.attendee,state:0
+#: view:calendar.event:0
+#: field:calendar.event,state:0
+#: field:calendar.todo,state:0
+msgid "State"
+msgstr ""
+
+#. module: base_calendar
+#: view:res.alarm:0
+msgid "Reminder Details"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "To Review"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,freq:0
+#: field:calendar.event,freq:0
+#: field:calendar.todo,freq:0
+msgid "Frequency"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Done"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: field:base_calendar.invite.attendee,user_ids:0
+msgid "Users"
+msgstr ""
+
+#. module: base_calendar
+#: view:base.calendar.set.exrule:0
+#: view:calendar.event:0
+msgid "of"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+#: view:calendar.event.edit.all:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Tuesday"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,description:0
+msgid "Provides a more complete description of the calendar component, than that provided by the \"SUMMARY\" property"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Responsible User"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,availability:0
+#: selection:calendar.event,show_as:0
+#: selection:calendar.todo,show_as:0
+#: selection:res.users,availability:0
+msgid "Busy"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_event
+msgid "Calendar Event"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+#: selection:calendar.event,state:0
+#: selection:calendar.todo,state:0
+msgid "Tentative"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,user_id:0
+#: field:calendar.todo,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event,rrule_type:0
+#: field:calendar.todo,rrule_type:0
+msgid "Recurrency"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form
+#: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations
+msgid "Event Invitations"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Thursday"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.event,rrule_type:0
+#: selection:calendar.todo,rrule_type:0
+msgid "Custom"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,exrule:0
+#: field:calendar.todo,exrule:0
+msgid "Exception Rule"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,language:0
+msgid "To specify the language for text values in aproperty or property parameter."
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+msgid "Details"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,month_list:0
+#: field:calendar.event,month_list:0
+#: field:calendar.todo,month_list:0
+msgid "Month"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+#: view:calendar.event:0
+msgid "Invite People"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.event,rrule:0
+#: help:calendar.todo,rrule:0
+msgid "Defines a rule or repeating pattern for recurring events\n"
+"e.g.: Every other month on the last Sunday of the month for 10 occurrences: FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,dir:0
+msgid "URI Reference"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,description:0
+#: view:calendar.event:0
+#: field:calendar.event,description:0
+#: field:calendar.event,name:0
+#: field:calendar.todo,description:0
+#: field:calendar.todo,name:0
+msgid "Description"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "May"
+msgstr ""
+
+#. module: base_calendar
+#: field:base_calendar.invite.attendee,type:0
+#: view:calendar.attendee:0
+msgid "Type"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Search Invitations"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,trigger_occurs:0
+#: selection:res.alarm,trigger_occurs:0
+msgid "After"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,state:0
+msgid "Stop"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_values
+msgid "ir.values"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_ir_model
+msgid "Objects"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: selection:calendar.attendee,state:0
+msgid "Delegated"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,sa:0
+#: field:calendar.event,sa:0
+#: field:calendar.todo,sa:0
+msgid "Sat"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.module.module,description:base_calendar.module_meta_information
+msgid "Full featured calendar system that supports:\n"
+" - Calendar of events\n"
+" - Alerts (create requests)\n"
+" - Recurring events\n"
+" - Invitations to people"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,freq:0
+#: selection:calendar.event,freq:0
+#: selection:calendar.todo,freq:0
+msgid "Minutely"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.attendee,sent_by:0
+msgid "Specify the user that is acting on behalf of the calendar user"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.event:0
+#: field:calendar.event.edit.all,date_deadline:0
+msgid "End Date"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "February"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,cutype:0
+msgid "Resource"
+msgstr ""
+
+#. module: base_calendar
+#: field:res.alarm,name:0
+msgid "Name"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,exdate:0
+#: field:calendar.todo,exdate:0
+msgid "Exception Date/Times"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,name:0
+msgid "Contains the text to be used as the message subject for email or contains the text to be used for display"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,alarm_id:0
+#: field:calendar.event,base_calendar_alarm_id:0
+#: field:calendar.todo,alarm_id:0
+#: field:calendar.todo,base_calendar_alarm_id:0
+msgid "Alarm"
+msgstr ""
+
+#. module: base_calendar
+#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:0
+#, python-format
+msgid "Please Apply Recurrency before applying Exception Rule."
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by_uid:0
+msgid "Sent By User"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,month_list:0
+#: selection:calendar.event,month_list:0
+#: selection:calendar.todo,month_list:0
+msgid "April"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,week_list:0
+#: field:calendar.event,week_list:0
+#: field:calendar.todo,week_list:0
+msgid "Weekday"
+msgstr ""
+
+#. module: base_calendar
+#: field:base.calendar.set.exrule,byday:0
+#: field:calendar.event,byday:0
+#: field:calendar.todo,byday:0
+msgid "By day"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.alarm,action:0
+msgid "Audio"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,id:0
+#: field:calendar.todo,id:0
+msgid "ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,role:0
+msgid "For information Purpose"
+msgstr ""
+
+#. module: base_calendar
+#: view:base_calendar.invite.attendee:0
+msgid "Invite"
+msgstr ""
+
+#. module: base_calendar
+#: model:ir.model,name:base_calendar.model_calendar_attendee
+msgid "Attendee information"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: base_calendar
+#: selection:calendar.attendee,state:0
+msgid "Needs Action"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,sent_by:0
+msgid "Sent By"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,sequence:0
+#: field:calendar.todo,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.event,vtimezone:0
+#: field:calendar.todo,vtimezone:0
+msgid "Timezone"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "Internal User"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+#: view:calendar.event:0
+msgid "Accept"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,week_list:0
+#: selection:calendar.event,week_list:0
+#: selection:calendar.todo,week_list:0
+msgid "Saturday"
+msgstr ""
+
+#. module: base_calendar
+#: view:calendar.attendee:0
+msgid "Invitation To"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Second"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.attendee,availability:0
+#: field:res.users,availability:0
+msgid "Free/Busy"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,duration:0
+#: field:calendar.alarm,trigger_duration:0
+#: field:calendar.event,duration:0
+#: field:calendar.todo,date:0
+#: field:calendar.todo,duration:0
+#: field:res.alarm,duration:0
+#: field:res.alarm,trigger_duration:0
+msgid "Duration"
+msgstr ""
+
+#. module: base_calendar
+#: selection:base_calendar.invite.attendee,type:0
+msgid "External Email"
+msgstr ""
+
+#. module: base_calendar
+#: field:calendar.alarm,trigger_date:0
+msgid "Trigger Date"
+msgstr ""
+
+#. module: base_calendar
+#: help:calendar.alarm,attach:0
+msgid "* Points to a sound resource, which is rendered when the alarm is triggered for audio,\n"
+" * File which is intended to be sent as message attachments for email,\n"
+" * Points to a procedure resource, which is invoked when the alarm is triggered for procedure."
+msgstr ""
+
+#. module: base_calendar
+#: selection:base.calendar.set.exrule,byday:0
+#: selection:calendar.event,byday:0
+#: selection:calendar.todo,byday:0
+msgid "Fifth"
+msgstr ""
+
diff --git a/addons/base_calendar/security/ir.model.access.csv b/addons/base_calendar/security/ir.model.access.csv
index f54b3f0470b..aa269e9ff18 100644
--- a/addons/base_calendar/security/ir.model.access.csv
+++ b/addons/base_calendar/security/ir.model.access.csv
@@ -1,6 +1,6 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_calendar_attendee","calendar.attendee","model_calendar_attendee","base.group_system",1,1,1,1
-"access_calendar_alarm","calendar.alarm","model_calendar_alarm","base.group_system",1,1,1,1
-"access_res_alarm","res.alarm","model_res_alarm","base.group_system",1,1,1,1
-"access_calendar_todo","calendar.todo","model_calendar_todo","base.group_system",1,1,1,1
-"access_calendar_event","calendar.event.user","model_calendar_event","base.group_system",1,1,1,1
+"access_calendar_attendee","calendar.attendee","model_calendar_attendee","base.group_user",1,1,1,1
+"access_calendar_alarm","calendar.alarm","model_calendar_alarm","base.group_user",1,1,1,1
+"access_res_alarm","res.alarm","model_res_alarm","base.group_user",1,1,1,1
+"access_calendar_todo","calendar.todo","model_calendar_todo","base.group_user",1,1,1,1
+"access_calendar_event","calendar.event","model_calendar_event","base.group_user",1,1,1,1
diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml
index bea5ea66a84..494787bbf97 100644
--- a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml
+++ b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml
@@ -10,6 +10,7 @@
form
+
+
diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py
index 04bcd6eaa22..10c283213bd 100644
--- a/addons/caldav/calendar.py
+++ b/addons/caldav/calendar.py
@@ -75,15 +75,69 @@ def uid2openobjectid(cr, uidval, oomodel, rdate):
return (False, None)
def openobjectid2uid(cr, uidval, oomodel):
- """ Open Object Id To UId
+ """ Gives the value of UID for VEVENT
@param cr: the current row, from the database cursor,
- @param uidval: Get USerId vale
+ @param uidval: Id value of the Event
@oomodel: Open Object ModelName """
value = 'OpenObject-%s_%s@%s' % (oomodel, uidval, cr.dbname)
return value
-def get_attribute_mapping(cr, uid, calname, context={}):
+def mailto2str(arg):
+ """Take a dict of mail and convert to string.
+ """
+ ret = []
+ if isinstance(arg, dict):
+ args = [arg,]
+ else:
+ args = arg
+
+ for ard in args:
+ rstr = ard.get('name','')
+ if ard.get('company',False):
+ rstr += ' (%s)' % ard.get('company')
+ if ard.get('email'):
+ rstr += ' <%s>' % ard.get('email')
+ ret.append(rstr)
+ return ', '.join(ret)
+
+def str2mailto(emailstr, multi=False):
+ """Split one email string to a dict of name, company, mail parts
+
+ @param multi Return an array, recognize comma-sep
+ """
+ # TODO: move to tools or sth.
+ mege = re.compile(r'([^\(\<]+) *(\((.*?)\))? *(\< ?(.*?) ?\>)? ?(\((.*?)\))? *$')
+
+ mailz= [emailstr,]
+ retz = []
+ if multi:
+ mailz = emailstr.split(',')
+
+ for mas in mailz:
+ m = mege.match(mas.strip())
+ if not m:
+ # one of the rare non-matching strings is "sad" :(
+ # retz.append({ 'name': mas.strip() })
+ # continue
+ raise ValueError("Invalid email address %r" % mas)
+ rd = { 'name': m.group(1).strip(),
+ 'email': m.group(5), }
+ if m.group(2):
+ rd['company'] = m.group(3).strip()
+ elif m.group(6):
+ rd['company'] = m.group(7).strip()
+
+ if rd['name'].startswith('"') and rd['name'].endswith('"'):
+ rd['name'] = rd['name'][1:-1]
+ retz.append(rd)
+
+ if multi:
+ return retz
+ else:
+ return retz[0]
+
+def get_attribute_mapping(cr, uid, calname, context=None):
""" Attribute Mapping with Basic calendar fields and lines
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@@ -176,8 +230,6 @@ def map_data(cr, uid, obj, context=None):
class CalDAV(object):
__attribute__ = {}
-
-
def ical_set(self, name, value, type):
""" set calendar Attribute
@param self: The object pointer,
@@ -220,6 +272,16 @@ class CalDAV(object):
self.__attribute__[name][type] = None
return True
+ def format_date_tz(self, src_date, tz=None):
+ """ This function converts date into specifice timezone value
+ @param src_date: Date to be converted (datetime.datetime)
+ @return: Converted datetime.datetime object for the date
+ """
+ format = tools.DEFAULT_SERVER_DATETIME_FORMAT
+ date_str = src_date.strftime('%Y-%m-%d %H:%M:%S')
+ res_date = tools.server_to_local_timestamp(date_str, format, format, tz)
+ return datetime.strptime(res_date, "%Y-%m-%d %H:%M:%S")
+
def parse_ics(self, cr, uid, child, cal_children=None, context=None):
""" parse calendaring and scheduling information
@param self: The object pointer
@@ -228,9 +290,16 @@ class CalDAV(object):
@param context: A standard dictionary for contextual values """
att_data = []
+ exdates = []
+ _server_tzinfo = pytz.timezone(tools.get_server_timezone())
+
for cal_data in child.getChildren():
if cal_data.name.lower() == 'organizer':
- self.ical_set(cal_data.name.lower(), {'name': cal_data.params.get('CN') and cal_data.params.get('CN')[0]}, 'value')
+ dmail = { 'name': cal_data.params.get('CN', ['',])[0],
+ 'email': cal_data.value.lower().replace('mailto:',''),
+ # TODO: company?
+ }
+ self.ical_set(cal_data.name.lower(), mailto2str(dmail), 'value')
continue
if cal_data.name.lower() == 'attendee':
ctx = context.copy()
@@ -249,13 +318,18 @@ class CalDAV(object):
self.ical_set(cal_data.name.lower(), vals, 'value')
continue
if cal_data.name.lower() == 'exdate':
- exval = map(lambda x: str(x), cal_data.value)
- self.ical_set(cal_data.name.lower(), ','.join(exval), 'value')
+ exdates += cal_data.value
+ exvals = []
+ for exdate in exdates:
+ exvals.append(datetime.fromtimestamp(time.mktime(exdate.utctimetuple())).strftime('%Y%m%dT%H%M%S'))
+ self.ical_set(cal_data.name.lower(), ','.join(exvals), 'value')
continue
if cal_data.name.lower() in self.__attribute__:
-
if cal_data.params.get('X-VOBJ-ORIGINAL-TZID'):
self.ical_set('vtimezone', cal_data.params.get('X-VOBJ-ORIGINAL-TZID'), 'value')
+ date_utc = cal_data.value.astimezone(pytz.utc)
+ self.ical_set(cal_data.name.lower(), date_utc, 'value')
+ continue
self.ical_set(cal_data.name.lower(), cal_data.value, 'value')
vals = map_data(cr, uid, self, context=context)
return vals
@@ -272,6 +346,8 @@ class CalDAV(object):
timezones = []
for data in datas:
tzval = None
+ exfield = None
+ exdates = []
vevent = ical.add(name)
for field in self.__attribute__.keys():
map_field = self.ical_get(field, 'field')
@@ -282,6 +358,8 @@ class CalDAV(object):
if not model:
continue
uidval = openobjectid2uid(cr, data[map_field], model)
+ #Computation for getting events with the same UID (RFC4791 Section4.1)
+ #START
model_obj = self.pool.get(model)
r_ids = []
if model_obj._columns.get('recurrent_uid', None):
@@ -289,8 +367,13 @@ class CalDAV(object):
% (model_obj._table, data[map_field]))
r_ids = map(lambda x: x[0], cr.fetchall())
if r_ids:
- rcal = self.export_cal(cr, uid, r_ids, 'vevent', context=context)
+ r_datas = model_obj.read(cr, uid, r_ids, context=context)
+ rcal = CalDAV.export_cal(self, cr, uid, r_datas, 'vevent', context=context)
+ for revents in rcal.contents.get('vevent', []):
+ ical.contents['vevent'].append(revents)
+ #END
if data.get('recurrent_uid', None):
+ # Change the UID value in case of modified event from any recurrent event
uidval = openobjectid2uid(cr, data['recurrent_uid'], model)
vevent.add('uid').value = uidval
elif field == 'attendee' and data[map_field]:
@@ -305,30 +388,57 @@ class CalDAV(object):
alarm_obj = self.pool.get('basic.calendar.alarm')
vevent = alarm_obj.export_cal(cr, uid, model, \
data[map_field][0], vevent, context=ctx)
- elif field == 'vtimezone' and data[map_field] and data[map_field] not in timezones:
+ elif field == 'vtimezone' and data[map_field]:
tzval = data[map_field]
- tz_obj = self.pool.get('basic.calendar.timezone')
- ical = tz_obj.export_cal(cr, uid, None, \
- data[map_field], ical, context=context)
- timezones.append(data[map_field])
+ if tzval not in timezones:
+ tz_obj = self.pool.get('basic.calendar.timezone')
+ ical = tz_obj.export_cal(cr, uid, None, \
+ data[map_field], ical, context=context)
+ timezones.append(data[map_field])
+ if vevent.contents.get('recurrence-id'):
+ # Convert recurrence-id field value accroding to timezone value
+ recurid_val = vevent.contents.get('recurrence-id')[0].value
+ vevent.contents.get('recurrence-id')[0].params['TZID'] = [tzval.title()]
+ vevent.contents.get('recurrence-id')[0].value = self.format_date_tz(recurid_val, tzval.title())
+ if exfield:
+ # Set exdates according to timezone value
+ # This is the case when timezone mapping comes after the exdate mapping
+ # and we have exdate value available
+ exfield.params['TZID'] = [tzval.title()]
+ exdates_updated = []
+ for exdate in exdates:
+ exdates_updated.append(self.format_date_tz(parser.parse(exdate), tzval.title()))
+ exfield.value = exdates_updated
elif field == 'organizer' and data[map_field]:
+ organizer = str2mailto(data[map_field])
event_org = vevent.add('organizer')
- organizer_id = data[map_field][0]
- user_obj = self.pool.get('res.users')
- organizer = user_obj.browse(cr, uid, organizer_id, context=context)
- event_org.params['CN'] = [organizer.name]
- event_org.value = 'MAILTO:' + (organizer.user_email or organizer.name)
+ event_org.params['CN'] = [organizer['name']]
+ event_org.value = 'MAILTO:' + (organizer.get('email') or '')
+ # TODO: company?
elif data[map_field]:
if map_type in ("char", "text"):
if field in ('exdate'):
- vevent.add(field).value = map(parser.parse, (data[map_field]).split(','))
+ exfield = vevent.add(field)
+ exdates = (data[map_field]).split(',')
+ if tzval:
+ # Set exdates according to timezone value
+ # This is the case when timezone mapping comes before the exdate mapping
+ # and we have timezone value available
+ exfield.params['TZID'] = [tzval.title()]
+ exdates_updated = []
+ for exdate in exdates:
+ exdates_updated.append(self.format_date_tz(parser.parse(exdate), tzval.title()))
+ exfield.value = exdates_updated
else:
vevent.add(field).value = tools.ustr(data[map_field])
elif map_type in ('datetime', 'date') and data[map_field]:
dtfield = vevent.add(field)
- dtfield.value = parser.parse(data[map_field])
if tzval:
+ # Export the date according to the event timezone value
dtfield.params['TZID'] = [tzval.title()]
+ dtfield.value = self.format_date_tz(parser.parse(data[map_field]), tzval.title())
+ else:
+ dtfield.value = parser.parse(data[map_field])
elif map_type == "timedelta":
vevent.add(field).value = timedelta(hours=data[map_field])
elif map_type == "many2one":
@@ -344,7 +454,7 @@ class CalDAV(object):
vevent.add(field).value = key1
return vevent
- def check_import(self, cr, uid, vals, context={}):
+ def check_import(self, cr, uid, vals, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -352,15 +462,23 @@ class CalDAV(object):
@param vals: Get Values
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
ids = []
model_obj = self.pool.get(context.get('model'))
recur_pool = {}
try:
for val in vals:
- exists, r_id = uid2openobjectid(cr, val['id'], context.get('model'), \
+ # Compute value of duration
+ if 'date_deadline' in val and 'duration' not in val:
+ start = datetime.strptime(val['date'], '%Y-%m-%d %H:%M:%S')
+ end = datetime.strptime(val['date_deadline'], '%Y-%m-%d %H:%M:%S')
+ diff = end - start
+ val['duration'] = (diff.seconds/float(86400) + diff.days) * 24
+ exists, r_id = calendar.uid2openobjectid(cr, val['id'], context.get('model'), \
val.get('recurrent_id'))
- if val.has_key('create_date'): val.pop('create_date')
+ if val.has_key('create_date'):
+ val.pop('create_date')
u_id = val.get('id', None)
val.pop('id')
if exists and r_id:
@@ -376,11 +494,16 @@ class CalDAV(object):
revent_id = model_obj.create(cr, uid, val)
ids.append(revent_id)
else:
+ __rege = re.compile(r'OpenObject-([\w|\.]+)_([0-9]+)@(\w+)$')
+ wematch = __rege.match(u_id.encode('utf8'))
+ if wematch:
+ model, recur_id, dbname = wematch.groups()
+ val.update({'recurrent_uid': recur_id})
event_id = model_obj.create(cr, uid, val)
recur_pool[u_id] = event_id
ids.append(event_id)
- except Exception, e:
- raise osv.except_osv(('Error !'), (str(e)))
+ except Exception:
+ raise
return ids
def export_cal(self, cr, uid, datas, vobj=None, context=None):
@@ -391,7 +514,6 @@ class CalDAV(object):
@param datas: Get Data's for caldav
@param context: A standard dictionary for contextual values
"""
-
try:
self.__attribute__ = get_attribute_mapping(cr, uid, self._calname, context)
ical = vobject.iCalendar()
@@ -451,6 +573,7 @@ class Calendar(CalDAV, osv.osv):
'line_ids': fields.one2many('basic.calendar.lines', 'calendar_id', 'Calendar Lines'),
'create_date': fields.datetime('Created Date', readonly=True),
'write_date': fields.datetime('Modifided Date', readonly=True),
+ 'description': fields.text("description"),
}
def get_calendar_objects(self, cr, uid, ids, parent=None, domain=None, context=None):
@@ -467,14 +590,17 @@ class Calendar(CalDAV, osv.osv):
continue
if line.name in ('valarm', 'attendee'):
continue
- line_domain = eval(line.domain)
+ line_domain = eval(line.domain or '[]')
line_domain += domain
if ctx_res_id:
line_domain += [('id','=',ctx_res_id)]
mod_obj = self.pool.get(line.object_id.model)
- data_ids = mod_obj.search(cr, uid, line_domain, context=context)
+ data_ids = mod_obj.search(cr, uid, line_domain, order="id", context=context)
for data in mod_obj.browse(cr, uid, data_ids, context):
ctx = parent and parent.context or None
+ if data.recurrent_uid:
+ # Skip for event which is child of other event
+ continue
node = res_node_calendar('%s.ics' %data.id, parent, ctx, data, line.object_id.model, data.id)
res.append(node)
return res
@@ -483,7 +609,6 @@ class Calendar(CalDAV, osv.osv):
""" Export Calendar
@param ids: List of calendar’s IDs
@param vobj: the type of object to export
-
@return the ical data.
"""
if not context:
@@ -497,7 +622,7 @@ class Calendar(CalDAV, osv.osv):
continue
if line.name in ('valarm', 'attendee'):
continue
- domain = eval(line.domain)
+ domain = eval(line.domain or '[]')
if ctx_res_id:
domain += [('id','=',ctx_res_id)]
mod_obj = self.pool.get(line.object_id.model)
@@ -518,7 +643,6 @@ class Calendar(CalDAV, osv.osv):
@param data_id: Get Data’s ID or False
@param context: A standard dictionary for contextual values
"""
-
if not context:
context = {}
vals = []
@@ -555,6 +679,7 @@ class Calendar(CalDAV, osv.osv):
r = self.check_import(cr, uid, vals, context=context)
res.extend(r)
return res
+
Calendar()
@@ -580,7 +705,7 @@ class basic_calendar_line(osv.osv):
'domain': lambda *a: '[]',
}
- def create(self, cr, uid, vals, context={}):
+ def create(self, cr, uid, vals, context=None):
""" create calendar's line
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -662,7 +787,7 @@ class basic_calendar_fields(osv.osv):
raise osv.except_osv(_('Warning !'), _('Please provide proper configuration of "%s" in Calendar Lines' % (name)))
return True
- def create(self, cr, uid, vals, context={}):
+ def create(self, cr, uid, vals, context=None):
""" Create Calendar's fields
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -739,7 +864,7 @@ class Event(CalDAV, osv.osv_memory):
'dtend': None, # Use: O-1, Type: DATE-TIME, Specifies the date and time that a calendar component ends.
}
- def export_cal(self, cr, uid, datas, vobj='vevent', context={}):
+ def export_cal(self, cr, uid, datas, vobj='vevent', context=None):
""" Export calendar
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -792,7 +917,7 @@ class ToDo(CalDAV, osv.osv_memory):
'rrule': None,
}
- def export_cal(self, cr, uid, datas, vobj='vevent', context={}):
+ def export_cal(self, cr, uid, datas, vobj='vevent', context=None):
""" Export Calendar
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -842,7 +967,7 @@ class Timezone(CalDAV, osv.osv_memory):
'x-prop': None, # Use: O-n, Type: Text,
}
- def get_name_offset(self, cr, uid, tzid, context={}):
+ def get_name_offset(self, cr, uid, tzid, context=None):
""" Get Name Offset value
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -859,7 +984,7 @@ class Timezone(CalDAV, osv.osv_memory):
realoffset = (val < 0 and ('-' + realoffset) or ('+' + realoffset))
return (mydt.tzname(), realoffset)
- def export_cal(self, cr, uid, model, tzid, ical, context={}):
+ def export_cal(self, cr, uid, model, tzid, ical, context=None):
""" Export Calendar
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -867,7 +992,8 @@ class Timezone(CalDAV, osv.osv_memory):
@param model: Get Model's name
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
ctx = context.copy()
ctx.update({'model': model})
cal_tz = ical.add('vtimezone')
@@ -876,7 +1002,8 @@ class Timezone(CalDAV, osv.osv_memory):
tzname, offset = self.get_name_offset(cr, uid, tzid)
tz_std.add("TZOFFSETFROM").value = offset
tz_std.add("TZOFFSETTO").value = offset
- tz_std.add("DTSTART").value = datetime.now() # TODO
+ #TODO: Get start date for timezone
+ tz_std.add("DTSTART").value = datetime.strptime('1970-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
tz_std.add("TZNAME").value = tzname
return ical
@@ -915,7 +1042,7 @@ class Alarm(CalDAV, osv.osv_memory):
'x-prop': None,
}
- def export_cal(self, cr, uid, model, alarm_id, vevent, context={}):
+ def export_cal(self, cr, uid, model, alarm_id, vevent, context=None):
""" Export Calendar
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -924,7 +1051,8 @@ class Alarm(CalDAV, osv.osv_memory):
@param alarm_id: Get Alarm's Id
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
valarm = vevent.add('valarm')
alarm_object = self.pool.get(model)
alarm_data = alarm_object.read(cr, uid, alarm_id, [])
@@ -1035,7 +1163,7 @@ class Attendee(CalDAV, osv.osv_memory):
vals = map_data(cr, uid, self, context=context)
return vals
- def export_cal(self, cr, uid, model, attendee_ids, vevent, context={}):
+ def export_cal(self, cr, uid, model, attendee_ids, vevent, context=None):
""" Export Calendar
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -1044,7 +1172,8 @@ class Attendee(CalDAV, osv.osv_memory):
@param attendee_ids: Get Attendee's Id
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
attendee_object = self.pool.get(model)
ctx = context.copy()
ctx.update({'model': model})
diff --git a/addons/caldav/wizard/calendar_event_export.py b/addons/caldav/wizard/calendar_event_export.py
index 0be54df9f56..ea90686b347 100644
--- a/addons/caldav/wizard/calendar_event_export.py
+++ b/addons/caldav/wizard/calendar_event_export.py
@@ -33,19 +33,20 @@ class calendar_event_export(osv.osv_memory):
Export Calendar Event.
"""
- def default_get(self, cr, uid, fields, context):
+ def default_get(self, cr, uid, fields, context=None):
"""
Get Default value for Name field.
"""
+ if not context:
+ context = {}
model = context.get('model', 'basic.calendar')
model_obj = self.pool.get(model)
- calendar = model_obj.export_cal(cr, uid, context['active_ids'], context)
res = super(calendar_event_export, self).default_get( cr, uid, fields, context=context)
name = 'OpenERP %s.ics' % (model_obj._description)
if 'name' in fields:
res.update({'name': name})
if 'file_path' in fields:
- calendar = model_obj.export_cal(cr, uid, context['active_ids'], context)
+ calendar = model_obj.export_cal(cr, uid, context['active_ids'], context=context)
res.update({'file_path': base64.encodestring(calendar)})
return res
diff --git a/addons/claim_from_delivery/i18n/claim_from_delivery.pot b/addons/claim_from_delivery/i18n/claim_from_delivery.pot
new file mode 100644
index 00000000000..470b7832572
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/claim_from_delivery.pot
@@ -0,0 +1,58 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * claim_from_delivery
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:02:51+0000\n"
+"PO-Revision-Date: 2010-08-20 12:02:51+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: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.module.module,description:claim_from_delivery.module_meta_information
+msgid "Create Claim from delivery order:\n"
+""
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
+msgid "Claim from delivery"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.model,name:claim_from_delivery.model_stock_picking
+msgid "Picking List"
+msgstr "Picking List"
+
+#. module: claim_from_delivery
+#: field:stock.picking,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
diff --git a/addons/claim_from_delivery/i18n/en_US.po b/addons/claim_from_delivery/i18n/en_US.po
new file mode 100644
index 00000000000..087d608d122
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/en_US.po
@@ -0,0 +1,59 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * claim_from_delivery
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:05:30+0000\n"
+"PO-Revision-Date: 2010-08-20 12:05:30+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: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim"
+msgstr "Claim"
+
+#. module: claim_from_delivery
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: claim_from_delivery
+#: 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: claim_from_delivery
+#: model:ir.module.module,description:claim_from_delivery.module_meta_information
+msgid "Create Claim from delivery order:\n"
+""
+msgstr "Create Claim from delivery order:\n"
+""
+
+#. module: claim_from_delivery
+#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
+msgid "Claim from delivery"
+msgstr "Claim from delivery"
+
+#. module: claim_from_delivery
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: claim_from_delivery
+#: model:ir.model,name:claim_from_delivery.model_stock_picking
+msgid "Picking List"
+msgstr "Picking List"
+
+#. module: claim_from_delivery
+#: field:stock.picking,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
diff --git a/addons/claim_from_delivery/i18n/fr.po b/addons/claim_from_delivery/i18n/fr.po
new file mode 100644
index 00000000000..470b7832572
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/fr.po
@@ -0,0 +1,58 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * claim_from_delivery
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:02:51+0000\n"
+"PO-Revision-Date: 2010-08-20 12:02:51+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: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.module.module,description:claim_from_delivery.module_meta_information
+msgid "Create Claim from delivery order:\n"
+""
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
+msgid "Claim from delivery"
+msgstr ""
+
+#. module: claim_from_delivery
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: claim_from_delivery
+#: model:ir.model,name:claim_from_delivery.model_stock_picking
+msgid "Picking List"
+msgstr "Picking List"
+
+#. module: claim_from_delivery
+#: field:stock.picking,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
diff --git a/addons/crm/board_crm_demo.xml b/addons/crm/board_crm_demo.xml
index 76caab9208c..9151d787af9 100644
--- a/addons/crm/board_crm_demo.xml
+++ b/addons/crm/board_crm_demo.xml
@@ -6,13 +6,6 @@
Administrator shortcut
Demo user startup menu
-->
-
diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml
index 9a5217a623a..f0cd7cfdefb 100644
--- a/addons/crm/board_crm_view.xml
+++ b/addons/crm/board_crm_view.xml
@@ -158,5 +158,6 @@
action="open_board_crm"
sequence="1"
id="menu_board_crm" icon="terp-graph"/>
+
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index ee182bdfc2f..84e884043ba 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -73,6 +73,35 @@ class crm_case(object):
return False
return user.address_id.partner_id.id
+ def copy(self, cr, uid, id, default=None, context=None):
+ """
+ Overrides orm copy method.
+ @param self: the object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param id: Id of mailgate thread
+ @param default: Dictionary of default values for copy.
+ @param context: A standard dictionary for contextual values
+ """
+ if context is None:
+ context = {}
+ if default is None:
+ default = {}
+
+ default.update({
+ 'message_ids': [],
+ })
+ if hasattr(self, '_columns'):
+ if self._columns.get('date_closed'):
+ default.update({
+ 'date_closed': False,
+ })
+ if self._columns.get('date_open'):
+ default.update({
+ 'date_open': False
+ })
+ return super(osv.osv, self).copy(cr, uid, id, default, context=context)
+
def _get_default_email(self, cr, uid, context):
"""Gives default email address for current user
@param self: The object pointer
@@ -451,6 +480,20 @@ class crm_case(object):
def format_mail(self, obj, body):
return self.pool.get('base.action.rule').format_mail(obj, body)
+ def message_followers(self, cr, uid, ids, context=None):
+ """ Get a list of emails of the people following this thread
+ """
+ res = {}
+ for case in self.browse(cr, uid, ids, context=context):
+ l=[]
+ if case.email_cc:
+ l.append(case.email_cc)
+ if case.user_id and case.user_id.user_email:
+ l.append(case.user_id.user_email)
+ res[case.id] = l
+ return res
+
+
class crm_case_section(osv.osv):
"""Sales Team"""
diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py
index 5f2a4ce63ee..39620c44139 100644
--- a/addons/crm/crm_installer.py
+++ b/addons/crm/crm_installer.py
@@ -40,6 +40,7 @@ class crm_installer(osv.osv_memory):
'sale_crm': fields.boolean('Opportunity to Quotation', help="This module relates sale to opportunity cases in the CRM."),
'fetchmail': fields.boolean('Fetch Emails', help="Fetchmail Server."),
'thunderbird': fields.boolean('Thunderbird', help="Thunderbird Interface."),
+ 'outlook': fields.boolean('MS-Outlook', help="Microsoft Office Outlook Interface."),
'wiki_sale_faq': fields.boolean('Sale FAQ', help="Sale FAQ."),
}
diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml
index 322f9425122..0b5b87ff485 100644
--- a/addons/crm/crm_installer_view.xml
+++ b/addons/crm/crm_installer_view.xml
@@ -41,8 +41,7 @@
-
-
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 6702e867dc7..5d5fb5d3114 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -36,7 +36,7 @@ CRM_LEAD_PENDING_STATES = (
crm.AVAILABLE_STATES[4][0], # Pending
)
-class crm_lead(osv.osv, crm_case):
+class crm_lead(crm_case, osv.osv):
""" CRM Lead Case """
_name = "crm.lead"
_description = "Lead"
@@ -344,7 +344,7 @@ class crm_lead(osv.osv, crm_case):
if isinstance(ids, (str, int, long)):
ids = [ids]
- if msg.get('priority'):
+ if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES):
vals['priority'] = msg.get('priority')
maps = {
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index 3b730456f5d..0bb854fea17 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -32,7 +32,7 @@
parent="base.menu_base_partner" sequence="1" />
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index b31e7b0df9d..b70174e8989 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -14,7 +14,7 @@
@@ -44,7 +44,7 @@
diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py
index 798f746f9e3..d8acbff7555 100644
--- a/addons/crm/crm_meeting.py
+++ b/addons/crm/crm_meeting.py
@@ -26,18 +26,18 @@ from osv import fields, osv
from tools.translate import _
import time
-class crm_lead(osv.osv, crm_case):
+class crm_lead(crm_case, osv.osv):
""" CRM Leads """
_name = 'crm.lead'
crm_lead()
-class crm_phonecall(osv.osv, crm_case):
+class crm_phonecall(crm_case, osv.osv):
""" CRM Phonecall """
_name = 'crm.phonecall'
crm_phonecall()
-class crm_meeting(osv.osv, crm_case):
+class crm_meeting(crm_case, osv.osv):
""" CRM Meeting Cases """
_name = 'crm.meeting'
diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml
index 457670aa282..53eabcf0136 100644
--- a/addons/crm/crm_meeting_menu.xml
+++ b/addons/crm/crm_meeting_menu.xml
@@ -112,7 +112,7 @@
+ groups="base.group_extended" />
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index 3c04006447f..1e36e7f43cd 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -32,6 +32,7 @@
groups="base.group_extended"
domain="[('object_id.model', '=', 'crm.meeting')]" />
+
-
+
diff --git a/addons/crm/crm_opportunity_menu.xml b/addons/crm/crm_opportunity_menu.xml
index 60ade626071..282dc78bb8c 100644
--- a/addons/crm/crm_opportunity_menu.xml
+++ b/addons/crm/crm_opportunity_menu.xml
@@ -30,6 +30,16 @@
{'search_default_user_id':uid,'search_default_current':1, 'default_type': 'opportunity'}
+ Opportunities allows you to track your best deals pipeline: history of
+the communication, expected revenues, stage of each opportunity,
+excepted closings, etc. Opportunities are usually connected with the
+email gateway: new emails may create opportunities and each opportunity
+automatically gets the history of the conversation with the customer.
+
+Your teams will be able to plan meeting and phonecalls from
+opportunities, to convert opportunities into quotations, to manage
+documents related to the opportunity, to track all activities related to
+this customer, etc.
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index a2503f54690..cb1d30954e1 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -6,6 +6,7 @@
Opportunities
crm.lead
form
+ 10
@@ -44,9 +45,15 @@
-
+
+
+
+
-
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 12a2f069cdc..cf3b89c1681 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -2,15 +2,13 @@
-
-
+
+ parent="base.menu_base_config" sequence="1" groups="base.group_extended,base.group_system"/>
-
+
@@ -18,12 +16,6 @@
-
-
@@ -91,7 +83,7 @@
+ parent="base.menu_sale_config_sales" />
@@ -330,7 +322,7 @@
diff --git a/addons/crm/i18n/fi.po b/addons/crm/i18n/fi.po
index 7a2e7128721..884fa50a18e 100644
--- a/addons/crm/i18n/fi.po
+++ b/addons/crm/i18n/fi.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10:16+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: Finnish \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:47+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -28,6 +28,8 @@ msgid ""
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
+"Tämä ominaisuus määrittelee listan päivä/aika poikkeuksia toistuvissa "
+"kalenterin osissa."
#. module: crm
#: help:crm.case.rule,act_mail_to_user:0
@@ -97,7 +99,7 @@ msgstr "Vaiheen nimi"
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0-act
#: model:ir.ui.menu,name:crm.next_id_51
msgid "Cases"
-msgstr "Tapahtumat"
+msgstr "Tapaukset"
#. module: crm
#: help:crm.segmentation,categ_id:0
@@ -135,7 +137,7 @@ msgstr "Määrä"
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
msgid "Normal or phone meeting for opportunity"
-msgstr ""
+msgstr "Tavallinen- tai puhelinkokous mahdollisuudelle"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim2
@@ -191,6 +193,7 @@ msgid ""
"Describes the action name.eg:on which object which ation to be taken on "
"basis of which condition"
msgstr ""
+"Kuvaa toiminnon nimen esim. riippuen kohteen toiminnoista ja olosuhteista"
#. module: crm
#: help:crm.case,section_id:0
@@ -198,6 +201,8 @@ msgid ""
"Section to which Case belongs to. Define Responsible user and Email account "
"for mail gateway."
msgstr ""
+"Osio johon tapaus kuuluu. Määritä vastuuhenkilö ja sähköpostitili "
+"yhdyskäytävälle"
#. module: crm
#: view:crm.case:0
@@ -320,7 +325,7 @@ msgstr "Toinen haastattelu"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
msgid "Subscribe to a Remote calendar"
-msgstr ""
+msgstr "Kirjaudu etäkalenteriin"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ-act
@@ -394,12 +399,12 @@ msgstr "Seuraava haastattelu"
#. module: crm
#: field:crm.case.rule,regex_history:0
msgid "Regular Expression on Case History"
-msgstr ""
+msgstr "Säännöllinen lauseke tilannehistoriassa"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
msgid "Email Add CC"
-msgstr ""
+msgstr "Lisää sähköpostin vastaanottaja"
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
@@ -938,6 +943,7 @@ msgid ""
"Category related to the section.Subdivide the CRM cases independently or "
"section-wise."
msgstr ""
+"Tähän osioon liittyvä kategoria jakaa CRM-tapaukset yksittäin tai osioittain."
#. module: crm
#: field:crm.case.rule,act_state:0
diff --git a/addons/crm/i18n/hr.po b/addons/crm/i18n/hr.po
index 2fa1cb9ac2e..3a98891adaa 100644
--- a/addons/crm/i18n/hr.po
+++ b/addons/crm/i18n/hr.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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:21+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: Vinteh\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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
diff --git a/addons/crm/i18n/it.po b/addons/crm/i18n/it.po
index 555891ce040..f1eca5c68ec 100644
--- a/addons/crm/i18n/it.po
+++ b/addons/crm/i18n/it.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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-03 04:27+0000\n"
-"Last-Translator: eLBati - albatos.com \n"
+"PO-Revision-Date: 2010-08-18 13:06+0000\n"
+"Last-Translator: vra (openerp) \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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -193,6 +193,8 @@ msgid ""
"Describes the action name.eg:on which object which ation to be taken on "
"basis of which condition"
msgstr ""
+"Descrive il nome dell'azione, ad es.: su quale oggetto, che azione deve "
+"essere presa, sulla base di che condizione"
#. module: crm
#: help:crm.case,section_id:0
@@ -200,6 +202,8 @@ msgid ""
"Section to which Case belongs to. Define Responsible user and Email account "
"for mail gateway."
msgstr ""
+"Seziona alla quale il Caso appartiene. Definisci l'utente Responsabile e "
+"l'indirizzo mail per l'invio di posta."
#. module: crm
#: view:crm.case:0
@@ -239,6 +243,8 @@ msgstr "Stipendio Proposto"
#: help:crm.case.section,sequence:0
msgid "Gives the sequence order when displaying a list of case sections."
msgstr ""
+"Assegna l'ordine in funzione della Sequenza quando viene visualizzata una "
+"lista di Sezioni di Casi."
#. module: crm
#: code:addons/crm/wizard/crm_job_wizard.py:0
@@ -396,7 +402,7 @@ msgstr "Prossimo colloquio"
#. module: crm
#: field:crm.case.rule,regex_history:0
msgid "Regular Expression on Case History"
-msgstr ""
+msgstr "Espressione regolare nello storico del caso"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
@@ -415,6 +421,9 @@ msgid ""
"customer. With each commercial opportunity, you can indicate the canall "
"which is this opportunity source."
msgstr ""
+"I canali rappresentano i differenti modi di comuncare disponibili per il "
+"cliente. Con tutte le opportunità commerciali, puoi indicare il canale che "
+"usa questa fonte di opportunità."
#. module: crm
#: view:crm.meeting:0
@@ -498,6 +507,8 @@ msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Spunta se vuoi che la regola marchi CC (mail inviata ad altre persone "
+"definite nelle azioni)."
#. module: crm
#: field:crm.meeting,class:0
@@ -817,7 +828,7 @@ msgstr "Contratto Firmato"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Subscribe to Remote ICS"
-msgstr ""
+msgstr "Sottoscrivi l'ICS remoto"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor1
diff --git a/addons/crm/i18n/lt.po b/addons/crm/i18n/lt.po
index a81ab97b349..56beae43ffc 100644
--- a/addons/crm/i18n/lt.po
+++ b/addons/crm/i18n/lt.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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10:05+0000\n"
"Last-Translator: Giedrius Slavinskas \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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: lt\n"
diff --git a/addons/crm/i18n/pl.po b/addons/crm/i18n/pl.po
index af61185ff7a..c5501e41930 100644
--- a/addons/crm/i18n/pl.po
+++ b/addons/crm/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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 05:13+0000\n"
+"PO-Revision-Date: 2010-08-29 10:23+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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -43,7 +43,7 @@ msgstr "Tytuł"
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
msgid "Cases by section and category2"
-msgstr "Sprawy wg sekcji i kategorii"
+msgstr "Sprawy wg sekcji i kategorii2"
#. module: crm
#: wizard_field:crm.lead.partner_create,init,close:0
@@ -71,7 +71,7 @@ msgstr "Wstrzymane prace"
#. module: crm
#: field:crm.case.rule,trg_state_to:0
msgid "Button Pressed"
-msgstr "Naciśnięto przycisk"
+msgstr "Naciśnięcie przycisku"
#. module: crm
#: view:crm.case:0
@@ -110,7 +110,7 @@ msgstr ""
#. module: crm
#: model:ir.ui.menu,name:crm.menu_hr
msgid "Human Resources"
-msgstr "Zasoby ludzkie"
+msgstr "Kadry"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
@@ -351,7 +351,7 @@ msgstr "Daty"
#. module: crm
#: view:crm.segmentation:0
msgid "Segmentation Test"
-msgstr "Test Segmentacji"
+msgstr "Test segmentacji"
#. module: crm
#: model:process.transition,name:crm.process_transition_leadpartner0
@@ -373,7 +373,7 @@ msgstr "Nazwa kontaktu"
#: selection:crm.lead.opportunity_set,create_partner,action:0
#: selection:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Link to an existing partner"
-msgstr "Połączenie do istniejącego partnera"
+msgstr "Połączenie do utworzonego partnera"
#. module: crm
#: field:crm.case.rule,trg_date_range_type:0
@@ -403,7 +403,7 @@ msgstr "Wyrażenie regularne dla historii sprawy"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
msgid "Email Add CC"
-msgstr ""
+msgstr "DW w email"
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
@@ -453,7 +453,7 @@ msgstr "Komunikacja"
#. module: crm
#: view:crm.case.rule:0
msgid "%(email_from)s = Partner email"
-msgstr ""
+msgstr "%(email_from)s = Email partnera"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead6
@@ -474,7 +474,7 @@ msgstr "Istniejący klient"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet2
msgid "Home"
-msgstr ""
+msgstr "Dom"
#. module: crm
#: field:crm.case,categ_id:0
@@ -501,6 +501,8 @@ msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Zaznacz to, jeśli chcesz, aby reguła wysyłała wiadomość DW (mail do dowolnej "
+"osoby zdefiniowanej w akcji)."
#. module: crm
#: field:crm.meeting,class:0
@@ -510,7 +512,7 @@ msgstr "Prywatność"
#. module: crm
#: view:crm.case.rule:0
msgid "%(partner)s = Partner name"
-msgstr ""
+msgstr "%(partner)s = Nazwa partnera"
#. module: crm
#: view:crm.case:0
@@ -820,7 +822,7 @@ msgstr "Umowę podpisano"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Subscribe to Remote ICS"
-msgstr ""
+msgstr "Powiąż ze zdalnym ICS"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor1
@@ -943,7 +945,7 @@ msgstr "Wyłączny"
msgid ""
"Category related to the section.Subdivide the CRM cases independently or "
"section-wise."
-msgstr ""
+msgstr "Kategoria związana z sekcją. Ustala podział spraw wewnątrz w sekcji."
#. module: crm
#: field:crm.case.rule,act_state:0
@@ -959,7 +961,7 @@ msgstr ""
#. module: crm
#: model:crm.case.category2,name:crm.category_lead6
msgid "Radio"
-msgstr ""
+msgstr "Radio"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity_assign_wizard
@@ -969,7 +971,7 @@ msgstr ""
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on States"
-msgstr "Warunki stanów"
+msgstr "Warunki dla stanów"
#. module: crm
#: field:crm.case.rule,trg_date_type:0
@@ -984,7 +986,7 @@ msgstr "Przeszukuj historie"
#. module: crm
#: help:crm.case.stage,sequence:0
msgid "Gives the sequence order when displaying a list of case stages."
-msgstr "Ustala kolejność wyświetlania listy etapów spraw."
+msgstr "Ustala kolejność wyświetlania listy spraw wg etapów."
#. module: crm
#: model:crm.case.section,name:crm.section_support3
@@ -1027,6 +1029,7 @@ msgid ""
"These people will receive a copy of the future communication between partner "
"and users by email"
msgstr ""
+"Te osoby otrzymają kopie korespondencji pomiędzy partnerem i użytkownikiem."
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
@@ -1128,7 +1131,7 @@ msgstr "Nazwa kategorii sprawy"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim2
msgid "Preventive"
-msgstr "Prewencyjnie"
+msgstr "Działania prewencyjne"
#. module: crm
#: field:crm.case.rule,act_email_cc:0
@@ -1155,7 +1158,7 @@ msgstr "Nie możesz przypisać do zamkniętej sprawy"
msgid ""
"Check this if you want the rule to send a reminder by email to the partner."
msgstr ""
-"Zaznacz, jeśli chcesz aby reguła wysyłała przypomnienie mailem do partnera."
+"Zaznacz, jeśli chcesz, aby reguła wysyłała przypomnienie mailem do partnera."
#. module: crm
#: code:addons/crm/crm_meeting.py:0
@@ -1170,7 +1173,7 @@ msgstr "Spotkania"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Case Fields"
-msgstr "Warunki na pola sprawy"
+msgstr "Warunki dla pól sprawy"
#. module: crm
#: field:crm.case,date_action_next:0
@@ -1183,7 +1186,7 @@ msgstr "Następna akcja"
#: selection:crm.case.rule,trg_date_type:0
#: view:crm.opportunity:0
msgid "Deadline"
-msgstr "Ostateczny czas ukończenia"
+msgstr "Termin"
#. module: crm
#: wizard_button:caldav.crm.export,init,end:0
@@ -1352,7 +1355,7 @@ msgstr "Spotkanie"
#. module: crm
#: view:crm.case.rule:0
msgid "%(partner_email)s = Partner email"
-msgstr ""
+msgstr "%(partner_email)s = Email partnera"
#. module: crm
#: view:crm.case:0
@@ -1823,7 +1826,7 @@ msgstr "Etap sprzedaży"
#. module: crm
#: field:crm.meeting,alarm_id:0
msgid "Alarm"
-msgstr ""
+msgstr "Przypomnienie"
#. module: crm
#: field:crm.case.rule,act_mail_to_watchers:0
@@ -2170,6 +2173,8 @@ msgid ""
"need a delay before the trigger date, like sending a reminder 15 minutes "
"before a meeting."
msgstr ""
+"Opóźnienie po czasie wyzwolenia. Możesz wstawić wartości ujemne, jeśli "
+"chcesz przypomnienie np. 15 min przed spotkaniem."
#. module: crm
#: view:crm.claim:0
@@ -2290,7 +2295,7 @@ msgstr "Sprawy spotkań"
#. module: crm
#: view:crm.job:0
msgid "Job Info"
-msgstr "Informacja o stanowisko"
+msgstr "Informacja o stanowisku"
#. module: crm
#: view:crm.meeting:0
@@ -2326,7 +2331,7 @@ msgstr "Praca - Formularz rekrutacji"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim1
msgid "Corrective"
-msgstr ""
+msgstr "Działania naprawcze"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity
@@ -2384,6 +2389,8 @@ msgid ""
"No E-Mail ID Found for the Responsible Partner or missing reply address in "
"section!"
msgstr ""
+"Nie znaleziono ID E-Mail dla partnera odpowiedzialnego lub brak adresu "
+"zwrotnego w sekcji!"
#. module: crm
#: view:crm.job:0
@@ -2491,6 +2498,9 @@ msgid ""
"mentality in relation to our services.The scale hasto be created with a "
"factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."
msgstr ""
+"Stany emocji pozwalają określać poziomy zadowolenia partnera w stosunku do "
+"naszej obsługi. Skala powinna być utworzona jako liczby od 0 (bardzie "
+"niezadowolony) do 10 (bardzo zadowolony)."
#. module: crm
#: field:crm.meeting,freebusy:0
@@ -2653,7 +2663,7 @@ msgstr "Reklamacje"
#. module: crm
#: field:crm.segmentation,som_interval_decrease:0
msgid "Decrease (0>1)"
-msgstr ""
+msgstr "Zmniejsz (0>1)"
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_case_history_event
@@ -2674,7 +2684,7 @@ msgstr "Do"
#. module: crm
#: view:crm.case.rule:0
msgid "%(case_user_email)s = Responsible email"
-msgstr "%(case_user_email)s = email odpowiedzialnego"
+msgstr "%(case_user_email)s = Email odpowiedzialnego"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_presale
@@ -2833,7 +2843,7 @@ msgstr "Reklamacja/Opis akcji"
#. module: crm
#: field:crm.case.rule,trg_max_history:0
msgid "Maximum Communication History"
-msgstr ""
+msgstr "Maksimum historii komunikacji"
#. module: crm
#: view:crm.lead:0
@@ -3179,7 +3189,7 @@ msgstr "Anulowano"
#. module: crm
#: view:crm.job:0
msgid "Applied Job"
-msgstr ""
+msgstr "Zgłoszenia na stanowisko"
#. module: crm
#: help:crm.meeting,exrule:0
@@ -3191,7 +3201,7 @@ msgstr ""
#. module: crm
#: view:crm.phonecall:0
msgid "Relevant"
-msgstr "Odpowiedni"
+msgstr "Priorytet"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,name:0
@@ -3294,7 +3304,7 @@ msgstr "Kanał"
#. module: crm
#: help:crm.case.rule,act_mail_to_email:0
msgid "Email-id of the persons whom mail is to be sent"
-msgstr ""
+msgstr "Email osoby, do której ma być wysłana wiadomość"
#. module: crm
#: model:ir.model,name:crm.model_crm_claim
@@ -3485,7 +3495,7 @@ msgstr "Drzewo funduszy"
#. module: crm
#: field:crm.case.rule,act_method:0
msgid "Call Object Method"
-msgstr ""
+msgstr "Metoda wywołania obiektu"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_fund_all1
@@ -3517,7 +3527,7 @@ msgstr "Odnośnik 2"
#. module: crm
#: view:crm.segmentation:0
msgid "Sales Purchase"
-msgstr ""
+msgstr "Sprzedaż-Zakupy"
#. module: crm
#: view:crm.job:0
@@ -3655,7 +3665,7 @@ msgstr "Listopad"
#. module: crm
#: model:crm.case.category2,name:crm.category_job2
msgid "Licenced"
-msgstr ""
+msgstr "Licencjonowane"
#. module: crm
#: field:crm.case.section,parent_id:0
@@ -3769,7 +3779,7 @@ msgstr ""
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Case Partner"
-msgstr "Warunki na partnera sprawy"
+msgstr "Warunki dla partnera sprawy"
#. module: crm
#: field:crm.case.section,code:0
@@ -3912,7 +3922,7 @@ msgstr "Zaplanuj spotkanie"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Priority Range"
-msgstr "Warunki na zakres priorytetu"
+msgstr "Warunki dla zakres priorytetu"
#. module: crm
#: help:crm.segmentation,som_interval_decrease:0
@@ -3988,7 +3998,7 @@ msgstr "Log sprawy"
#. module: crm
#: view:crm.case.rule:0
msgid "Conditions on Timing"
-msgstr "Warunki na czas"
+msgstr "Warunki dla czasu"
#. module: crm
#: model:ir.model,name:crm.model_crm_helpdesk
diff --git a/addons/crm/i18n/pt.po b/addons/crm/i18n/pt.po
index 337e6f1d37a..cf75bb3720c 100644
--- a/addons/crm/i18n/pt.po
+++ b/addons/crm/i18n/pt.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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 10:03+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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
diff --git a/addons/crm/i18n/sk.po b/addons/crm/i18n/sk.po
index 520f36de46e..18dcd6639e6 100644
--- a/addons/crm/i18n/sk.po
+++ b/addons/crm/i18n/sk.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 05:44+0000\n"
+"PO-Revision-Date: 2010-08-29 08:38+0000\n"
"Last-Translator: Radoslav Sloboda \n"
"Language-Team: Slovak \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:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
diff --git a/addons/crm/i18n/tr.po b/addons/crm/i18n/tr.po
index b4112f3a5ee..a9b084cc3ae 100644
--- a/addons/crm/i18n/tr.po
+++ b/addons/crm/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: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-08-11 04:43+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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-12 03:48+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index 02e7601d6ce..e6b2f6af4f1 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -231,11 +231,11 @@
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index 66e8bd5cfa4..69402603d17 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -75,13 +75,9 @@
-
-
@@ -189,7 +185,7 @@
diff --git a/addons/crm/report/report_businessopp.py b/addons/crm/report/report_businessopp.py
index 5bce5fc6ef0..7cadb41359a 100644
--- a/addons/crm/report/report_businessopp.py
+++ b/addons/crm/report/report_businessopp.py
@@ -34,7 +34,6 @@ from report.interface import report_int
from pychart import *
theme.use_color = 1
-#theme.scale = 2
random.seed(0)
class external_pdf(render):
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index f9ffc78d50d..7179a8ffdad 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -42,8 +42,6 @@
"access_crm_case_section_custom_manager","crm.case.section.custom.manager","model_crm_case_section_custom","base.group_sale_manager",1,1,1,1
"access_crm_case_custom_user","crm.case.custom.user","model_crm_case_custom","base.group_sale_salesman",1,1,1,1
"access_crm_case_custom_manager","crm.case.custom.manager","model_crm_case_custom","base.group_sale_manager",1,1,1,1
-"access_crm_lead_extended","crm.lead.extended","model_crm_lead","base.group_extended",1,1,1,1
-"access_crm_phonecall_extended","crm.phonecall.extended","model_crm_phonecall","base.group_extended",1,1,1,1
"mail_gateway_mailgate_message_user","mail_gateway.mailgate.message.user","mail_gateway.model_mailgate_message","base.group_sale_salesman",1,1,1,1
"access_base_res_bank_system","base.res.bank system","base.model_res_bank","base.group_system",1,1,1,1
"access_crm_case_stage_system","crm.case.stage system","model_crm_case_stage","base.group_system",1,1,1,1
diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml
index 5ee0eda5375..b6af1f27e8e 100644
--- a/addons/crm/wizard/crm_merge_opportunities_view.xml
+++ b/addons/crm/wizard/crm_merge_opportunities_view.xml
@@ -34,16 +34,5 @@
new
-
-
-
\ No newline at end of file
diff --git a/addons/crm/wizard/crm_partner_to_opportunity.py b/addons/crm/wizard/crm_partner_to_opportunity.py
index 9e2847fb200..0df19df8eb7 100644
--- a/addons/crm/wizard/crm_partner_to_opportunity.py
+++ b/addons/crm/wizard/crm_partner_to_opportunity.py
@@ -47,7 +47,6 @@ class crm_partner2opportunity(osv.osv_memory):
@return : default values of fields.
"""
partner_obj = self.pool.get('res.partner')
- #data = context and context.get('active_id', False) or False
data = context and context.get('active_ids', []) or []
res = super(crm_partner2opportunity, self).default_get(cr, uid, fields, context=context)
@@ -58,13 +57,6 @@ class crm_partner2opportunity(osv.osv_memory):
res.update({'partner_id': data and data[0] or False})
return res
- def _select_data(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- part_obj = pool.get('res.partner')
- part = part_obj.read(cr, uid, data['id' ], ['name'])
- return {'partner_id' : data['id'], 'name' : part['name'] }
-
-
def make_opportunity(self, cr, uid, ids, context):
"""
@param self: The object pointer
@@ -120,4 +112,4 @@ class crm_partner2opportunity(osv.osv_memory):
crm_partner2opportunity()
-# 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/crm/wizard/crm_send_email.py b/addons/crm/wizard/crm_send_email.py
index 892b42ca460..ae4e87f30ad 100644
--- a/addons/crm/wizard/crm_send_email.py
+++ b/addons/crm/wizard/crm_send_email.py
@@ -104,7 +104,7 @@ class crm_send_new_email(osv.osv_memory):
res_id = hist.res_id
ref_id = hist.ref_id
case = case_pool.browse(cr, uid, res_id, context=context)
- emails = [obj.email_to]
+ emails = re.findall(r'([^ ,<@]+@[^> ,]+)', obj.email_to or '')
email_cc = re.findall(r'([^ ,<@]+@[^> ,]+)', obj.email_cc or '')
emails = filter(None, emails)
body = obj.body
@@ -238,7 +238,7 @@ class crm_send_new_email(osv.osv_memory):
res.update({'email_cc': email_cc})
if 'reply_to' in fields:
if hasattr(case, 'section_id'):
- res.update({'reply_to': case.section_id.reply_to})
+ res.update({'reply_to': case.section_id.reply_to or ''})
if 'state' in fields:
res['state'] = u'pending'
return res
diff --git a/addons/crm_caldav/crm_caldav.py b/addons/crm_caldav/crm_caldav.py
index 3c3e8b8ae2e..22f64f4d63d 100644
--- a/addons/crm_caldav/crm_caldav.py
+++ b/addons/crm_caldav/crm_caldav.py
@@ -20,14 +20,16 @@
##############################################################################
from osv import fields, osv
+from base_calendar import base_calendar
from crm import crm
from caldav import calendar
from datetime import datetime
+import re
class crm_meeting(osv.osv):
_inherit = 'crm.meeting'
- def export_cal(self, cr, uid, ids, context={}):
+ def export_cal(self, cr, uid, ids, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -35,14 +37,16 @@ class crm_meeting(osv.osv):
@param ids: List of CRM Meeting’s IDs
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
ids = map(lambda x: base_calendar.base_calendar_id2real_id(x), ids)
- event_data = self.read(cr, uid, ids)
+ event_data = self.read(cr, uid, ids, context=context)
event_obj = self.pool.get('basic.calendar.event')
- ical = event_obj.export_cal(cr, uid, event_data, context={'model': self._name})
+ context.update({'model': self._name})
+ ical = event_obj.export_cal(cr, uid, event_data, context=context)
return ical.serialize()
- def import_cal(self, cr, uid, data, data_id=None, context={}):
+ def import_cal(self, cr, uid, data, data_id=None, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -51,12 +55,13 @@ class crm_meeting(osv.osv):
@param data_id: calendar's Id
@param context: A standard dictionary for contextual values
"""
-
+ if not context:
+ context = {}
event_obj = self.pool.get('basic.calendar.event')
vals = event_obj.import_cal(cr, uid, data, context=context)
return self.check_import(cr, uid, vals, context=context)
- def check_import(self, cr, uid, vals, context={}):
+ def check_import(self, cr, uid, vals, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -64,14 +69,23 @@ class crm_meeting(osv.osv):
@param vals: Get Values
@param context: A standard dictionary for contextual values
"""
+ if not context:
+ context = {}
ids = []
model_obj = self.pool.get(context.get('model'))
recur_pool = {}
try:
for val in vals:
+ # Compute value of duration
+ if 'date_deadline' in val and 'duration' not in val:
+ start = datetime.strptime(val['date'], '%Y-%m-%d %H:%M:%S')
+ end = datetime.strptime(val['date_deadline'], '%Y-%m-%d %H:%M:%S')
+ diff = end - start
+ val['duration'] = (diff.seconds/float(86400) + diff.days) * 24
exists, r_id = calendar.uid2openobjectid(cr, val['id'], context.get('model'), \
val.get('recurrent_id'))
- if val.has_key('create_date'): val.pop('create_date')
+ if val.has_key('create_date'):
+ val.pop('create_date')
u_id = val.get('id', None)
val.pop('id')
if exists and r_id:
@@ -79,12 +93,6 @@ class crm_meeting(osv.osv):
model_obj.write(cr, uid, [r_id], val)
ids.append(r_id)
elif exists:
- # Compute value of duration
- if 'date_deadline' in val and 'duration' not in val:
- start = datetime.strptime(val['date'], '%Y-%m-%d %H:%M:%S')
- end = datetime.strptime(val['date_deadline'], '%Y-%m-%d %H:%M:%S')
- diff = end - start
- val['duration'] = (diff.seconds/float(86400) + diff.days) * 24
model_obj.write(cr, uid, [exists], val)
ids.append(exists)
else:
@@ -93,11 +101,16 @@ class crm_meeting(osv.osv):
revent_id = model_obj.create(cr, uid, val)
ids.append(revent_id)
else:
+ __rege = re.compile(r'OpenObject-([\w|\.]+)_([0-9]+)@(\w+)$')
+ wematch = __rege.match(u_id.encode('utf8'))
+ if wematch:
+ model, recur_id, dbname = wematch.groups()
+ val.update({'recurrent_uid': recur_id})
event_id = model_obj.create(cr, uid, val)
recur_pool[u_id] = event_id
ids.append(event_id)
- except Exception, e:
- raise osv.except_osv(('Error !'), (str(e)))
+ except Exception:
+ raise
return ids
crm_meeting()
diff --git a/addons/crm_caldav/crm_caldav_data.xml b/addons/crm_caldav/crm_caldav_data.xml
index 3b74eef123c..692b7e7389e 100644
--- a/addons/crm_caldav/crm_caldav_data.xml
+++ b/addons/crm_caldav/crm_caldav_data.xml
@@ -32,7 +32,7 @@
-
+
field
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index 9e7954e038e..81a98a7e326 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -23,7 +23,7 @@ from osv import fields, osv
from crm import crm
import time
-class crm_claim(osv.osv, crm.crm_case):
+class crm_claim(crm.crm_case, osv.osv):
"""
Crm claim
"""
diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml
index f0ef9ae0651..3e853936541 100644
--- a/addons/crm_claim/crm_claim_menu.xml
+++ b/addons/crm_claim/crm_claim_menu.xml
@@ -3,7 +3,7 @@
diff --git a/addons/crm_claim/i18n/crm_claim.pot b/addons/crm_claim/i18n/crm_claim.pot
new file mode 100644
index 00000000000..61aa78278f3
--- /dev/null
+++ b/addons/crm_claim/i18n/crm_claim.pot
@@ -0,0 +1,748 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_claim
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:07:13+0000\n"
+"PO-Revision-Date: 2010-08-20 12:07:13+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: crm_claim
+#: field:crm.claim,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,company_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "#Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,canal_id:0
+msgid "The channels represent the different communicationmodes available with the customer. With each commercial opportunity, you can indicate thecanall which is this opportunity source."
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,section_id:0
+msgid "Sales team to which Case belongs to.Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim1
+msgid "Factual Claims"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,type_id:0
+#: field:crm.claim.report,type_id:0
+msgid "Claim Type"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim2
+msgid "Preventive"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim2
+msgid "Fixed"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Case"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,partner_id:0
+#: field:crm.claim.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_closed:0
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,priority:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Stage: "
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Type"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
+msgid "Claim Stages"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,stage_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_resource_act
+msgid "Claim Resource Type"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Contact"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
+msgid "Claims Analysis"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_report
+msgid "CRM Claim Report"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Status and Categorization"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim1
+msgid "Accepted as Claim"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim1
+msgid "Corrective"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,categ_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim2
+msgid "Value Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.module.module,shortdesc:crm_claim.module_meta_information
+msgid "Customer & Supplier Relationship Management"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Type of Action"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim5
+msgid "Awaiting Response"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
+msgid "Claim Categories"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_type_act
+msgid "Resource Type"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.module.module,description:crm_claim.module_meta_information
+msgid "\n"
+"This modules allows you to track your customers/suppliers claims and flames.\n"
+"It is fully integrated with the email gateway so that you can create\n"
+"automatically new claims based on incoming emails.\n"
+" "
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Date"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim4
+msgid "Invalid"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
+msgid "Claims"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim3
+msgid "Policy Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_config_claim
+msgid "Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,state:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Info"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "In Progress"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Date of Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim/Action Description"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Search Claims"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner_address
+msgid "Report a Claim"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim3
+msgid "Won't fix"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "References"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,name:0
+msgid "Year"
+msgstr ""
+
diff --git a/addons/crm_claim/i18n/en_US.po b/addons/crm_claim/i18n/en_US.po
new file mode 100644
index 00000000000..27818261434
--- /dev/null
+++ b/addons/crm_claim/i18n/en_US.po
@@ -0,0 +1,755 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_claim
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:27:25+0000\n"
+"PO-Revision-Date: 2010-08-20 12:27:25+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: crm_claim
+#: field:crm.claim,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Planned Revenue"
+
+#. module: crm_claim
+#: field:crm.claim.report,nbr:0
+msgid "# of Cases"
+msgstr "# of Cases"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: crm_claim
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "March"
+msgstr "March"
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_close:0
+msgid "Delay to close"
+msgstr "Delay to close"
+
+#. module: crm_claim
+#: field:crm.claim,company_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: crm_claim
+#: field:crm.claim,email_cc:0
+msgid "Watchers Emails"
+msgstr "Watchers Emails"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "#Claim"
+msgstr "#Claim"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Year"
+msgstr "This Year"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Cases"
+msgstr "Cases"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Highest"
+msgstr "Highest"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,day:0
+msgid "Day"
+msgstr "Day"
+
+#. module: crm_claim
+#: help:crm.claim,canal_id:0
+msgid "The channels represent the different communicationmodes available with the customer. With each commercial opportunity, you can indicate thecanall which is this opportunity source."
+msgstr "The channels represent the different communicationmodes available with the customer. With each commercial opportunity, you can indicate thecanall which is this opportunity source."
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: field:crm.claim,partner_mobile:0
+msgid "Mobile"
+msgstr "Mobile"
+
+#. module: crm_claim
+#: field:crm.claim,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim1
+msgid "Factual Claims"
+msgstr "Factual Claims"
+
+#. module: crm_claim
+#: field:crm.claim,type_id:0
+#: field:crm.claim.report,type_id:0
+msgid "Claim Type"
+msgstr "Claim Type"
+
+#. module: crm_claim
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim2
+msgid "Preventive"
+msgstr "Preventive"
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim2
+msgid "Fixed"
+msgstr "Fixed"
+
+#. module: crm_claim
+#: field:crm.claim,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Partner Contact"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Case"
+msgstr "My Case"
+
+#. module: crm_claim
+#: field:crm.claim,ref:0
+msgid "Reference"
+msgstr "Reference"
+
+#. module: crm_claim
+#: field:crm.claim,date_action_next:0
+msgid "Next Action"
+msgstr "Next Action"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reset to Draft"
+msgstr "Reset to Draft"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Extra Info"
+msgstr "Extra Info"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,partner_id:0
+#: field:crm.claim.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: crm_claim
+#: field:crm.claim,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: crm_claim
+#: field:crm.claim,date_closed:0
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,section_id:0
+msgid "Section"
+msgstr "Section"
+
+#. module: crm_claim
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: crm_claim
+#: field:crm.claim,priority:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,priority:0
+msgid "Priority"
+msgstr "Priority"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Send New Email"
+msgstr "Send New Email"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reply"
+msgstr "Reply"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Stage: "
+msgstr "Stage: "
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Type"
+msgstr "Type"
+
+#. module: crm_claim
+#: field:crm.claim,email_from:0
+msgid "Email"
+msgstr "Email"
+
+#. module: crm_claim
+#: field:crm.claim,canal_id:0
+msgid "Channel"
+msgstr "Channel"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Lowest"
+msgstr "Lowest"
+
+#. module: crm_claim
+#: field:crm.claim,create_date:0
+msgid "Creation Date"
+msgstr "Creation Date"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date_deadline:0
+msgid "Deadline"
+msgstr "Deadline"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "July"
+msgstr "July"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
+msgid "Claim Stages"
+msgstr "Claim Stages"
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
+msgid "Categories"
+msgstr "Categories"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,stage_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,stage_id:0
+msgid "Stage"
+msgstr "Stage"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History Information"
+msgstr "History Information"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_resource_act
+msgid "Claim Resource Type"
+msgstr "Claim Resource Type"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Contact"
+msgstr "Contact"
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_stage_act
+msgid "Stages"
+msgstr "Stages"
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
+msgid "Claims Analysis"
+msgstr "Claims Analysis"
+
+#. module: crm_claim
+#: help:crm.claim.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr "Number of Days to close the case"
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_report
+msgid "CRM Claim Report"
+msgstr "CRM Claim Report"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Status and Categorization"
+msgstr "Status and Categorization"
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim1
+msgid "Accepted as Claim"
+msgstr "Accepted as Claim"
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim1
+msgid "Corrective"
+msgstr "Corrective"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "September"
+msgstr "September"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "December"
+msgstr "December"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: crm_claim
+#: field:crm.claim,write_date:0
+msgid "Update Date"
+msgstr "Update Date"
+
+#. module: crm_claim
+#: field:crm.claim,ref2:0
+msgid "Reference 2"
+msgstr "Reference 2"
+
+#. module: crm_claim
+#: field:crm.claim,categ_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,categ_id:0
+msgid "Category"
+msgstr "Category"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim2
+msgid "Value Claims"
+msgstr "Value Claims"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure Date"
+msgstr "Closure Date"
+
+#. module: crm_claim
+#: field:crm.claim,planned_cost:0
+msgid "Planned Costs"
+msgstr "Planned Costs"
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Low"
+msgstr "Low"
+
+#. module: crm_claim
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "7 Days"
+msgstr "7 Days"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "August"
+msgstr "August"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Global CC"
+msgstr "Global CC"
+
+#. module: crm_claim
+#: model:ir.module.module,shortdesc:crm_claim.module_meta_information
+msgid "Customer & Supplier Relationship Management"
+msgstr "Customer & Supplier Relationship Management"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "June"
+msgstr "June"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Type of Action"
+msgstr "Type of Action"
+
+#. module: crm_claim
+#: field:crm.claim,partner_phone:0
+msgid "Phone"
+msgstr "Phone"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim5
+msgid "Awaiting Response"
+msgstr "Awaiting Response"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
+msgid "Claim Categories"
+msgstr "Claim Categories"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "November"
+msgstr "November"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Extended Filters..."
+msgstr "Extended Filters..."
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure"
+msgstr "Closure"
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_type_act
+msgid "Resource Type"
+msgstr "Resource Type"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Search"
+msgstr "Search"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "October"
+msgstr "October"
+
+#. module: crm_claim
+#: model:ir.module.module,description:crm_claim.module_meta_information
+msgid "\n"
+"This modules allows you to track your customers/suppliers claims and flames.\n"
+"It is fully integrated with the email gateway so that you can create\n"
+"automatically new claims based on incoming emails.\n"
+" "
+msgstr "\n"
+"This modules allows you to track your customers/suppliers claims and flames.\n"
+"It is fully integrated with the email gateway so that you can create\n"
+"automatically new claims based on incoming emails.\n"
+" "
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "January"
+msgstr "January"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Date"
+msgstr "Claim Date"
+
+#. module: crm_claim
+#: help:crm.claim,email_from:0
+msgid "These people will receive email."
+msgstr "These people will receive email."
+
+#. module: crm_claim
+#: field:crm.claim,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim4
+msgid "Invalid"
+msgstr "Invalid"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
+msgid "Claims"
+msgstr "Claims"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim3
+msgid "Policy Claims"
+msgstr "Policy Claims"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History"
+msgstr "History"
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_config_claim
+msgid "Claim"
+msgstr "Claim"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,state:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,state:0
+msgid "State"
+msgstr "State"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Info"
+msgstr "Claim Info"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Done"
+msgstr "Done"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication"
+msgstr "Communication"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Close"
+msgstr "Close"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "In Progress"
+msgstr "In Progress"
+
+#. module: crm_claim
+#: 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: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Date of Claim"
+msgstr "Date of Claim"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Current"
+msgstr "Current"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Details"
+msgstr "Details"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Cases By Stage and Estimates"
+msgstr "Cases By Stage and Estimates"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim/Action Description"
+msgstr "Claim/Action Description"
+
+#. module: crm_claim
+#: field:crm.claim,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Search Claims"
+msgstr "Search Claims"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "May"
+msgstr "May"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner_address
+msgid "Report a Claim"
+msgstr "Report a Claim"
+
+#. module: crm_claim
+#: field:crm.claim,probability:0
+msgid "Probability (%)"
+msgstr "Probability (%)"
+
+#. module: crm_claim
+#: field:crm.claim,partner_name:0
+msgid "Employee's Name"
+msgstr "Employee's Name"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Month"
+msgstr "This Month"
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "February"
+msgstr "February"
+
+#. module: crm_claim
+#: field:crm.claim,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication history"
+msgstr "Communication history"
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim3
+msgid "Won't fix"
+msgstr "Won't fix"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "References"
+msgstr "References"
+
+#. module: crm_claim
+#: field:crm.claim,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "High"
+msgstr "High"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,section_id:0
+msgid "Sales Team"
+msgstr "Sales Team"
+
+#. module: crm_claim
+#: field:crm.claim.report,create_date:0
+msgid "Create Date"
+msgstr "Create Date"
+
+#. module: crm_claim
+#: field:crm.claim,date_action_last:0
+msgid "Last Action"
+msgstr "Last Action"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,name:0
+msgid "Year"
+msgstr "Year"
+
diff --git a/addons/crm_claim/i18n/fr.po b/addons/crm_claim/i18n/fr.po
new file mode 100644
index 00000000000..61aa78278f3
--- /dev/null
+++ b/addons/crm_claim/i18n/fr.po
@@ -0,0 +1,748 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_claim
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:07:13+0000\n"
+"PO-Revision-Date: 2010-08-20 12:07:13+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: crm_claim
+#: field:crm.claim,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,company_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "#Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,canal_id:0
+msgid "The channels represent the different communicationmodes available with the customer. With each commercial opportunity, you can indicate thecanall which is this opportunity source."
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,section_id:0
+msgid "Sales team to which Case belongs to.Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim1
+msgid "Factual Claims"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,type_id:0
+#: field:crm.claim.report,type_id:0
+msgid "Claim Type"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim2
+msgid "Preventive"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim2
+msgid "Fixed"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Case"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,partner_id:0
+#: field:crm.claim.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_closed:0
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,priority:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Stage: "
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Type"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
+msgid "Claim Stages"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,stage_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_resource_act
+msgid "Claim Resource Type"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Contact"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
+msgid "Claims Analysis"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_report
+msgid "CRM Claim Report"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Status and Categorization"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim1
+msgid "Accepted as Claim"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim1
+msgid "Corrective"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,categ_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim2
+msgid "Value Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.module.module,shortdesc:crm_claim.module_meta_information
+msgid "Customer & Supplier Relationship Management"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Type of Action"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim5
+msgid "Awaiting Response"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
+msgid "Claim Categories"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_type_act
+msgid "Resource Type"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.module.module,description:crm_claim.module_meta_information
+msgid "\n"
+"This modules allows you to track your customers/suppliers claims and flames.\n"
+"It is fully integrated with the email gateway so that you can create\n"
+"automatically new claims based on incoming emails.\n"
+" "
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Date"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim4
+msgid "Invalid"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
+msgid "Claims"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim3
+msgid "Policy Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "History"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_config_claim
+msgid "Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,state:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Info"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "In Progress"
+msgstr ""
+
+#. module: crm_claim
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Date of Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim/Action Description"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Search Claims"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner_address
+msgid "Report a Claim"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,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: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.stage,name:crm_claim.stage_claim3
+msgid "Won't fix"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "References"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,name:0
+msgid "Year"
+msgstr ""
+
diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml
index b535d51c40d..3a1e8f45f26 100644
--- a/addons/crm_claim/report/crm_claim_report_view.xml
+++ b/addons/crm_claim/report/crm_claim_report_view.xml
@@ -75,13 +75,9 @@
-
-
@@ -212,7 +208,7 @@
diff --git a/addons/crm_claim/security/ir.model.access.csv b/addons/crm_claim/security/ir.model.access.csv
index ac18ba24b78..d6c00551af0 100644
--- a/addons/crm_claim/security/ir.model.access.csv
+++ b/addons/crm_claim/security/ir.model.access.csv
@@ -2,5 +2,4 @@
"access_crm_claim_manager","crm.claim.manager","model_crm_claim","base.group_sale_manager",1,0,0,0
"access_crm_claim_user","crm.claim.user","model_crm_claim","base.group_sale_salesman",1,1,1,0
"access_crm_claim_report_manager","crm.claim.report.manager","model_crm_claim_report","base.group_sale_manager",1,1,1,1
-"access_crm_claim_extended","crm.claim.extended","model_crm_claim","base.group_extended",1,1,1,1
"access_crm_claim_system","crm.claim.system","model_crm_claim","base.group_system",1,0,0,0
diff --git a/addons/crm_fundraising/crm_fundraising.py b/addons/crm_fundraising/crm_fundraising.py
index 962fae07fd3..df7bc4a0789 100644
--- a/addons/crm_fundraising/crm_fundraising.py
+++ b/addons/crm_fundraising/crm_fundraising.py
@@ -22,7 +22,7 @@
from osv import fields, osv, orm
from crm import crm
-class crm_fundraising(osv.osv, crm.crm_case):
+class crm_fundraising(crm.crm_case, osv.osv):
""" Fund Raising Cases """
_name = "crm.fundraising"
diff --git a/addons/crm_fundraising/crm_fundraising_menu.xml b/addons/crm_fundraising/crm_fundraising_menu.xml
index d7115b3a3ca..3c97e662d30 100644
--- a/addons/crm_fundraising/crm_fundraising_menu.xml
+++ b/addons/crm_fundraising/crm_fundraising_menu.xml
@@ -5,7 +5,7 @@
diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml
index 427ec0caf38..1e8b4072bab 100644
--- a/addons/crm_fundraising/crm_fundraising_view.xml
+++ b/addons/crm_fundraising/crm_fundraising_view.xml
@@ -3,7 +3,7 @@
@@ -18,7 +18,7 @@
@@ -33,7 +33,7 @@
@@ -50,7 +50,7 @@
diff --git a/addons/crm_fundraising/i18n/crm_fundraising.pot b/addons/crm_fundraising/i18n/crm_fundraising.pot
new file mode 100644
index 00000000000..fe6536bdb15
--- /dev/null
+++ b/addons/crm_fundraising/i18n/crm_fundraising.pot
@@ -0,0 +1,730 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_fundraising
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:29:52+0000\n"
+"PO-Revision-Date: 2010-08-20 12:29:52+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: crm_fundraising
+#: field:crm.fundraising,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,probability:0
+msgid "Avg. Probability"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Form"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,company_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fund_categ_action
+msgid "Fundraising Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Notes"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Amount"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue:0
+msgid "Est.Revenue"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "My Case"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_config_fundrising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fund_raise
+msgid "Fund Raising"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,partner_id:0
+#: field:crm.fundraising.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_report_crm_fundraising_tree
+msgid "Fundraising Analysis"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.module.module,shortdesc:crm_fundraising.module_meta_information
+msgid "CRM Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Estimates"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund1
+msgid "Social Rehabilitation And Rural Upliftment"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fundraising-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_closed:0
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name2:0
+msgid "Employee Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund2
+msgid "Learning And Education"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Contact"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Fund Description"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: model:ir.actions.act_window,name:crm_fundraising.action_report_crm_fundraising
+#: model:ir.module.module,description:crm_fundraising.module_meta_information
+msgid "Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Tree"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund3
+msgid "Credit Card"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_stage_act
+msgid "Fundraising Stages"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,categ_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund4
+msgid "Arts And Culture"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: model:ir.actions.act_window,name:crm_fundraising.crm_case_category_act_fund_all1
+msgid "Funds"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund2
+msgid "Cheque"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_resource_act
+msgid "Resource Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "#Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund3
+msgid "Healthcare"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Misc"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising_report
+msgid "CRM Fundraising Report"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,type_id:0
+msgid "Fundraising Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue_prob:0
+msgid "Est. Rev*Prob."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_resource_act
+msgid "Fundraising Resource Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund1
+msgid "Cash"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds by Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "References"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund4
+msgid "Demand Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Search Funds"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/crm_fundraising/i18n/en_US.po b/addons/crm_fundraising/i18n/en_US.po
new file mode 100644
index 00000000000..95596bc11d8
--- /dev/null
+++ b/addons/crm_fundraising/i18n/en_US.po
@@ -0,0 +1,733 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_fundraising
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:59:17+0000\n"
+"PO-Revision-Date: 2010-08-20 12:59:17+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: crm_fundraising
+#: field:crm.fundraising,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Planned Revenue"
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,nbr:0
+msgid "# of Cases"
+msgstr "# of Cases"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,probability:0
+msgid "Avg. Probability"
+msgstr "Avg. Probability"
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Form"
+msgstr "Funds Form"
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,delay_close:0
+msgid "Delay to close"
+msgstr "Delay to close"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,company_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fund_categ_action
+msgid "Fundraising Categories"
+msgstr "Fundraising Categories"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_cc:0
+msgid "Watchers Emails"
+msgstr "Watchers Emails"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Year"
+msgstr "This Year"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Cases"
+msgstr "Cases"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Highest"
+msgstr "Highest"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,day:0
+msgid "Day"
+msgstr "Day"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_mobile:0
+msgid "Mobile"
+msgstr "Mobile"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Amount"
+msgstr "Amount"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue:0
+msgid "Est.Revenue"
+msgstr "Est.Revenue"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Partner Contact"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "My Case"
+msgstr "My Case"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref:0
+msgid "Reference"
+msgstr "Reference"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_next:0
+msgid "Next Action"
+msgstr "Next Action"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reset to Draft"
+msgstr "Reset to Draft"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Extra Info"
+msgstr "Extra Info"
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_config_fundrising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fund_raise
+msgid "Fund Raising"
+msgstr "Fund Raising"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,partner_id:0
+#: field:crm.fundraising.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_report_crm_fundraising_tree
+msgid "Fundraising Analysis"
+msgstr "Fundraising Analysis"
+
+#. module: crm_fundraising
+#: model:ir.module.module,shortdesc:crm_fundraising.module_meta_information
+msgid "CRM Fundraising"
+msgstr "CRM Fundraising"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Estimates"
+msgstr "Estimates"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,section_id:0
+msgid "Section"
+msgstr "Section"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,priority:0
+msgid "Priority"
+msgstr "Priority"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Send New Email"
+msgstr "Send New Email"
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund1
+msgid "Social Rehabilitation And Rural Upliftment"
+msgstr "Social Rehabilitation And Rural Upliftment"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Payment Mode"
+msgstr "Payment Mode"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reply"
+msgstr "Reply"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_from:0
+msgid "Email"
+msgstr "Email"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,canal_id:0
+msgid "Channel"
+msgstr "Channel"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Lowest"
+msgstr "Lowest"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,create_date:0
+msgid "Creation Date"
+msgstr "Creation Date"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_deadline:0
+msgid "Deadline"
+msgstr "Deadline"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "July"
+msgstr "July"
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fundraising-act
+msgid "Categories"
+msgstr "Categories"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,stage_id:0
+msgid "Stage"
+msgstr "Stage"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History Information"
+msgstr "History Information"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_closed:0
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name2:0
+msgid "Employee Email"
+msgstr "Employee Email"
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund2
+msgid "Learning And Education"
+msgstr "Learning And Education"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Contact"
+msgstr "Contact"
+
+#. module: crm_fundraising
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "March"
+msgstr "March"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Fund Description"
+msgstr "Fund Description"
+
+#. module: crm_fundraising
+#: help:crm.fundraising.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr "Number of Days to close the case"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: model:ir.actions.act_window,name:crm_fundraising.action_report_crm_fundraising
+#: model:ir.module.module,description:crm_fundraising.module_meta_information
+msgid "Fundraising"
+msgstr "Fundraising"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "September"
+msgstr "September"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "December"
+msgstr "December"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Tree"
+msgstr "Funds Tree"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Escalate"
+msgstr "Escalate"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,write_date:0
+msgid "Update Date"
+msgstr "Update Date"
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund3
+msgid "Credit Card"
+msgstr "Credit Card"
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_stage_act
+msgid "Fundraising Stages"
+msgstr "Fundraising Stages"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref2:0
+msgid "Reference 2"
+msgstr "Reference 2"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,categ_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,categ_id:0
+msgid "Category"
+msgstr "Category"
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund4
+msgid "Arts And Culture"
+msgstr "Arts And Culture"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,planned_cost:0
+msgid "Planned Costs"
+msgstr "Planned Costs"
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Low"
+msgstr "Low"
+
+#. module: crm_fundraising
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "7 Days"
+msgstr "7 Days"
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_stage_act
+msgid "Stages"
+msgstr "Stages"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "August"
+msgstr "August"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Global CC"
+msgstr "Global CC"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: model:ir.actions.act_window,name:crm_fundraising.crm_case_category_act_fund_all1
+msgid "Funds"
+msgstr "Funds"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "June"
+msgstr "June"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_phone:0
+msgid "Phone"
+msgstr "Phone"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund2
+msgid "Cheque"
+msgstr "Cheque"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "November"
+msgstr "November"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Extended Filters..."
+msgstr "Extended Filters..."
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_resource_act
+msgid "Resource Type"
+msgstr "Resource Type"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Search"
+msgstr "Search"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "October"
+msgstr "October"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "January"
+msgstr "January"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "#Fundraising"
+msgstr "#Fundraising"
+
+#. module: crm_fundraising
+#: help:crm.fundraising,email_from:0
+msgid "These people will receive email."
+msgstr "These people will receive email."
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund3
+msgid "Healthcare"
+msgstr "Healthcare"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History"
+msgstr "History"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Misc"
+msgstr "Misc"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,state:0
+msgid "State"
+msgstr "State"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Done"
+msgstr "Done"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication"
+msgstr "Communication"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: crm_fundraising
+#: 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: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Current"
+msgstr "Current"
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Details"
+msgstr "Details"
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising_report
+msgid "CRM Fundraising Report"
+msgstr "CRM Fundraising Report"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,type_id:0
+msgid "Fundraising Type"
+msgstr "Fundraising Type"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue_prob:0
+msgid "Est. Rev*Prob."
+msgstr "Est. Rev*Prob."
+
+#. module: crm_fundraising
+#: field:crm.fundraising,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "May"
+msgstr "May"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,probability:0
+msgid "Probability (%)"
+msgstr "Probability (%)"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name:0
+msgid "Employee's Name"
+msgstr "Employee's Name"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Month"
+msgstr "This Month"
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_resource_act
+msgid "Fundraising Resource Type"
+msgstr "Fundraising Resource Type"
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "February"
+msgstr "February"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication history"
+msgstr "Communication history"
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund1
+msgid "Cash"
+msgstr "Cash"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds by Categories"
+msgstr "Funds by Categories"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "References"
+msgstr "References"
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund4
+msgid "Demand Draft"
+msgstr "Demand Draft"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Search Funds"
+msgstr "Search Funds"
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "High"
+msgstr "High"
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,section_id:0
+msgid "Sales Team"
+msgstr "Sales Team"
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,create_date:0
+msgid "Create Date"
+msgstr "Create Date"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_last:0
+msgid "Last Action"
+msgstr "Last Action"
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,name:0
+msgid "Year"
+msgstr "Year"
+
+#. module: crm_fundraising
+#: field:crm.fundraising,duration:0
+msgid "Duration"
+msgstr "Duration"
+
diff --git a/addons/crm_fundraising/i18n/fr.po b/addons/crm_fundraising/i18n/fr.po
new file mode 100644
index 00000000000..fe6536bdb15
--- /dev/null
+++ b/addons/crm_fundraising/i18n/fr.po
@@ -0,0 +1,730 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_fundraising
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 12:29:52+0000\n"
+"PO-Revision-Date: 2010-08-20 12:29:52+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: crm_fundraising
+#: field:crm.fundraising,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,probability:0
+msgid "Avg. Probability"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Form"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,company_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fund_categ_action
+msgid "Fundraising Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Notes"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Amount"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue:0
+msgid "Est.Revenue"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "My Case"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_config_fundrising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fund_raise
+msgid "Fund Raising"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,partner_id:0
+#: field:crm.fundraising.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_report_crm_fundraising_tree
+msgid "Fundraising Analysis"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.module.module,shortdesc:crm_fundraising.module_meta_information
+msgid "CRM Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Estimates"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund1
+msgid "Social Rehabilitation And Rural Upliftment"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fundraising-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_closed:0
+#: selection:crm.fundraising,state:0
+#: selection:crm.fundraising.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name2:0
+msgid "Employee Email"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund2
+msgid "Learning And Education"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Contact"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Fund Description"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: model:ir.actions.act_window,name:crm_fundraising.action_report_crm_fundraising
+#: model:ir.module.module,description:crm_fundraising.module_meta_information
+msgid "Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds Tree"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund3
+msgid "Credit Card"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_stage_act
+msgid "Fundraising Stages"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,categ_id:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund4
+msgid "Arts And Culture"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_stage_act
+msgid "Stages"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: model:ir.actions.act_window,name:crm_fundraising.crm_case_category_act_fund_all1
+msgid "Funds"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund2
+msgid "Cheque"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_resource_act
+msgid "Resource Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "#Fundraising"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.categ,name:crm_fundraising.categ_fund3
+msgid "Healthcare"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "History"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Misc"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: view:crm.fundraising.report:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: selection:crm.fundraising,state:0
+#: view:crm.fundraising.report:0
+#: selection:crm.fundraising.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_fundraising
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.model,name:crm_fundraising.model_crm_fundraising_report
+msgid "CRM Fundraising Report"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,type_id:0
+msgid "Fundraising Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,amount_revenue_prob:0
+msgid "Est. Rev*Prob."
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,partner_name:0
+msgid "Employee's Name"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_resource_act
+msgid "Fundraising Resource Type"
+msgstr ""
+
+#. module: crm_fundraising
+#: help:crm.fundraising,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: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund1
+msgid "Cash"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Funds by Categories"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "References"
+msgstr ""
+
+#. module: crm_fundraising
+#: model:crm.case.resource.type,name:crm_fundraising.type_fund4
+msgid "Demand Draft"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+msgid "Search Funds"
+msgstr ""
+
+#. module: crm_fundraising
+#: selection:crm.fundraising,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising:0
+#: field:crm.fundraising,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_fundraising
+#: view:crm.fundraising.report:0
+#: field:crm.fundraising.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_fundraising
+#: field:crm.fundraising,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/crm_fundraising/report/crm_fundraising_report_view.xml b/addons/crm_fundraising/report/crm_fundraising_report_view.xml
index 9d1be15afb1..8e9f1611af6 100644
--- a/addons/crm_fundraising/report/crm_fundraising_report_view.xml
+++ b/addons/crm_fundraising/report/crm_fundraising_report_view.xml
@@ -74,13 +74,9 @@
-
-
@@ -200,7 +196,7 @@
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index 9c223c74a54..f2570a8c57c 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -23,7 +23,7 @@ from crm import crm
from osv import fields, osv
import time
-class crm_helpdesk(osv.osv, crm.crm_case):
+class crm_helpdesk(crm.crm_case, osv.osv):
""" Helpdesk Cases """
_name = "crm.helpdesk"
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 4a62e8b7b3a..31ba54f426f 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -3,7 +3,7 @@
diff --git a/addons/crm_helpdesk/i18n/crm_helpdesk.pot b/addons/crm_helpdesk/i18n/crm_helpdesk.pot
new file mode 100644
index 00000000000..50bebada7f4
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/crm_helpdesk.pot
@@ -0,0 +1,638 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_helpdesk
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 13:01:32+0000\n"
+"PO-Revision-Date: 2010-08-20 13:01:32+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: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Today"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
+msgid "Helpdesk Analysis"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,partner_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_closed:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,priority:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Won"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.module.module,description:crm_helpdesk.module_meta_information
+msgid "Helpdesk Management"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information
+msgid "CRM Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send Reminder"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
+msgid "Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,canal_id:0
+msgid "The channels represent the different communication modes available with the customer."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Lost"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/crm_helpdesk/i18n/en_US.po b/addons/crm_helpdesk/i18n/en_US.po
new file mode 100644
index 00000000000..aa9bfddea3f
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/en_US.po
@@ -0,0 +1,641 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_helpdesk
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-23 05:05:03+0000\n"
+"PO-Revision-Date: 2010-08-23 05:05:03+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: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr "# of Cases"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: crm_helpdesk
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Today"
+msgstr "Today"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr "March"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to close"
+msgstr "Delay to close"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr "Watchers Emails"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Year"
+msgstr "This Year"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Cases"
+msgstr "Cases"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr "Highest"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr "Day"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Partner Contact"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
+msgid "Helpdesk Analysis"
+msgstr "Helpdesk Analysis"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr "Reference"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr "Next Action"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr "Helpdesk Supports"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr "Extra Info"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,partner_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_closed:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr "Estimates"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr "Section"
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,priority:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,priority:0
+msgid "Priority"
+msgstr "Priority"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send New Email"
+msgstr "Send New Email"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Won"
+msgstr "Won"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reply"
+msgstr "Reply"
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr "Helpdesk report after Sales Services"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr "Email"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,canal_id:0
+msgid "Channel"
+msgstr "Channel"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr "Lowest"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+msgid "Creation Date"
+msgstr "Creation Date"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr "Reset to Draft"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr "Deadline"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr "July"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr "Helpdesk Categories"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr "Categories"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History Information"
+msgstr "History Information"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr "#Helpdesk"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr "September"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr "December"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr "Escalate"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr "Update Date"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr "Query"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr "Reference 2"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+msgid "Category"
+msgstr "Category"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr "Helpdesk Support"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+msgid "Planned Costs"
+msgstr "Planned Costs"
+
+#. module: crm_helpdesk
+#: model:ir.module.module,description:crm_helpdesk.module_meta_information
+msgid "Helpdesk Management"
+msgstr "Helpdesk Management"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr "Search Helpdesk"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr "Low"
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "7 Days"
+msgstr "7 Days"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr "August"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Global CC"
+msgstr "Global CC"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr "June"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Planned Revenue"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: crm_helpdesk
+#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information
+msgid "CRM Helpdesk"
+msgstr "CRM Helpdesk"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr "Extended Filters..."
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr "Helpdesk Requests"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr "Search"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr "October"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr "January"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "These people will receive email."
+msgstr "These people will receive email."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr "November"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History"
+msgstr "History"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr "Misc"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,state:0
+msgid "State"
+msgstr "State"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr "General"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send Reminder"
+msgstr "Send Reminder"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Done"
+msgstr "Done"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr "Communication"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Close"
+msgstr "Close"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr "Helpdesk Support Tree"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr "Categorization"
+
+#. module: crm_helpdesk
+#: 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: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
+msgid "Helpdesk"
+msgstr "Helpdesk"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Current"
+msgstr "Current"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Details"
+msgstr "Details"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr "May"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr "Probability (%)"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,canal_id:0
+msgid "The channels represent the different communication modes available with the customer."
+msgstr "The channels represent the different communication modes available with the customer."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Month"
+msgstr "This Month"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr "February"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Lost"
+msgstr "Lost"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication history"
+msgstr "Communication history"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr "Helpdesk and Support"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr "References"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr "High"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+msgid "Sales Team"
+msgstr "Sales Team"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,create_date:0
+msgid "Create Date"
+msgstr "Create Date"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr "Last Action"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr "Year"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr "Duration"
+
diff --git a/addons/crm_helpdesk/i18n/fr.po b/addons/crm_helpdesk/i18n/fr.po
new file mode 100644
index 00000000000..50bebada7f4
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/fr.po
@@ -0,0 +1,638 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * crm_helpdesk
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 13:01:32+0000\n"
+"PO-Revision-Date: 2010-08-20 13:01:32+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: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Today"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Year"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Cases"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
+msgid "Helpdesk Analysis"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,partner_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_closed:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,priority:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Won"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reply"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,canal_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History Information"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.module.module,description:crm_helpdesk.module_meta_information
+msgid "Helpdesk Management"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "7 Days"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information
+msgid "CRM Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send Reminder"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,section_id:0
+msgid "Sales team to which Case belongs to. Define Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr ""
+
+#. module: crm_helpdesk
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
+msgid "Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Details"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,canal_id:0
+msgid "The channels represent the different communication modes available with the customer."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "This Month"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Lost"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication history"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr ""
+
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
index d9ea03ad9e8..2544a506fd5 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
@@ -181,7 +181,7 @@
diff --git a/addons/crm_helpdesk/security/ir.model.access.csv b/addons/crm_helpdesk/security/ir.model.access.csv
index 37bbd40ab29..e7c1bbb7d89 100644
--- a/addons/crm_helpdesk/security/ir.model.access.csv
+++ b/addons/crm_helpdesk/security/ir.model.access.csv
@@ -2,5 +2,4 @@
"access_crm_helpdesk_manager","crm.helpdesk.manager","model_crm_helpdesk","base.group_sale_manager",1,0,0,0
"access_crm_helpdesk_user","crm.helpdesk.user","model_crm_helpdesk","base.group_sale_salesman",1,1,1,1
"access_report_crm_helpdesk_manager","report.crm.helpdesk.manager","model_crm_helpdesk_report","base.group_sale_manager",1,1,1,1
-"access_crm_helpdesk_extended","crm.helpdesk.extended","model_crm_helpdesk","base.group_extended",1,1,1,1
"access_crm_helpdesk_system","crm.helpdesk.system","model_crm_helpdesk","base.group_system",1,0,0,0
diff --git a/addons/crm_profiling/crm_profiling_demo.xml b/addons/crm_profiling/crm_profiling_demo.xml
index 9295f009dcc..1789e8bace8 100644
--- a/addons/crm_profiling/crm_profiling_demo.xml
+++ b/addons/crm_profiling/crm_profiling_demo.xml
@@ -53,7 +53,7 @@
51 to 100
-
+
more than 100
@@ -107,16 +107,16 @@
True
-
+
Bronze partners
True
-
+
- Silver partners
+ Silver partners
@@ -147,71 +147,11 @@
True
-
-
+
@@ -227,43 +167,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/addons/crm_profiling/crm_profiling_wizard.xml b/addons/crm_profiling/crm_profiling_wizard.xml
index 089e3604d35..39d436a6bd9 100644
--- a/addons/crm_profiling/crm_profiling_wizard.xml
+++ b/addons/crm_profiling/crm_profiling_wizard.xml
@@ -1,12 +1,5 @@
-
-
-
+
diff --git a/addons/crm_profiling/i18n/it.po b/addons/crm_profiling/i18n/it.po
index 26f98c1004a..e297887c80e 100644
--- a/addons/crm_profiling/i18n/it.po
+++ b/addons/crm_profiling/i18n/it.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-12-22 13:46+0000\n"
-"Last-Translator: Carlo - didotech.com \n"
+"PO-Revision-Date: 2010-08-17 09:49+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
@@ -39,7 +39,7 @@ msgstr "Questionario Aperto"
#. module: crm_profiling
#: field:crm.segmentation,child_ids:0
msgid "Child Profiles"
-msgstr ""
+msgstr "Profili figli"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
diff --git a/addons/crm_profiling/i18n/pl.po b/addons/crm_profiling/i18n/pl.po
index 4aae0328930..992b0d16ec4 100644
--- a/addons/crm_profiling/i18n/pl.po
+++ b/addons/crm_profiling/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-05-21 20:20+0000\n"
-"Last-Translator: Grzegorz Grzelak (Cirrus.pl) \n"
+"PO-Revision-Date: 2010-08-26 06:38+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-27 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
@@ -39,7 +39,7 @@ msgstr "Otwórz kwestionariusz"
#. module: crm_profiling
#: field:crm.segmentation,child_ids:0
msgid "Child Profiles"
-msgstr ""
+msgstr "Profile podrzędne"
#. module: crm_profiling
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
@@ -55,7 +55,7 @@ msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#: field:crm_profiling.answer,name:0
#: model:ir.model,name:crm_profiling.model_crm_profiling_answer
msgid "Answer"
-msgstr "Odpowiedz"
+msgstr "Odpowiedź"
#. module: crm_profiling
#: view:res.partner:0
@@ -135,6 +135,9 @@ msgid ""
"Check this box if you want to use this tab as part of the segmentation rule. "
"If not checked, the criteria beneath will be ignored"
msgstr ""
+"Zaznacz tę opcję, jeśli chcesz stosować tę zakładkę jako część reguły "
+"segmentacji. Jeśli nie zaznaczone, to, to poniższe kryteria zostaną "
+"zignorowane."
#. module: crm_profiling
#: view:crm_profiling.question:0
@@ -168,4 +171,4 @@ msgstr "Używanie kwestionariusza"
#. module: crm_profiling
#: wizard_button:open_questionnaire,open,compute:0
msgid "Save Data"
-msgstr "Zapis danych"
+msgstr "Zapisz dane"
diff --git a/addons/crm_profiling/i18n/tr.po b/addons/crm_profiling/i18n/tr.po
index d98eb0e0bbf..0727e68b282 100644
--- a/addons/crm_profiling/i18n/tr.po
+++ b/addons/crm_profiling/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-11 04:37+0000\n"
+"PO-Revision-Date: 2010-08-29 10:41+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-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
diff --git a/addons/decimal_precision/i18n/decimal_precision.pot b/addons/decimal_precision/i18n/decimal_precision.pot
new file mode 100644
index 00000000000..90cfeda23dc
--- /dev/null
+++ b/addons/decimal_precision/i18n/decimal_precision.pot
@@ -0,0 +1,78 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * decimal_precision
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 05:24:00+0000\n"
+"PO-Revision-Date: 2010-08-20 05:24: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: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy Definitions"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.module.module,description:decimal_precision.module_meta_information
+msgid "\n"
+"This module allows to configure the price accuracy you need for different kind\n"
+"of usage: accounting, sales, purchases, ...\n"
+"\n"
+"The decimal precision is configured per company.\n"
+""
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
+msgid "Decimal Precision Configuration"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
+
diff --git a/addons/decimal_precision/i18n/en_US.po b/addons/decimal_precision/i18n/en_US.po
new file mode 100644
index 00000000000..38e04e1de84
--- /dev/null
+++ b/addons/decimal_precision/i18n/en_US.po
@@ -0,0 +1,83 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * decimal_precision
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 05:32:40+0000\n"
+"PO-Revision-Date: 2010-08-20 05:32:40+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: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr "Digits"
+
+#. module: decimal_precision
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: decimal_precision
+#: 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: decimal_precision
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr "Decimal Precision"
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy Definitions"
+msgstr "Decimal Accuracy Definitions"
+
+#. module: decimal_precision
+#: model:ir.module.module,description:decimal_precision.module_meta_information
+msgid "\n"
+"This module allows to configure the price accuracy you need for different kind\n"
+"of usage: accounting, sales, purchases, ...\n"
+"\n"
+"The decimal precision is configured per company.\n"
+""
+msgstr "\n"
+"This module allows to configure the price accuracy you need for different kind\n"
+"of usage: accounting, sales, purchases, ...\n"
+"\n"
+"The decimal precision is configured per company.\n"
+""
+
+#. module: decimal_precision
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr "Usage"
+
+#. module: decimal_precision
+#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
+msgid "Decimal Precision Configuration"
+msgstr "Decimal Precision Configuration"
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr "decimal.precision"
+
diff --git a/addons/decimal_precision/i18n/fr.po b/addons/decimal_precision/i18n/fr.po
new file mode 100644
index 00000000000..90cfeda23dc
--- /dev/null
+++ b/addons/decimal_precision/i18n/fr.po
@@ -0,0 +1,78 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * decimal_precision
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 05:24:00+0000\n"
+"PO-Revision-Date: 2010-08-20 05:24: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: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy Definitions"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.module.module,description:decimal_precision.module_meta_information
+msgid "\n"
+"This module allows to configure the price accuracy you need for different kind\n"
+"of usage: accounting, sales, purchases, ...\n"
+"\n"
+"The decimal precision is configured per company.\n"
+""
+msgstr ""
+
+#. module: decimal_precision
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
+msgid "Decimal Precision Configuration"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
+
diff --git a/addons/delivery/__init__.py b/addons/delivery/__init__.py
index 1a504ed97c3..cfe7327dded 100644
--- a/addons/delivery/__init__.py
+++ b/addons/delivery/__init__.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 .
#
##############################################################################
@@ -26,7 +26,5 @@ import report
import sale
import stock
-#import report
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/delivery/i18n/de.po b/addons/delivery/i18n/de.po
index da21c11edaa..0b9fa4548c7 100644
--- a/addons/delivery/i18n/de.po
+++ b/addons/delivery/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 03:23+0000\n"
+"PO-Revision-Date: 2010-08-29 10:21+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:44+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
@@ -178,7 +178,9 @@ msgstr "Name"
#. module: delivery
#: 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: Die Verkaufseinheit sollte in einer anderen Kategorie sein als die "
+"Mengeneinheit"
#. module: delivery
#: field:delivery.grid,country_ids:0
@@ -190,8 +192,8 @@ msgstr "Länder"
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: delivery
#: view:sale.order:0
diff --git a/addons/delivery/i18n/ru.po b/addons/delivery/i18n/ru.po
index 4fed9b3e483..762bd3fc316 100644
--- a/addons/delivery/i18n/ru.po
+++ b/addons/delivery/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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09: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:44+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
diff --git a/addons/delivery/i18n/tr.po b/addons/delivery/i18n/tr.po
index 564638dcf04..8f3d3d13823 100644
--- a/addons/delivery/i18n/tr.po
+++ b/addons/delivery/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-11 05:32+0000\n"
+"PO-Revision-Date: 2010-08-29 10:28+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-12 03:44+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
diff --git a/addons/document/__openerp__.py b/addons/document/__openerp__.py
index 3a18406f607..16bbcd41c83 100644
--- a/addons/document/__openerp__.py
+++ b/addons/document/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Integrated Document Management System',
- 'version': '1.99',
+ 'version': '1.1',
'category': 'Generic Modules/Others',
'description': """This is a complete document management system:
* User Authentication
@@ -57,7 +57,7 @@
],
'installable': True,
'active': False,
- 'certificate': None,
+ 'certificate': '0070515416461',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/document/board_document_view.xml b/addons/document/board_document_view.xml
index 930d20a1b52..2bfc5a6f200 100644
--- a/addons/document/board_document_view.xml
+++ b/addons/document/board_document_view.xml
@@ -66,6 +66,9 @@
id="menu_reports_document_manager"
icon="terp-graph"/>
+
+
board.document.manager.form1
board.board
diff --git a/addons/document/content_index.py b/addons/document/content_index.py
index d6012e60091..e3b37914f8c 100644
--- a/addons/document/content_index.py
+++ b/addons/document/content_index.py
@@ -98,7 +98,9 @@ class indexer(object):
def _doIndexFile(self,fpath):
raise NhException("Content not handled here")
-
+
+ def __repr__(self):
+ return "" %(self.__module__, self.__class__.__name__)
def mime_match(mime, mdict):
@@ -128,7 +130,7 @@ class contentIndex(object):
f = True
if f:
- self.__logger.debug('Register content indexer: %s', obj)
+ self.__logger.debug('Register content indexer: %r', obj)
if not f:
raise Exception("Your indexer should at least suport a mimetype or extension")
diff --git a/addons/document/directory_content.py b/addons/document/directory_content.py
index bec4f25e45d..685df7910f3 100644
--- a/addons/document/directory_content.py
+++ b/addons/document/directory_content.py
@@ -18,16 +18,13 @@
# along with this program. If not, see .
#
##############################################################################
-import base64
from osv import osv, fields
-from osv.orm import except_orm
-import urlparse
import netsvc
-import os
+# import os
import nodes
-import StringIO
+# import StringIO
class document_directory_content_type(osv.osv):
_name = 'document.directory.content.type'
@@ -83,7 +80,7 @@ class document_directory_content(osv.osv):
tname = ''
if content.include_name:
content_name = node.displayname or ''
- obj = node.context._dirobj.pool.get(model)
+ # obj = node.context._dirobj.pool.get(model)
if content_name:
tname = (content.prefix or '') + content_name + (content.suffix or '') + (content.extension or '')
else:
diff --git a/addons/document/directory_report.py b/addons/document/directory_report.py
index a4cd2f45068..657fd39d9a9 100644
--- a/addons/document/directory_report.py
+++ b/addons/document/directory_report.py
@@ -20,13 +20,7 @@
#
##############################################################################
-import base64
-
from osv import osv, fields
-from osv.orm import except_orm
-import urlparse
-
-import os
class ir_action_report_xml(osv.osv):
_name="ir.actions.report.xml"
diff --git a/addons/document/document.py b/addons/document/document.py
index c62f62da2d9..46cf6d189c1 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -22,16 +22,10 @@
import base64
from osv import osv, fields
-import urlparse
import os
-import pooler
-import netsvc
-from osv.orm import except_orm
-#import StringIO
-
-from psycopg2 import Binary
+# from psycopg2 import Binary
#from tools import config
import tools
from tools.translate import _
diff --git a/addons/document/document_directory.py b/addons/document/document_directory.py
index f5b9202fc8e..8fdbac0a5db 100644
--- a/addons/document/document_directory.py
+++ b/addons/document/document_directory.py
@@ -19,11 +19,8 @@
#
##############################################################################
-import base64
from osv import osv, fields
-from osv.orm import except_orm
-import urlparse
import os
import nodes
@@ -141,30 +138,6 @@ class document_directory(osv.osv):
_parent(dir_id, path)
return path
- def ol_get_resource_path(self, cr, uid, dir_id, res_model, res_id):
- # this method will be used in process module
- # to be need test and Improvement if resource dir has parent resource (link resource)
- path=[]
- def _parent(dir_id,path):
- parent=self.browse(cr, uid, dir_id)
- if parent.parent_id and not parent.ressource_parent_type_id:
- _parent(parent.parent_id.id,path)
- path.append(parent.name)
- else:
- path.append(parent.name)
- return path
-
- directory=self.browse(cr,uid,dir_id)
- model_ids=self.pool.get('ir.model').search(cr, uid, [('model','=',res_model)])
- if directory:
- _parent(dir_id,path)
- path.append(self.pool.get(directory.ressource_type_id.model).browse(cr, uid, res_id).name)
- #user=self.pool.get('res.users').browse(cr,uid,uid)
- #return "ftp://%s:%s@localhost:%s/%s/%s"%(user.login,user.password,config.get('ftp_server_port',8021),cr.dbname,'/'.join(path))
- # No way we will return the password!
- return "ftp://user:pass@host:port/test/this"
- return False
-
def _check_recursion(self, cr, uid, ids):
level = 100
while len(ids):
@@ -178,9 +151,9 @@ class document_directory(osv.osv):
_constraints = [
(_check_recursion, 'Error! You can not create recursive Directories.', ['parent_id'])
]
+
def __init__(self, *args, **kwargs):
- res = super(document_directory, self).__init__(*args, **kwargs)
- #self._cache = {}
+ super(document_directory, self).__init__(*args, **kwargs)
def onchange_content_id(self, cr, uid, ids, ressource_type_id):
return {}
@@ -223,31 +196,8 @@ class document_directory(osv.osv):
""" try to locate the node in uri,
Return a tuple (node_dir, remaining_path)
"""
- return (nodes.node_database(context=ncontext), uri)
+ return (nodes.node_database(context=ncontext), uri)
- def old_code():
- if not uri:
- return node_database(cr, uid, context=context)
- turi = tuple(uri)
- node = node_class(cr, uid, '/', False, context=context, type='database')
- for path in uri[:]:
- if path:
- node = node.child(path)
- if not node:
- return False
- oo = node.object and (node.object._name, node.object.id) or False
- oo2 = node.object2 and (node.object2._name, node.object2.id) or False
- return node
-
- def ol_get_childs(self, cr, uid, uri, context={}):
- node = self.get_object(cr, uid, uri, context)
- if uri:
- children = node.children()
- else:
- children= [node]
- result = map(lambda node: node.path_get(), children)
- return result
-
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default ={}
diff --git a/addons/document/document_storage.py b/addons/document/document_storage.py
index 419d6c03e37..0ecc01941b4 100644
--- a/addons/document/document_storage.py
+++ b/addons/document/document_storage.py
@@ -37,7 +37,6 @@ from osv.orm import except_orm
import random
import string
import pooler
-import netsvc
import nodes
from content_index import cntIndex
@@ -189,7 +188,7 @@ class nodefd_db(StringIO, nodes.node_descriptor):
# we now open a *separate* cursor, to update the data.
# FIXME: this may be improved, for concurrency handling
par = self._get_parent()
- uid = par.context.uid
+ # uid = par.context.uid
cr = pooler.get_db(par.context.dbname).cursor()
try:
if self.mode in ('w', 'w+', 'r+'):
@@ -227,7 +226,7 @@ class nodefd_db(StringIO, nodes.node_descriptor):
" WHERE id = %s",
(out, len(data), par.file_id))
cr.commit()
- except Exception, e:
+ except Exception:
logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id)
raise
finally:
@@ -262,7 +261,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor):
# we now open a *separate* cursor, to update the data.
# FIXME: this may be improved, for concurrency handling
par = self._get_parent()
- uid = par.context.uid
+ # uid = par.context.uid
cr = pooler.get_db(par.context.dbname).cursor()
try:
if self.mode in ('w', 'w+', 'r+'):
@@ -288,18 +287,18 @@ class nodefd_db64(StringIO, nodes.node_descriptor):
cr.execute('UPDATE ir_attachment SET db_datas = %s::bytea, file_size=%s, ' \
'index_content = %s, file_type = %s ' \
'WHERE id = %s',
- (base64.encodestring(out), len(out), icont_u, mime, par.file_id))
+ (base64.encodestring(data), len(data), icont_u, mime, par.file_id))
elif self.mode == 'a':
- out = self.getvalue()
+ data = self.getvalue()
# Yes, we're obviously using the wrong representation for storing our
# data as base64-in-bytea
cr.execute("UPDATE ir_attachment " \
"SET db_datas = encode( (COALESCE(decode(encode(db_datas,'escape'),'base64'),'') || decode(%s, 'base64')),'base64')::bytea , " \
" file_size = COALESCE(file_size, 0) + %s " \
" WHERE id = %s",
- (base64.encodestring(out), len(out), par.file_id))
+ (base64.encodestring(data), len(data), par.file_id))
cr.commit()
- except Exception, e:
+ except Exception:
logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id)
raise
finally:
@@ -500,7 +499,7 @@ class document_storage(osv.osv):
# try to fix their directory.
if ira.file_size:
self._doclog.warning("ir.attachment #%d does not have a filename, trying the name." %ira.id)
- sfname = ira.name
+ # sfname = ira.name
fpath = os.path.join(boo.path,ira.store_fname or ira.name)
if os.path.exists(fpath):
return file(fpath,'rb').read()
@@ -695,7 +694,7 @@ class document_storage(osv.osv):
store_fname = os.path.join(*store_path)
return { 'name': new_name, 'datas_fname': new_name, 'store_fname': store_fname }
else:
- raise TypeError("No %s storage" % boo.type)
+ raise TypeError("No %s storage" % sbro.type)
def simple_move(self, cr, uid, file_node, ndir_bro, context=None):
""" A preparation for a file move.
@@ -734,7 +733,7 @@ class document_storage(osv.osv):
fname = fil_bo.store_fname
if not fname:
return ValueError("Tried to rename a non-stored file")
- path = storage_bo.path
+ path = sbro.path
oldpath = os.path.join(path, fname)
for ch in ('*', '|', "\\", '/', ':', '"', '<', '>', '?', '..'):
@@ -751,7 +750,7 @@ class document_storage(osv.osv):
os.rename(oldpath, newpath)
return { 'name': new_name, 'datas_fname': new_name, 'store_fname': new_name }
else:
- raise TypeError("No %s storage" % boo.type)
+ raise TypeError("No %s storage" % sbro.type)
document_storage()
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index 62108a616b9..f6e21f338e7 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -61,7 +61,7 @@
name="Storage Media"
action="action_document_storage_form"
id="menu_document_storage_media"
- groups="base.group_extended,base.group_system"
+ groups="base.group_extended"
parent="menu_document_management_configuration"/>
@@ -335,6 +335,7 @@
Document
form
+ Documents give your access to all attached documents; it's a repository of all attached documents (mails, documents attached to a project, etc.)
\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-29 10:10+0000\n"
+"PO-Revision-Date: 2010-08-13 09:58+0000\n"
"Last-Translator: vir (Open ERP) \n"
"Language-Team: Hindi \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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/i18n/it.po b/addons/document/i18n/it.po
index 2eb65d2fff8..b8403e337b9 100644
--- a/addons/document/i18n/it.po
+++ b/addons/document/i18n/it.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 03:29+0000\n"
-"Last-Translator: LucaSub \n"
+"PO-Revision-Date: 2010-08-18 09: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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
@@ -24,12 +24,12 @@ msgstr "Data di creazione"
#. module: document
#: field:document.directory,ressource_id:0
msgid "Resource ID"
-msgstr ""
+msgstr "ID Risorsa"
#. module: document
#: field:document.directory.content,include_name:0
msgid "Include Record Name"
-msgstr ""
+msgstr "Includi il nome della registrazione"
#. module: document
#: constraint:ir.model:0
@@ -47,7 +47,7 @@ msgstr "ID Modello"
#. module: document
#: constraint:document.directory:0
msgid "Error! You can not create recursive Directories."
-msgstr ""
+msgstr "Errore! Non puoi creare Direcroty ricorsive"
#. module: document
#: model:ir.ui.menu,name:document.menu_document_configuration
@@ -86,12 +86,12 @@ msgstr ""
#. module: document
#: selection:document.directory,type:0
msgid "Other Resources"
-msgstr ""
+msgstr "Altre Risorse"
#. module: document
#: field:document.directory,ressource_parent_type_id:0
msgid "Parent Model"
-msgstr ""
+msgstr "Modello Padre"
#. module: document
#: view:document.configuration.wizard:0
@@ -123,6 +123,7 @@ msgstr "Tipo di Contenuto della Cartella"
msgid ""
"Use a domain if you want to apply an automatic filter on visible resources."
msgstr ""
+"Usa un Dominio se vui applicare un filtro automatico sulle risorse visibili"
#. module: document
#: help:document.directory,ressource_tree:0
@@ -130,6 +131,8 @@ msgid ""
"Check this if you want to use the same tree structure as the object selected "
"in the system."
msgstr ""
+"Spunta se vuoi usare la stessa struttura ad albero come l'oggetto "
+"selezionato nel sistema"
#. module: document
#: field:document.directory,type:0
@@ -145,7 +148,7 @@ msgstr "Strutture delle Cartelle"
#. module: document
#: field:document.directory,parent_id:0
msgid "Parent Item"
-msgstr ""
+msgstr "Articolo Padre"
#. module: document
#: view:ir.attachment:0
@@ -167,7 +170,7 @@ msgstr "Nome file Memorizzati"
#: field:document.directory,write_uid:0
#: field:ir.attachment,write_uid:0
msgid "Last Modification User"
-msgstr ""
+msgstr "Ultimo utente che ha modificato"
#. module: document
#: view:document.configuration.wizard:0
@@ -190,6 +193,8 @@ msgid ""
"This wizard will configure the URL of the server of the document management "
"system."
msgstr ""
+"Questa procedura automatica configura l'URL del server del Gestore "
+"Documentale"
#. module: document
#: model:ir.model,name:document.model_document_directory_content
@@ -202,6 +207,9 @@ msgid ""
"If you put an object here, this directory template will appear bellow all of "
"these objects. Don't put a parent directory if you select a parent model."
msgstr ""
+"Se metti un oggetto qui, questo modello di directory comparirà sotto tutti "
+"questi oggetti. Non mettere una directory padre se selezioni un modello di "
+"partner."
#. module: document
#: model:ir.ui.menu,name:document.menu_document
@@ -280,6 +288,10 @@ msgid ""
" * User Authentication\n"
" * Document Indexation\n"
msgstr ""
+"Questo è un completo Sistema di Gestione Documentale:\n"
+" * Interfaccia FTP\n"
+" * Autenticazione Utente\n"
+" * Indicizzazione Documenti\n"
#. module: document
#: field:document.directory,name:0
@@ -315,7 +327,7 @@ msgstr "Seq."
#. module: document
#: model:ir.module.module,shortdesc:document.module_meta_information
msgid "Integrated Document Management System"
-msgstr ""
+msgstr "Sistema di gestione documentale integrato"
#. module: document
#: field:document.directory.content,directory_id:0
@@ -332,7 +344,7 @@ msgstr "Proprietario"
#. module: document
#: model:ir.model,name:document.model_document_configuration_wizard
msgid "document.configuration.wizard"
-msgstr ""
+msgstr "document.configuration.wizard"
#. module: document
#: view:ir.attachment:0
@@ -378,6 +390,8 @@ msgid ""
"Select an object here and Open ERP will create a mapping for each of these "
"objects, using the given domain, when browsing through FTP."
msgstr ""
+"Seleziona un oggetto qui e Open ERP creerà un abbinamento per tutti questi "
+"oggetti, usando il dominio fornito, quando verrà sfogliato attraverso FTP."
#. module: document
#: view:ir.attachment:0
@@ -454,7 +468,7 @@ msgstr "Cancella"
#. module: document
#: field:ir.attachment,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: document
#: view:document.directory:0
@@ -469,7 +483,7 @@ msgstr "Tipo di documento"
#. module: document
#: field:document.directory,child_ids:0
msgid "Children"
-msgstr ""
+msgstr "Figlio"
#. module: document
#: view:document.directory:0
@@ -537,7 +551,7 @@ msgstr "Utenti che non inviano documenti da un mese"
#. module: document
#: view:report.files.partner:0
msgid "Files By Partner"
-msgstr ""
+msgstr "Files per Partner"
#. module: document
#: model:ir.ui.menu,name:document.menu_action_view_my_document_report_this
@@ -547,93 +561,93 @@ msgstr "Questo Mese"
#. module: document
#: field:report.document.user,user:0 field:report.document.wall,user:0
msgid "User"
-msgstr ""
+msgstr "Utente"
#. module: document
#: model:ir.ui.menu,name:document.menu_action_view_my_document_report_all_userfile
#: model:ir.ui.menu,name:document.menu_action_view_my_document_report_this_userfile
msgid "All Users files"
-msgstr ""
+msgstr "Tutti i files utente"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_my_document_tree
msgid "My files (This months)"
-msgstr ""
+msgstr "I miei files"
#. module: document
#: model:ir.model,name:document.model_report_document_user
msgid "Files details by Users"
-msgstr ""
+msgstr "Dettaglio files per utente"
#. module: document
#: field:report.document.file,nbr:0 field:report.document.user,nbr:0
#: field:report.files.partner,nbr:0
msgid "# of Files"
-msgstr ""
+msgstr "Num. di files"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_user_graph
msgid "Files By Users"
-msgstr ""
+msgstr "File per utenti"
#. module: document
#: model:ir.module.module,shortdesc:report_document.module_meta_information
msgid "Document Management - Reporting"
-msgstr ""
+msgstr "Gestione documentale - Stampe"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_all_document_tree1
msgid "All Users files (All months)"
-msgstr ""
+msgstr "Tutti i files degli utenti (Tutti i mesi)"
#. module: document
#: model:ir.model,name:document.model_report_document_file
msgid "Files details by Directory"
-msgstr ""
+msgstr "Dettaglio files per Directory"
#. module: document
#: field:report.document.user,change_date:0
#: field:report.files.partner,change_date:0
msgid "Modified Date"
-msgstr ""
+msgstr "Data modificata"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_size_month
#: view:report.document.file:0
msgid "File Size by Month"
-msgstr ""
+msgstr "Dimensione File per Mese"
#. module: document
#: field:report.document.user,file_title:0
#: field:report.files.partner,file_title:0
msgid "File Name"
-msgstr ""
+msgstr "Nome File"
#. module: document
#: field:report.document.file,month:0 field:report.document.user,month:0
#: field:report.document.user,name:0 field:report.document.wall,month:0
#: field:report.document.wall,name:0 field:report.files.partner,name:0
msgid "Month"
-msgstr ""
+msgstr "Mese"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_files_by_month_graph
#: view:report.document.user:0
msgid "Files by Month"
-msgstr ""
+msgstr "Files per mese"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_document_by_resourcetype_graph
#: view:report.document.user:0
msgid "Files by Resource Type"
-msgstr ""
+msgstr "File per tipo di risorsa"
#. module: document
#: model:ir.actions.act_window,name:document.action_view_all_document_tree
msgid "All Users files (This month)"
-msgstr ""
+msgstr "Tutti i file degli utenti (Mese attuale)"
#. module: document
#: field:report.document.wall,last:0
msgid "Last Posted Time"
-msgstr ""
+msgstr "Ora ultimo invio"
diff --git a/addons/document/i18n/mn.po b/addons/document/i18n/mn.po
index 1664fab0eb9..0d44cc7ad8d 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-11 05:38+0000\n"
+"PO-Revision-Date: 2010-08-29 10:11+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 0765f559c65..0a1037d4935 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-11 04:37+0000\n"
+"PO-Revision-Date: 2010-08-29 10:42+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 2b88f502479..f539fd21192 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-11 05:18+0000\n"
+"PO-Revision-Date: 2010-08-29 10:41+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 736716e836b..1e7008fecfb 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-11 04:36+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document
diff --git a/addons/document/nodes.py b/addons/document/nodes.py
index 228f104574d..cf590dafdad 100644
--- a/addons/document/nodes.py
+++ b/addons/document/nodes.py
@@ -19,17 +19,14 @@
#
##############################################################################
-# import base64
-# import StringIO
-from osv import osv, fields
-from osv.orm import except_orm
# import urlparse
import pooler
from tools.safe_eval import safe_eval
import errno
-import os
+# import os
import time
+import logging
from StringIO import StringIO
@@ -44,6 +41,8 @@ from StringIO import StringIO
# root: if we are at the first directory of a ressource
#
+logger = logging.getLogger('doc2.nodes')
+
def _str2time(cre):
""" Convert a string with time representation (from db) into time (float)
@@ -902,9 +901,8 @@ class node_res_obj(node_class):
def get_dav_eprop(self, cr, ns, prop):
if ns != 'http://groupdav.org/' or prop != 'resourcetype':
- print "Who asked for %s:%s?" % (ns, prop)
+ logger.warning("Who asked for %s:%s?" % (ns, prop))
return None
- res = {}
cntobj = self.context._dirobj.pool.get('document.directory.content')
uid = self.context.uid
ctx = self.context.context.copy()
@@ -1374,11 +1372,11 @@ class nodefd_content(StringIO, node_descriptor):
if self.mode in ('w', 'w+', 'r+'):
data = self.getvalue()
cntobj = par.context._dirobj.pool.get('document.directory.content')
- cntobj.process_write(cr, uid, parent, data, ctx)
+ cntobj.process_write(cr, uid, par, data, par.context.context)
elif self.mode == 'a':
raise NotImplementedError
cr.commit()
- except Exception, e:
+ except Exception:
logging.getLogger('document.content').exception('Cannot update db content #%d for close:', par.cnt_id)
raise
finally:
diff --git a/addons/document/test_cindex.py b/addons/document/test_cindex.py
index 267e0497950..d7ae7c4d160 100644
--- a/addons/document/test_cindex.py
+++ b/addons/document/test_cindex.py
@@ -35,7 +35,7 @@ for fname in args:
for line in res[:5]:
print line
except Exception,e:
- import traceback,sys
+ import traceback
tb_s = reduce(lambda x, y: x+y, traceback.format_exception( sys.exc_type, sys.exc_value, sys.exc_traceback))
diff --git a/addons/document_ftp/__openerp__.py b/addons/document_ftp/__openerp__.py
index 9be245e36a0..09c1ca6a66b 100644
--- a/addons/document_ftp/__openerp__.py
+++ b/addons/document_ftp/__openerp__.py
@@ -41,7 +41,6 @@
'demo_xml': [],
'test': [
'test/document_ftp_test2.yml',
- # 'test/document_ftp_test2.yml',
'test/document_ftp_test4.yml',
],
'installable': True,
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
index 2ddfcc2bb7d..00f308ff022 100644
--- a/addons/document_ftp/ftpserver/abstracted_fs.py
+++ b/addons/document_ftp/ftpserver/abstracted_fs.py
@@ -1,9 +1,8 @@
# -*- encoding: utf-8 -*-
+
import os
import time
from tarfile import filemode
-import StringIO
-import base64
import logging
import errno
@@ -12,12 +11,10 @@ import fnmatch
import pooler
import netsvc
-import os
+
from service import security
from osv import osv
-#from document.nodes import node_res_dir, node_res_obj
from document.nodes import get_node_context
-import stat
def _get_month_name(month):
month=int(month)
@@ -76,7 +73,7 @@ class abstracted_fs(object):
cr.execute("SELECT 1 FROM pg_class WHERE relkind = 'r' AND relname = 'ir_module_module'")
if not cr.fetchone():
continue
-
+
cr.execute("SELECT id FROM ir_module_module WHERE name = 'document_ftp' AND state IN ('installed', 'to upgrade') ")
res = cr.fetchone()
if res and len(res):
@@ -87,8 +84,6 @@ class abstracted_fs(object):
finally:
if cr is not None:
cr.close()
- #if db is not None:
- # pooler.close_db(db_name)
return self.db_name_list
def ftpnorm(self, ftppath):
@@ -117,7 +112,7 @@ class abstracted_fs(object):
def ftp2fs(self, path_orig, data):
raise DeprecationWarning()
- def fs2ftp(self, node):
+ def fs2ftp(self, node):
""" Return the string path of a node, in ftp form
"""
res='/'
@@ -125,7 +120,7 @@ class abstracted_fs(object):
paths = node.full_path()
res = '/' + node.context.dbname + '/' + \
_to_decode(os.path.join(*paths))
-
+
return res
def validpath(self, path):
@@ -141,7 +136,7 @@ class abstracted_fs(object):
""" Create a children file-node under node, open it
@return open node_descriptor of the created node
"""
- objname = _to_unicode(objname)
+ objname = _to_unicode(objname)
cr , node, rem = datacr
try:
child = node.child(cr, objname)
@@ -165,7 +160,7 @@ class abstracted_fs(object):
return ret
except EnvironmentError:
raise
- except Exception,e:
+ except Exception:
self._log.exception('Cannot create item %s at node %s', objname, repr(node))
raise OSError(1, 'Operation not permited.')
@@ -177,7 +172,7 @@ class abstracted_fs(object):
try:
res = node.open_data(cr, mode)
cr.commit()
- except TypeError, e:
+ except TypeError:
raise IOError(errno.EINVAL, "No data")
return res
@@ -188,12 +183,11 @@ class abstracted_fs(object):
name. Unlike mkstemp it returns an object with a file-like
interface.
"""
- raise NotImplementedError
+ raise NotImplementedError # TODO
text = not 'b' in mode
# for unique file , maintain version if duplicate file
if dir:
- # TODO
cr = dir.cr
uid = dir.uid
pool = pooler.get_pool(node.context.dbname)
@@ -203,7 +197,6 @@ class abstracted_fs(object):
if len(res):
pre = prefix.split('.')
prefix=pre[0] + '.v'+str(len(res))+'.'+pre[1]
- #prefix = prefix + '.'
return self.create(dir,suffix+prefix,text)
@@ -213,7 +206,7 @@ class abstracted_fs(object):
if (not datacr) or datacr == (None, None, None):
self.cwd = '/'
self.cwd_node = None
- return None
+ return None
if not datacr[1]:
raise OSError(1, 'Operation not permitted')
if datacr[1].type not in ('collection','database'):
@@ -228,13 +221,13 @@ class abstracted_fs(object):
cr, node, rem = datacr or (None, None, None)
if not node:
raise OSError(1, 'Operation not permited.')
-
+
try:
basename =_to_unicode(basename)
cdir = node.create_child_collection(cr, basename)
self._log.debug("Created child dir: %r", cdir)
cr.commit()
- except Exception,e:
+ except Exception:
self._log.exception('Cannot create dir "%s" at node %s', basename, repr(node))
raise OSError(1, 'Operation not permited.')
@@ -245,15 +238,15 @@ class abstracted_fs(object):
def get_cr(self, pathname):
raise DeprecationWarning()
-
+
def get_crdata(self, line, mode='file'):
""" Get database cursor, node and remainder data, for commands
-
+
This is the helper function that will prepare the arguments for
any of the subsequent commands.
It returns a tuple in the form of:
@code ( cr, node, rem_path=None )
-
+
@param line An absolute or relative ftp path, as passed to the cmd.
@param mode A word describing the mode of operation, so that this
function behaves properly in the different commands.
@@ -310,7 +303,6 @@ class abstracted_fs(object):
raise OSError(2, 'Authentification Required.')
n = get_node_context(cr, uid, {})
node = n.get_uri(cr, p_parts[1:])
- # self._log.debug("get_crdata(abs): %r" % ( (cr, node, rem_path),))
return (cr, node, rem_path)
else:
# we never reach here if cwd_node is not set
@@ -324,7 +316,6 @@ class abstracted_fs(object):
if node is False and mode not in ('???'):
cr.close()
raise IOError(errno.ENOENT, 'Path does not exist')
- # self._log.debug("get_crdata(rel): %r" % ( (cr, node, rem_path),))
return (cr, node, rem_path)
def get_node_cr_uid(self, node):
@@ -333,15 +324,15 @@ class abstracted_fs(object):
assert node
db = pooler.get_db(node.context.dbname)
return db.cursor(), node.context.uid
-
+
def get_node_cr(self, node):
""" Get the cursor for the database of a node
-
- The cursor is the only thing that a node will not store
+
+ The cursor is the only thing that a node will not store
persistenly, so we have to obtain a new one for each call.
"""
return self.get_node_cr_uid(node)[0]
-
+
def listdir(self, datacr):
"""List the content of a directory."""
class false_node(object):
@@ -352,7 +343,7 @@ class abstracted_fs(object):
uuser = 'root'
ugroup = 'root'
type = 'database'
-
+
def __init__(self, db):
self.path = db
@@ -405,7 +396,7 @@ class abstracted_fs(object):
cr.commit()
except EnvironmentError:
raise
- except Exception, err:
+ except Exception:
self._log.exception('Cannot rename "%s" to "%s" at "%s"', src, datacr[2], datacr[1])
raise OSError(1,'Operation not permited.')
@@ -445,7 +436,7 @@ class abstracted_fs(object):
def getmtime(self, datacr):
"""Return the last modified time as a number of seconds since
the epoch."""
-
+
node = datacr[1]
if node.write_date or node.create_date:
dt = (node.write_date or node.create_date)[:19]
@@ -491,12 +482,11 @@ class abstracted_fs(object):
def get_list_dir(self, datacr):
""""Return an iterator object that yields a directory listing
in a form suitable for LIST command.
- """
+ """
if not datacr:
return None
elif self.isdir(datacr[1]):
listing = self.listdir(datacr)
- #listing.sort()
return self.format_list(datacr[0], datacr[1], listing)
# if path is a file or a symlink we return information about it
elif self.isfile(datacr[1]):
@@ -564,11 +554,11 @@ class abstracted_fs(object):
mtime = mname+' '+time.strftime("%d %H:%M", st_mtime)
except ValueError:
mname=_get_month_name(time.strftime("%m"))
- mtime = mname+' '+time.strftime("%d %H:%M")
+ mtime = mname+' '+time.strftime("%d %H:%M")
fpath = node.path
if isinstance(fpath, (list, tuple)):
fpath = fpath[-1]
- # formatting is matched with proftpd ls output
+ # formatting is matched with proftpd ls output
path=_to_decode(fpath)
yield "%s %3s %-8s %-8s %8s %s %s\r\n" %(perms, nlinks, uname, gname,
size, mtime, path)
@@ -611,7 +601,7 @@ class abstracted_fs(object):
# type + perm
if self.isdir(node):
if 'type' in facts:
- type = 'type=dir;'
+ type = 'type=dir;'
if 'perm' in facts:
perm = 'perm=%s;' %permdir
else:
diff --git a/addons/document_ftp/ftpserver/ftpserver.py b/addons/document_ftp/ftpserver/ftpserver.py
index 692abc4aef4..710494bb9db 100644
--- a/addons/document_ftp/ftpserver/ftpserver.py
+++ b/addons/document_ftp/ftpserver/ftpserver.py
@@ -121,15 +121,9 @@ import tempfile
import warnings
import random
import stat
+from collections import deque
from tarfile import filemode
-try:
- import pwd
- import grp
-except ImportError:
- pwd = grp = None
-
-
LOG_ACTIVE = True
__all__ = ['proto_cmds', 'Error', 'log', 'logline', 'logerror', 'DummyAuthorizer',
@@ -192,24 +186,6 @@ proto_cmds = {
}
-# hack around format_exc function of traceback module to grant
-# backward compatibility with python < 2.4
-if not hasattr(traceback, 'format_exc'):
- try:
- import cStringIO as StringIO
- except ImportError:
- import StringIO
-
- def _format_exc():
- f = StringIO.StringIO()
- traceback.print_exc(file=f)
- data = f.getvalue()
- f.close()
- return data
-
- traceback.format_exc = _format_exc
-
-
def _strerror(err):
"""A wrap around os.strerror() which may be not available on all
platforms (e.g. pythonCE).
@@ -571,7 +547,6 @@ class ActiveDTP(asyncore.dispatcher):
handler = self.cmd_channel.dtp_handler(self.socket, self.cmd_channel)
self.cmd_channel.data_channel = handler
self.cmd_channel.on_dtp_connection()
- #self.close() # <-- (done automatically)
def handle_expt(self):
self.cmd_channel.respond("425 Can't connect to specified address.")
@@ -590,16 +565,6 @@ class ActiveDTP(asyncore.dispatcher):
self.cmd_channel.respond("425 Can't connect to specified address.")
self.close()
-
-try:
- from collections import deque
-except ImportError:
- # backward compatibility with Python < 2.4 by replacing deque with a list
- class deque(list):
- def appendleft(self, obj):
- list.insert(self, 0, obj)
-
-
class DTPHandler(asyncore.dispatcher):
"""Class handling server-data-transfer-process (server-DTP, see
RFC-959) managing data-transfer operations involving sending
@@ -1227,21 +1192,9 @@ class AbstractedFS:
if not nlinks: # non-posix system, let's use a bogus value
nlinks = 1
size = st.st_size # file size
- if pwd and grp:
- # get user and group name, else just use the raw uid/gid
- try:
- uname = pwd.getpwuid(st.st_uid).pw_name
- except KeyError:
- uname = st.st_uid
- try:
- gname = grp.getgrgid(st.st_gid).gr_name
- except KeyError:
- gname = st.st_gid
- else:
- # on non-posix systems the only chance we use default
- # bogus values for owner and group
- uname = "owner"
- gname = "group"
+ uname = st.st_uid or "owner"
+ gname = st.st_gid or "group"
+
# stat.st_mtime could fail (-1) if last mtime is too old
# in which case we return the local time as last mtime
try:
@@ -1438,7 +1391,7 @@ class FTPHandler(asynchat.async_chat):
"""
try:
asynchat.async_chat.__init__(self, conn=conn) # python2.5
- except TypeError, e:
+ except TypeError:
asynchat.async_chat.__init__(self, sock=conn) # python2.6
self.server = server
self.remote_ip, self.remote_port = self.socket.getpeername()[:2]
@@ -1458,7 +1411,7 @@ class FTPHandler(asynchat.async_chat):
self._epsvall = False
self.__in_dtp_queue = None
self.__out_dtp_queue = None
-
+
self.__errno_responses = {
errno.EPERM: 553,
errno.EINVAL: 504,
@@ -1469,13 +1422,10 @@ class FTPHandler(asynchat.async_chat):
# mlsx facts attributes
self.current_facts = ['type', 'perm', 'size', 'modify']
- if os.name == 'posix':
- self.current_facts.append('unique')
+ self.current_facts.append('unique')
self.available_facts = self.current_facts[:]
- if pwd and grp:
- self.available_facts += ['unix.mode', 'unix.uid', 'unix.gid']
- if os.name == 'nt':
- self.available_facts.append('create')
+ self.available_facts += ['unix.mode', 'unix.uid', 'unix.gid']
+ self.available_facts.append('create')
# dtp attributes
self.data_server = None
@@ -1623,7 +1573,7 @@ class FTPHandler(asynchat.async_chat):
def __check_path(self, cmd, line):
"""Check whether a path is valid."""
-
+
# Always true, we will only check later, once we have a cursor
return True
@@ -1787,7 +1737,7 @@ class FTPHandler(asynchat.async_chat):
self.__out_dtp_queue = (data, isproducer, file)
def log(self, msg):
- """Log a message, including additional identifying session data."""
+ """Log a message, including additional identifying session data."""
log("[%s]@%s:%s %s" %(self.username, self.remote_ip,
self.remote_port, msg))
@@ -1864,9 +1814,9 @@ class FTPHandler(asynchat.async_chat):
why = (err.strerror) or 'Error in command'
self.log('FAIL %s() %s errno=%s: %s.' %(cmdname, uline, err.errno, why))
self.respond('%s %s.' % (str(ret_code), why))
-
+
raise FTPExceptionSent(why)
- except Exception, e:
+ except Exception, err:
cmdname = function.__name__
try:
logerror(traceback.format_exc())
@@ -2003,7 +1953,7 @@ class FTPHandler(asynchat.async_chat):
assert len(octs) == 4
for x in octs:
assert 0 <= x <= 255
- except (AssertionError, ValueError, OverflowError), err:
+ except (AssertionError, ValueError, OverflowError):
self.respond("501 Invalid EPRT format.")
else:
self._make_eport(ip, port)
@@ -2107,7 +2057,7 @@ class FTPHandler(asynchat.async_chat):
except FTPExceptionSent:
self.fs.close_cr(datacr)
return
-
+
try:
self.log('OK LIST "%s". Transfer starting.' % line)
producer = BufferedIteratorProducer(iterator)
@@ -2133,7 +2083,7 @@ class FTPHandler(asynchat.async_chat):
else:
# if path is a file we just list its name
nodelist = [datacr[1],]
-
+
listing = []
for nl in nodelist:
if isinstance(nl.path, (list, tuple)):
@@ -2143,7 +2093,7 @@ class FTPHandler(asynchat.async_chat):
except FTPExceptionSent:
self.fs.close_cr(datacr)
return
-
+
self.fs.close_cr(datacr)
data = ''
if listing:
@@ -2194,7 +2144,7 @@ class FTPHandler(asynchat.async_chat):
# if no argument, fall back on cwd as default
if not line:
line = ''
-
+
datacr = None
try:
datacr = self.get_crdata2(line, mode='list')
@@ -2581,12 +2531,6 @@ class FTPHandler(asynchat.async_chat):
datacr = None
try:
datacr = self.get_crdata2(line, mode='file')
- #if self.fs.isdir(datacr[1]):
- # why = "%s is not retrievable" %line
- # self.log('FAIL SIZE "%s". %s.' %(line, why))
- # self.respond("550 %s." %why)
- # self.fs.close_cr(datacr)
- # return
size = self.try_as_current_user(self.fs.getsize,(datacr,), line=line)
except FTPExceptionSent:
self.fs.close_cr(datacr)
@@ -2601,7 +2545,7 @@ class FTPHandler(asynchat.async_chat):
3307 style timestamp (YYYYMMDDHHMMSS) as defined in RFC-3659.
"""
datacr = None
-
+
try:
if line.find('/', 1) < 0:
# root or db, just return local
@@ -2610,9 +2554,7 @@ class FTPHandler(asynchat.async_chat):
datacr = self.get_crdata2(line)
if not datacr:
raise IOError(errno.ENOENT, "%s is not retrievable" %line)
- #if not self.fs.isfile(datacr[1]):
- # raise IOError(errno.EPERM, "%s is not a regular file" % line)
-
+
lmt = self.try_as_current_user(self.fs.getmtime, (datacr,), line=line)
lmt = time.strftime("%Y%m%d%H%M%S", time.localtime(lmt))
self.respond("213 %s" %lmt)
diff --git a/addons/document_ftp/wizard/ftp_browse.py b/addons/document_ftp/wizard/ftp_browse.py
index d033302f22a..42081c98fd0 100644
--- a/addons/document_ftp/wizard/ftp_browse.py
+++ b/addons/document_ftp/wizard/ftp_browse.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,13 +15,14 @@
# 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 .
#
##############################################################################
from osv import osv, fields
-from tools.translate import _
+# from tools.translate import _
from document_ftp import ftpserver
+
class document_ftp_browse(osv.osv_memory):
_name = 'document.ftp.browse'
_description = 'Document FTP Browse'
@@ -35,8 +36,7 @@ class document_ftp_browse(osv.osv_memory):
if 'url' in fields:
user_pool = self.pool.get('res.users')
current_user = user_pool.browse(cr, uid, uid, context=context)
- dir_pool = self.pool.get('document.directory')
- data_pool = self.pool.get('ir.model.data')
+ data_pool = self.pool.get('ir.model.data')
aid = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse')
aid = data_pool.browse(cr, uid, aid, context=context).res_id
ftp_url = self.pool.get('ir.actions.url').browse(cr, uid, aid, context=context)
@@ -44,18 +44,18 @@ class document_ftp_browse(osv.osv_memory):
if url:
url = url[1]
else:
- url = '%s:%s' %(ftpserver.HOST, ftpserver.PORT)
+ url = '%s:%s' %(ftpserver.HOST, ftpserver.PORT)
res['url'] = 'ftp://%s@%s'%(current_user.login, url)
return res
def browse_ftp(self, cr, uid, ids, context):
data_id = ids and ids[0] or False
- data = self.browse(cr, uid, data_id, context)
+ data = self.browse(cr, uid, data_id, context)
final_url = data.url
return {
'type': 'ir.actions.act_url',
'url':final_url,
'target': 'new'
}
+
document_ftp_browse()
-
diff --git a/addons/document_ftp/wizard/ftp_configuration.py b/addons/document_ftp/wizard/ftp_configuration.py
index 40926bdf7c9..0522e0348b8 100644
--- a/addons/document_ftp/wizard/ftp_configuration.py
+++ b/addons/document_ftp/wizard/ftp_configuration.py
@@ -19,14 +19,8 @@
#
##############################################################################
-import base64
-
from osv import osv, fields
-from osv.orm import except_orm
from tools import config
-import urlparse
-
-import os
class document_ftp_configuration(osv.osv_memory):
@@ -46,10 +40,10 @@ class document_ftp_configuration(osv.osv_memory):
def execute(self, cr, uid, ids, context=None):
conf = self.browse(cr, uid, ids[0], context)
- dir_pool = self.pool.get('document.directory')
- data_pool = self.pool.get('ir.model.data')
+ data_pool = self.pool.get('ir.model.data')
# Update the action for FTP browse.
aid = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse')
aid = data_pool.browse(cr, uid, aid, context=context).res_id
self.pool.get('ir.actions.url').write(cr, uid, [aid], {'url': 'ftp://'+(conf.host or 'localhost:8021')+'/'})
+
document_ftp_configuration()
diff --git a/addons/document_ics/document_ics.py b/addons/document_ics/document_ics.py
index fdcf9d90e30..9133a525afa 100644
--- a/addons/document_ics/document_ics.py
+++ b/addons/document_ics/document_ics.py
@@ -166,7 +166,6 @@ class document_directory_content(osv.osv):
ctx = (context or {})
ctx.update(node.context.context.copy())
ctx.update(node.dctx)
- # print "ICS domain: ", type(content.ics_domain), content.ics_domain
if content.ics_domain:
for d in safe_eval(content.ics_domain,ctx):
# TODO: operator?
@@ -195,7 +194,6 @@ class document_directory_content(osv.osv):
elif ICS_TAGS[enl]=='date':
result[fields[enl]] = event.value.strftime('%Y-%m-%d %H:%M:%S')
- # print "Field ",enl, result[fields[enl]]
elif fields[enl] and funcs[enl] == 'hours':
ntag = fexprs[enl] or 'dtstart'
ts_start = child.getChildValue(ntag, default=False)
@@ -238,9 +236,6 @@ class document_directory_content(osv.osv):
wexpr = [ ( 'id', '=', wematch.group(2) ) ]
- # print "Looking at ", cmodel, " for ", wexpr
- # print "domain=", idomain
-
fobj = self.pool.get(content.object_id.model)
if not wexpr:
@@ -354,7 +349,7 @@ class crm_meeting(osv.osv):
if not default: default = {}
if not context: context = {}
default.update({'code': self.pool.get('ir.sequence').get(cr, uid, 'crm.meeting'), 'id': False})
- return super(crm_meeting, self).copy(cr, uid, id, default, context)
+ return super(crm_meeting, self).copy(cr, uid, id, default, context)
crm_meeting()
diff --git a/addons/document_ics/document_ics_config_wizard.py b/addons/document_ics/document_ics_config_wizard.py
index ca7c9f02eb0..611c804a62c 100644
--- a/addons/document_ics/document_ics_config_wizard.py
+++ b/addons/document_ics/document_ics_config_wizard.py
@@ -54,25 +54,16 @@ class document_ics_crm_wizard(osv.osv_memory):
_columns = {
'name':fields.char('Name', size=64),
- 'meeting': fields.boolean('Calendar of Meetings', help="Manages the calendar \
- of meetings of the users."),
- 'lead': fields.boolean('Leads', help="Allows you to track and manage leads \
- which are pre-sales requests or contacts, the very first contact with a customer request."),
- 'opportunity': fields.boolean('Business Opportunities', help="Tracks identified \
- business opportunities for your sales pipeline."),
- 'jobs': fields.boolean('Jobs Hiring Process', help="Helps you to organise the jobs\
- hiring process: evaluation, meetings, email integration..."),
- 'document_ics':fields.boolean('Shared Calendar', help=" Will allow you to synchronise \
- your OpenERP calendars with your phone, outlook, Sunbird, ical, ..."),
- 'bugs': fields.boolean('Bug Tracking', help="Used by companies to track bugs and \
- support requests on software"),
+ 'meeting': fields.boolean('Calendar of Meetings', help="Manages the calendar of meetings of the users."),
+ 'lead': fields.boolean('Leads', help="Allows you to track and manage leads which are pre-sales requests or contacts, the very first contact with a customer request."),
+ 'opportunity': fields.boolean('Business Opportunities', help="Tracks identified business opportunities for your sales pipeline."),
+ 'jobs': fields.boolean('Jobs Hiring Process', help="Helps you to organise the jobs hiring process: evaluation, meetings, email integration..."),
+ 'document_ics':fields.boolean('Shared Calendar', help=" Will allow you to synchronise your Open ERP calendars with your phone, outlook, Sunbird, ical, ..."),
+ 'bugs': fields.boolean('Bug Tracking', help="Used by companies to track bugs and support requests on software"),
'helpdesk': fields.boolean('Helpdesk', help="Manages an Helpdesk service."),
- 'fund': fields.boolean('Fund Raising Operations', help="This may help associations in \
- their fund raising process and tracking."),
- 'claims': fields.boolean('Claims', help="Manages the supplier and customers claims,\
- including your corrective or preventive actions."),
- 'phonecall': fields.boolean('Phone Calls', help="Helps you to encode the result of \
- a phone call or to plan a list of phone calls to process."),
+ 'fund': fields.boolean('Fund Raising Operations', help="This may help associations in their fund raising process and tracking."),
+ 'claims': fields.boolean('Claims', help="Manages the supplier and customers claims,including your corrective or preventive actions."),
+ 'phonecall': fields.boolean('Phone Calls', help="Helps you to encode the result of a phone call or to plan a list of phone calls to process."),
}
_defaults = {
'meeting': lambda *args: True,
diff --git a/addons/document_ics/i18n/tr.po b/addons/document_ics/i18n/tr.po
index 43906829579..56a41219b65 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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 10:04+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 bac475d5fb3..79433dba7c1 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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:41+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: document_ics
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
index af8738ef0da..f3c8201bafc 100644
--- a/addons/document_webdav/dav_fs.py
+++ b/addons/document_webdav/dav_fs.py
@@ -80,14 +80,14 @@ class openerp_dav_handler(dav_interface):
M_NS={ "DAV:" : dav_interface.M_NS['DAV:'],}
- def __init__(self, parent, verbose=False):
+ def __init__(self, parent, verbose=False):
self.db_name_list=[]
self.parent = parent
self.baseuri = parent.baseuri
self.verbose = verbose
def get_propnames(self, uri):
- props = self.PROPS
+ props = self.PROPS
self.parent.log_message('get propnames: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
@@ -98,7 +98,7 @@ class openerp_dav_handler(dav_interface):
if node:
props = props.copy()
props.update(node.get_dav_props(cr))
- cr.close()
+ cr.close()
return props
def _try_function(self, funct, args, opname='run function', cr=None,
@@ -129,6 +129,7 @@ class openerp_dav_handler(dav_interface):
raise default_exc(err.strerror)
except Exception,e:
import traceback
+ if cr: cr.close()
self.parent.log_error("Cannot %s: %s", opname, str(e))
self.parent.log_message("Exc: %s",traceback.format_exc())
raise default_exc("Operation failed")
@@ -139,20 +140,20 @@ class openerp_dav_handler(dav_interface):
def _get_dav_supportedlock(self, uri):
raise DAV_NotFound
- def match_prop(self, uri, match, ns, propname):
+ def match_prop(self, uri, match, ns, propname):
if self.M_NS.has_key(ns):
return match == dav_interface.get_prop(self, uri, ns, propname)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
raise DAV_NotFound
- node = self.uri2object(cr, uid, pool, uri2)
+ node = self.uri2object(cr, uid, pool, uri2)
if not node:
cr.close()
raise DAV_NotFound
- res = node.match_dav_eprop(cr, match, ns, propname)
- cr.close()
- return res
+ res = node.match_dav_eprop(cr, match, ns, propname)
+ cr.close()
+ return res
def prep_http_options(self, uri, opts):
"""see HttpOptions._prep_OPTIONS """
@@ -191,7 +192,7 @@ class openerp_dav_handler(dav_interface):
uri -- uri of the object to get the property of
ns -- namespace of the property
pname -- name of the property
- """
+ """
if self.M_NS.has_key(ns):
return dav_interface.get_prop(self, uri, ns, propname)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
@@ -203,8 +204,8 @@ class openerp_dav_handler(dav_interface):
cr.close()
raise DAV_NotFound
res = node.get_dav_eprop(cr, ns, propname)
- cr.close()
- return res
+ cr.close()
+ return res
def get_db(self, uri, rest_ret=False, allow_last=False):
"""Parse the uri and get the dbname and the rest.
@@ -271,17 +272,17 @@ class openerp_dav_handler(dav_interface):
return self.db_name_list
def get_childs(self, uri, filters=None):
- """ return the child objects as self.baseuris for the given URI """
+ """ return the child objects as self.baseuris for the given URI """
self.parent.log_message('get childs: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri, allow_last=True)
-
- if not dbname:
+
+ if not dbname:
if cr: cr.close()
- res = map(lambda x: self.urijoin(x), self.db_list())
+ res = map(lambda x: self.urijoin(x), self.db_list())
return res
result = []
node = self.uri2object(cr, uid, pool, uri2[:])
-
+
if not node:
if cr: cr.close()
raise DAV_NotFound2(uri2)
@@ -296,12 +297,12 @@ class openerp_dav_handler(dav_interface):
if filters:
domain = node.get_domain(cr, filters)
for d in node.children(cr, domain):
- self.parent.log_message('child: %s' % d.path)
+ self.parent.log_message('child: %s' % d.path)
if fp:
result.append( self.urijoin(dbname,fp,d.path) )
else:
result.append( self.urijoin(dbname,d.path) )
- if cr: cr.close()
+ if cr: cr.close()
return result
def uri2local(self, uri):
@@ -367,11 +368,11 @@ class openerp_dav_handler(dav_interface):
raise DAV_Error, 409
return str(datas) # FIXME!
finally:
- if cr: cr.close()
+ if cr: cr.close()
@memoize(CACHE_SIZE)
def _get_dav_resourcetype(self, uri):
- """ return type of object """
+ """ return type of object """
self.parent.log_message('get RT: %s' % uri)
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
try:
@@ -394,7 +395,11 @@ class openerp_dav_handler(dav_interface):
cr, uid, pool, dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
- return COLLECTION
+ # at root, dbname, just return the last component
+ # of the path.
+ if uri2 and len(uri2) < 2:
+ return uri2[-1]
+ return ''
node = self.uri2object(cr, uid, pool, uri2)
if not node:
if cr: cr.close()
@@ -522,7 +527,6 @@ class openerp_dav_handler(dav_interface):
def put(self, uri, data, content_type=None):
""" put the object into the filesystem """
self.parent.log_message('Putting %s (%d), %s'%( misc.ustr(uri), data and len(data) or 0, content_type))
- parent='/'.join(uri.split('/')[:-1])
cr, uid, pool,dbname, uri2 = self.get_cr(uri)
if not dbname:
if cr: cr.close()
@@ -535,20 +539,44 @@ class openerp_dav_handler(dav_interface):
objname = uri2[-1]
ext = objname.find('.') >0 and objname.split('.')[1] or False
+ ret = None
if not node:
dir_node = self.uri2object(cr, uid, pool, uri2[:-1])
if not dir_node:
cr.close()
raise DAV_NotFound('Parent folder not found')
- self._try_function(dir_node.create_child, (cr, objname, data),
+ newchild = self._try_function(dir_node.create_child, (cr, objname, data),
"create %s" % objname, cr=cr)
+ if not newchild:
+ cr.commit()
+ cr.close()
+ raise DAV_Error(400, "Failed to create resource")
+
+ uparts=urlparse.urlparse(uri)
+ fileloc = '/'.join(newchild.full_path())
+ if isinstance(fileloc, unicode):
+ fileloc = fileloc.encode('utf-8')
+ # the uri we get is a mangled one, where the davpath has been removed
+ davpath = self.parent.get_davpath()
+
+ surl = '%s://%s' % (uparts[0], uparts[1])
+ uloc = urllib.quote(fileloc)
+ hurl = False
+ if uri != ('/'+uloc) and uri != (surl + '/' + uloc):
+ hurl = '%s%s/%s/%s' %(surl, davpath, dbname, uloc)
+ etag = False
+ try:
+ etag = str(newchild.get_etag(cr))
+ except Exception, e:
+ self.parent.log_error("Cannot get etag for node: %s" % e)
+ ret = (hurl, etag)
else:
self._try_function(node.set_data, (cr, data), "save %s" % objname, cr=cr)
cr.commit()
cr.close()
- return 201
+ return ret
def rmcol(self,uri):
""" delete a collection """
diff --git a/addons/document_webdav/i18n/id.po b/addons/document_webdav/i18n/id.po
new file mode 100644
index 00000000000..07c070040e7
--- /dev/null
+++ b/addons/document_webdav/i18n/id.po
@@ -0,0 +1,27 @@
+# Indonesian 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-08-17 09:23+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Indonesian \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-18 10:34+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 ""
diff --git a/addons/document_webdav/i18n/it.po b/addons/document_webdav/i18n/it.po
new file mode 100644
index 00000000000..8fa18b0f3d1
--- /dev/null
+++ b/addons/document_webdav/i18n/it.po
@@ -0,0 +1,31 @@
+# Italian 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-08-18 10:32+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Italian \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-19 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 ""
+"Questo è un completo Sistema di Gestione Documentale:\n"
+"\t* Interfaccia WebDat\n"
+"\t* Autenticazione Utente\n"
+"\t* Indicizzazione Documenti\n"
diff --git a/addons/document_webdav/webdav.py b/addons/document_webdav/webdav.py
index 1fd530cbdca..3b6cf582067 100644
--- a/addons/document_webdav/webdav.py
+++ b/addons/document_webdav/webdav.py
@@ -24,8 +24,15 @@ import xml.dom.minidom
domimpl = xml.dom.minidom.getDOMImplementation()
import urlparse
import urllib
-from DAV import utils
-from DAV.propfind import PROPFIND
+from osv import osv
+
+try:
+ from DAV import utils
+ from DAV.propfind import PROPFIND
+except ImportError:
+ raise osv.except_osv('PyWebDAV Import Error!','Please install PyWebDAV \
+from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.4.tar.gz&can=2&q=/')
+
import tools
@@ -50,10 +57,10 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
def _prop_child(xnode, ns, prop, value):
"""Append a property xml node to xnode, with value
-
+
And a little smarter than that, it will consider namespace and
also allow nested properties etc.
-
+
:param ns the namespace of the node
:param prop the name of the property
:param value the value. Can be:
@@ -82,7 +89,7 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
xnode.appendChild(pe)
def _prop_elem_child(pnode, pns, v, pns_prefix):
-
+
if isinstance(v, list):
for vit in v:
_prop_elem_child(pnode, pns, vit, pns_prefix)
@@ -95,8 +102,6 @@ def mk_prop_response(self, uri, good_props, bad_props, doc):
elif v[1] in namespaces:
ns_prefix="ns"+str(namespaces.index(v[1]))+":"
else:
- # namespaces.append(v[1])
- # nsnum += 1
ns_prefix="ns"+str(nsnum)+":"
need_ns = True
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py
index 34c255a2b3e..44592243480 100644
--- a/addons/document_webdav/webdav_server.py
+++ b/addons/document_webdav/webdav_server.py
@@ -44,7 +44,7 @@ def OpenDAVConfig(**kw):
class OpenDAV:
def __init__(self, **kw):
self.__dict__.update(**kw)
-
+
def getboolean(self, word):
return self.__dict__.get(word, False)
@@ -58,7 +58,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
verbose = False
protocol_version = 'HTTP/1.1'
_HTTP_OPTIONS= { 'DAV' : ['1',],
- 'Allow' : [ 'GET', 'HEAD', 'COPY', 'MOVE', 'POST', 'PUT',
+ 'Allow' : [ 'GET', 'HEAD', 'COPY', 'MOVE', 'POST', 'PUT',
'PROPFIND', 'PROPPATCH', 'OPTIONS', 'MKCOL',
'DELETE', 'TRACE', 'REPORT', ]
}
@@ -67,7 +67,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
return False
def _log(self, message):
netsvc.Logger().notifyChannel("webdav",netsvc.LOG_DEBUG,message)
-
+
def handle(self):
self._init_buffer()
@@ -83,7 +83,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
self.davpath = '/'+config.get_misc('webdav','vdir','webdav')
self.baseuri = "http://%s:%d/"% (self.server.server_name, self.server.server_port)
self.IFACE_CLASS = openerp_dav_handler(self, self.verbose)
-
+
def copymove(self, CLASS):
""" Our uri scheme removes the /webdav/ component from there, so we
need to mangle the header, too.
@@ -98,7 +98,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
def get_davpath(self):
return self.davpath
-
+
def log_message(self, format, *args):
netsvc.Logger().notifyChannel('webdav', netsvc.LOG_DEBUG_RPC, format % args)
@@ -111,7 +111,6 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
uri=urlparse.urljoin(self.get_baseuri(dc), self.path)
uri=urllib.unquote(uri)
try:
- #location = dc.put(uri,body,ct)
ret = dc.prep_http_options(uri, opts)
except DAV_Error, (ec,dd):
pass
@@ -119,7 +118,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
self.log_error("Error at options: %s", str(e))
raise
return ret
-
+
def send_response(self, code, message=None):
# the BufferingHttpServer will send Connection: close , while
# the BaseHTTPRequestHandler will only accept int code.
@@ -148,15 +147,15 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
ctype=ctype, headers=headers)
def do_PUT(self):
- dc=self.IFACE_CLASS
+ dc=self.IFACE_CLASS
uri=urlparse.urljoin(self.get_baseuri(dc), self.path)
uri=urllib.unquote(uri)
# Handle If-Match
if self.headers.has_key('If-Match'):
test = False
etag = None
-
- for match in self.headers['If-Match'].split(','):
+
+ for match in self.headers['If-Match'].split(','):
if match.startswith('"') and match.endswith('"'):
match = match[1:-1]
if match == '*':
@@ -175,7 +174,7 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
# Handle If-None-Match
if self.headers.has_key('If-None-Match'):
test = True
- etag = None
+ etag = None
for match in self.headers['If-None-Match'].split(','):
if match == '*':
if dc.exists(uri):
@@ -214,14 +213,21 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
return self.send_status(ec)
headers = {}
+ etag = None
+ if location and isinstance(location, tuple):
+ etag = location[1]
+ location = location[0]
+ # note that we have allowed for > 2 elems
if location:
headers['Location'] = location
-
- try:
- etag = dc.get_prop(location or uri, "DAV:", "getetag")
- headers['ETag'] = etag
- except:
- pass
+ else:
+ try:
+ if not etag:
+ etag = dc.get_prop(location or uri, "DAV:", "getetag")
+ if etag:
+ headers['ETag'] = str(etag)
+ except Exception:
+ pass
self.send_body(None, '201', 'Created', '', headers=headers)
@@ -252,14 +258,14 @@ class DAVAuthProvider(OpenERPAuthProvider):
try:
if (config.get_misc('webdav','enable',True)):
- directory = '/'+config.get_misc('webdav','vdir','webdav')
+ directory = '/'+config.get_misc('webdav','vdir','webdav')
handler = DAVHandler
verbose = config.get_misc('webdav','verbose',True)
handler.debug = config.get_misc('webdav','debug',True)
_dc = { 'verbose' : verbose,
'directory' : directory,
'lockemulation' : False,
-
+
}
conf = OpenDAVConfig(**_dc)
diff --git a/addons/email_template/__init__.py b/addons/email_template/__init__.py
index 6d99e9a4492..a21bd4bec06 100644
--- a/addons/email_template/__init__.py
+++ b/addons/email_template/__init__.py
@@ -2,21 +2,21 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# Copyright (C) 2004-2010 Tiny SPRL ().
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
#
# 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.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU 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 .
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
#
##############################################################################
diff --git a/addons/email_template/__openerp__.py b/addons/email_template/__openerp__.py
index aa3ea2045d2..3654f22047c 100644
--- a/addons/email_template/__openerp__.py
+++ b/addons/email_template/__openerp__.py
@@ -2,21 +2,21 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# Copyright (C) 2004-2010 Tiny SPRL ().
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
#
# 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.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU 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 .
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
#
##############################################################################
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index fb7c16f69c7..39fcfcd24c4 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -2,29 +2,28 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# Copyright (C) 2004-2010 Tiny SPRL ().
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
#
# 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.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU 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 .
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
#
##############################################################################
import base64
import random
-import time
-import types
import netsvc
+import re
LOGGER = netsvc.Logger()
@@ -58,9 +57,7 @@ except:
_("Django templates not installed")
)
-import email_template_engines
import tools
-import report
import pooler
import logging
@@ -128,29 +125,38 @@ class email_template(osv.osv):
'name' : fields.char('Name', size=100, required=True),
'object_name':fields.many2one('ir.model', 'Model'),
'model_int_name':fields.char('Model Internal Name', size=200,),
- 'enforce_from_account':fields.many2one(
+ 'from_account':fields.many2one(
'email_template.account',
- string="Enforce From Account",
- help="Emails will be sent only from this account(which are approved)."),
- 'from_email' : fields.related('enforce_from_account', 'email_id',
- type='char', string='From',
- help='From Email (select mail account)',
- readonly=True),
+ string="Email Account",
+ help="Emails will be sent from this approved account."),
'def_to':fields.char(
'Recipient (To)',
size=250,
help="The default recipient of email."
"Placeholders can be used here."),
'def_cc':fields.char(
- 'Default CC',
+ 'CC',
size=250,
- help="The default CC for the email."
+ help="Carbon Copy address(es), comma-separated."
" Placeholders can be used here."),
'def_bcc':fields.char(
- 'Default BCC',
+ 'BCC',
size=250,
- help="The default BCC for the email."
+ help="Blind Carbon Copy address(es), comma-separated."
" Placeholders can be used here."),
+ '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."),
+ '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"),
'lang':fields.char(
'Language',
size=250,
@@ -184,6 +190,14 @@ class email_template(osv.osv):
'report_template':fields.many2one(
'ir.actions.report.xml',
'Report to send'),
+ 'attachment_ids': fields.many2many(
+ 'ir.attachment',
+ 'email_template_attachment_rel',
+ 'email_template_id',
+ 'attachment_id',
+ 'Attached Files',
+ help="You may attach existing files to this template, "
+ "so they will be added in all emails created from this template"),
'ref_ir_act_window':fields.many2one(
'ir.actions.act_window',
'Window Action',
@@ -430,7 +444,37 @@ class email_template(osv.osv):
result['sub_model_object_field'] = False
result['null_value'] = null_value
return {'value':result}
-
+
+ def _add_attachment(self, cursor, user, mailbox_id, name, data, filename, context=None):
+ """
+ Add an attachment to a given mailbox entry.
+
+ :param data: base64 encoded attachment data to store
+ """
+ attachment_obj = self.pool.get('ir.attachment')
+ attachment_data = {
+ 'name': (name or '') + _(' (Email Attachment)'),
+ 'datas': data,
+ 'datas_fname': filename,
+ 'description': name or _('No Description'),
+ 'res_model':'email_template.mailbox',
+ 'res_id': mailbox_id,
+ }
+ attachment_id = attachment_obj.create(cursor,
+ user,
+ attachment_data,
+ context)
+ if attachment_id:
+ self.pool.get('email_template.mailbox').write(
+ cursor,
+ user,
+ mailbox_id,
+ {
+ 'attachments_ids':[(4, attachment_id)],
+ 'mail_type':'multipart/mixed'
+ },
+ context)
+
def generate_attach_reports(self,
cursor,
user,
@@ -440,7 +484,7 @@ class email_template(osv.osv):
context=None):
"""
Generate report to be attached and attach it
- to the email
+ to the email, and add any directly attached files as well.
@param cursor: Database Cursor
@param user: ID of User
@@ -452,54 +496,34 @@ class email_template(osv.osv):
@param mail: Browse record of email object
@return: True
"""
- reportname = 'report.' + \
- self.pool.get('ir.actions.report.xml').read(
- cursor,
- user,
- template.report_template.id,
- ['report_name'],
- context)['report_name']
- service = netsvc.LocalService(reportname)
- data = {}
- data['model'] = template.model_int_name
- (result, format) = service.create(cursor,
- user,
- [record_id],
- data,
- context)
- attachment_obj = self.pool.get('ir.attachment')
-
- fname = tools.ustr(get_value(cursor, user, record_id,
- template.file_name, template, context)
- or 'Report')
- ext = '.' + format
- if not fname.endswith(ext):
- fname += ext
-
- new_att_vals = {
- 'name':mail.subject + ' (Email Attachment)',
- 'datas':base64.b64encode(result),
- 'datas_fname': fname,
- 'description':mail.subject or "No Description",
- 'res_model':'email_template.mailbox',
- 'res_id':mail.id
- }
- attachment_id = attachment_obj.create(cursor,
+ if template.report_template:
+ reportname = 'report.' + \
+ self.pool.get('ir.actions.report.xml').read(
+ cursor,
+ user,
+ template.report_template.id,
+ ['report_name'],
+ context)['report_name']
+ service = netsvc.LocalService(reportname)
+ data = {}
+ data['model'] = template.model_int_name
+ (result, format) = service.create(cursor,
user,
- new_att_vals,
- context)
- if attachment_id:
- self.pool.get('email_template.mailbox').write(
- cursor,
- user,
- mail.id,
- {
- 'attachments_ids':[
- [6, 0, [attachment_id]]
- ],
- 'mail_type':'multipart/mixed'
- },
- context)
+ [record_id],
+ data,
+ context)
+ fname = tools.ustr(get_value(cursor, user, record_id,
+ template.file_name, template, context)
+ or 'Report')
+ ext = '.' + format
+ if not fname.endswith(ext):
+ fname += ext
+ self._add_attachment(cursor, user, mail.id, mail.subject, base64.b64encode(result), fname, context)
+
+ if template.attachment_ids:
+ for attachment in template.attachment_ids:
+ self._add_attachment(cursor, user, mail.id, attachment.name, attachment.datas, attachment.datas_fname, context)
+
return True
def _generate_mailbox_item_from_template(self,
@@ -534,9 +558,9 @@ class email_template(osv.osv):
)
else:
from_account = {
- 'id':template.enforce_from_account.id,
- 'name':template.enforce_from_account.name,
- 'email_id':template.enforce_from_account.email_id
+ 'id':template.from_account.id,
+ 'name':template.from_account.name,
+ 'email_id':template.from_account.email_id
}
lang = get_value(cursor,
user,
@@ -548,9 +572,21 @@ class email_template(osv.osv):
ctx = context.copy()
ctx.update({'lang':lang})
template = self.browse(cursor, user, template.id, context=ctx)
+
+ # determine name of sender, either it is specified in email_id or we
+ # use the account name
+ email_id = from_account['email_id'].strip()
+ email_from = re.findall(r'([^ ,<@]+@[^> ,]+)', email_id)[0]
+ if email_from != email_id:
+ # we should keep it all, name is probably specified in the address
+ email_from = from_account['email_id']
+ else:
+ email_from = tools.ustr(from_account['name']) + "<" + tools.ustr('email_id') + ">",
+
+ # FIXME: should do this in a loop and rename template fields to the corresponding
+ # mailbox fields. (makes no sense to have different names I think.
mailbox_values = {
- 'email_from': tools.ustr(from_account['name']) + \
- "<" + tools.ustr(from_account['email_id']) + ">",
+ 'email_from': email_from,
'email_to':get_value(cursor,
user,
record_id,
@@ -569,6 +605,12 @@ class email_template(osv.osv):
template.def_bcc,
template,
context),
+ 'reply_to':get_value(cursor,
+ user,
+ record_id,
+ template.reply_to,
+ template,
+ context),
'subject':get_value(cursor,
user,
record_id,
@@ -591,8 +633,13 @@ class email_template(osv.osv):
#This is a mandatory field when automatic emails are sent
'state':'na',
'folder':'drafts',
- 'mail_type':'multipart/alternative'
+ 'mail_type':'multipart/alternative',
}
+
+ if template['track_campaign_item']:
+ # get appropriate message-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.")
#Use signatures if allowed
@@ -627,6 +674,7 @@ class email_template(osv.osv):
if not template:
raise Exception("The requested template could not be loaded")
result = True
+ mailbox_obj = self.pool.get('email_template.mailbox')
for record_id in record_ids:
mailbox_id = self._generate_mailbox_item_from_template(
cursor,
@@ -634,13 +682,13 @@ class email_template(osv.osv):
template,
record_id,
context)
- mail = self.pool.get('email_template.mailbox').browse(
- cursor,
- user,
- mailbox_id,
- context=context
- )
- if template.report_template:
+ mail = mailbox_obj.browse(
+ cursor,
+ user,
+ mailbox_id,
+ context=context
+ )
+ if template.report_template or template.attachment_ids:
self.generate_attach_reports(
cursor,
user,
@@ -649,6 +697,7 @@ class email_template(osv.osv):
mail,
context
)
+
self.pool.get('email_template.mailbox').write(
cursor,
user,
@@ -662,6 +711,10 @@ class email_template(osv.osv):
email_template()
+
+## FIXME: this class duplicates a lot of features of the email template send wizard,
+## one of the 2 should inherit from the other!
+
class email_template_preview(osv.osv_memory):
_name = "email_template.preview"
_description = "Email Template Preview"
@@ -674,10 +727,15 @@ class email_template_preview(osv.osv_memory):
if 'template_id' in context.keys():
ref_obj_id = self.pool.get('email.template').read(cr, uid, context['template_id'], ['object_name'], context)
ref_obj_name = self.pool.get('ir.model').read(cr, uid, ref_obj_id['object_name'][0], ['model'], context)['model']
- ref_obj_ids = self.pool.get(ref_obj_name).search(cr, uid, [], 0, 20, 'id desc', context=context)
- ref_obj_recs = self.pool.get(ref_obj_name).name_get(cr, uid, ref_obj_ids, context)
- return ref_obj_recs
-
+ model_obj = self.pool.get(ref_obj_name)
+ ref_obj_ids = model_obj.search(cr, uid, [], 0, 20, 'id desc', context=context)
+
+ # also add the default one if requested, otherwise it won't be available for selection:
+ default_id = context.get('default_rel_model_ref')
+ if default_id and default_id not in ref_obj_ids:
+ ref_obj_ids.insert(0, default_id)
+ return model_obj.name_get(cr, uid, ref_obj_ids, context)
+
def _default_model(self, cursor, user, context=None):
"""
Returns the default value for model field
@@ -701,6 +759,16 @@ class email_template_preview(osv.osv_memory):
'to':fields.char('To', size=250, readonly=True),
'cc':fields.char('CC', size=250, readonly=True),
'bcc':fields.char('BCC', size=250, readonly=True),
+ '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."),
+ '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."),
'subject':fields.char('Subject', size=200, readonly=True),
'body_text':fields.text('Body', readonly=True),
'body_html':fields.text('Body', readonly=True),
@@ -728,6 +796,11 @@ class email_template_preview(osv.osv_memory):
vals['to'] = get_value(cr, uid, rel_model_ref, template.def_to, template, context)
vals['cc'] = get_value(cr, uid, rel_model_ref, template.def_cc, template, context)
vals['bcc'] = get_value(cr, uid, rel_model_ref, template.def_bcc, template, context)
+ vals['reply_to'] = get_value(cr, uid, rel_model_ref, template.reply_to, template, context)
+ if template.message_id:
+ vals['message_id'] = get_value(cr, uid, rel_model_ref, template.message_id, template, context)
+ elif template.track_campaign_item:
+ vals['message_id'] = tools.misc.generate_tracking_message_id(rel_model_ref)
vals['subject'] = get_value(cr, uid, rel_model_ref, template.def_subject, template, context)
vals['body_text'] = get_value(cr, uid, rel_model_ref, template.def_body_text, template, context)
vals['body_html'] = get_value(cr, uid, rel_model_ref, template.def_body_html, template, context)
diff --git a/addons/email_template/email_template_account.py b/addons/email_template/email_template_account.py
index e2ea30126c2..b54d0fac4c5 100644
--- a/addons/email_template/email_template_account.py
+++ b/addons/email_template/email_template_account.py
@@ -2,26 +2,25 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# Copyright (C) 2004-2010 Tiny SPRL ().
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
#
# 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.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU 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 .
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
#
##############################################################################
from osv import osv, fields
-from html2text import html2text
import re
import smtplib
import base64
@@ -31,14 +30,40 @@ from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import decode_header, Header
from email.utils import formatdate
-import re
import netsvc
-import string
-import email
-import time, datetime
-import email_template_engines
+import datetime
from tools.translate import _
import tools
+import logging
+
+EMAIL_PATTERN = re.compile(r'([^()\[\] ,<:\\>@";]+@[^()\[\] ,<:\\>@";]+)') # See RFC822
+def extract_emails(emails_str):
+ """
+ Returns a list of email addresses recognized in a string, ignoring the rest of the string.
+ extract_emails('a@b.com,c@bcom, "John Doe" , e@b.com') -> ['a@b.com','c@bcom', 'd@b.com', 'e@b.com']"
+ """
+ return EMAIL_PATTERN.findall(emails_str)
+
+
+def extract_emails_from_dict(addresses={}):
+ """
+ Extracts email addresses from a dictionary with comma-separated address string values, handling
+ separately the To, CC, BCC and Reply-To addresses.
+
+ :param addresses: a dictionary of addresses in the form {'To': 'a@b.com,c@bcom; d@b.com;e@b.com' , 'CC': 'e@b.com;f@b.com', ... }
+ :return: a dictionary with a list of separate addresses for each header (To, CC, BCC), with an additional key 'all-recipients'
+ containing all addresses for the 'To', 'CC', 'BCC' entries.
+ """
+ result = {'all-recipients':[]}
+ keys = ['To', 'CC', 'BCC', 'Reply-To']
+ for each in keys:
+ emails = extract_emails(addresses.get(each, u''))
+ while u'' in emails:
+ emails.remove(u'')
+ result[each] = emails
+ if each != 'Reply-To':
+ result['all-recipients'].extend(emails)
+ return result
class email_template_account(osv.osv):
"""
@@ -86,9 +111,10 @@ class email_template_account(osv.osv):
'smtpssl':fields.boolean('SSL/TLS (only in python 2.6)',
states={'draft':[('readonly', False)]}, readonly=True),
'send_pref':fields.selection([
- ('html', 'HTML otherwise Text'),
- ('text', 'Text otherwise HTML'),
- ('both', 'Both HTML & Text')
+ ('html', 'HTML, otherwise Text'),
+ ('text', 'Text, otherwise HTML'),
+ ('alternative', 'Both HTML & Text (Alternative)'),
+ ('mixed', 'Both HTML & Text (Mixed)')
], 'Mail Format', required=True),
'company':fields.selection([
('yes', 'Yes'),
@@ -135,7 +161,10 @@ class email_template_account(osv.osv):
'unique (email_id)',
'Another setting already exists with this email ID !')
]
-
+
+ def name_get(self, cr, uid, ids, context=None):
+ return [(a["id"], "%s (%s)" % (a['email_id'], a['name'])) for a in self.read(cr, uid, ids, ['name', 'email_id'], context=context)]
+
def _constraint_unique(self, cursor, user, ids):
"""
This makes sure that you dont give personal
@@ -212,7 +241,7 @@ class email_template_account(osv.osv):
raise error
try:
if serv.has_extn('AUTH') or this_object.smtpuname or this_object.smtppass:
- serv.login(this_object.smtpuname, this_object.smtppass)
+ serv.login(str(this_object.smtpuname), str(this_object.smtppass))
except Exception, error:
raise error
return serv
@@ -265,34 +294,11 @@ class email_template_account(osv.osv):
return False
#**************************** MAIL SENDING FEATURES ***********************#
- def split_to_ids(self, ids_as_str):
- """
- Identifies email IDs separated by separators
- and returns a list
- TODO: Doc this
- "a@b.com,c@bcom; d@b.com;e@b.com->['a@b.com',...]"
- """
- email_sep_by_commas = ids_as_str \
- .replace('; ', ',') \
- .replace(';', ',') \
- .replace(', ', ',')
- return email_sep_by_commas.split(',')
+
+
+
- def get_ids_from_dict(self, addresses={}):
- """
- TODO: Doc this
- """
- result = {'all':[]}
- keys = ['To', 'CC', 'BCC']
- for each in keys:
- ids_as_list = self.split_to_ids(addresses.get(each, u''))
- while u'' in ids_as_list:
- ids_as_list.remove(u'')
- result[each] = ids_as_list
- result['all'].extend(ids_as_list)
- return result
-
- def send_mail(self, cr, uid, ids, addresses, subject='', body=None, payload=None, context=None):
+ def send_mail(self, cr, uid, ids, addresses, subject='', body=None, payload=None, message_id=None, context=None):
#TODO: Replace all this with a single email object
if body is None:
body = {}
@@ -306,18 +312,38 @@ class email_template_account(osv.osv):
serv = self.smtp_connection(cr, uid, id)
if serv:
try:
- msg = MIMEMultipart()
+ # Prepare multipart containers depending on data
+ text_subtype = (core_obj.send_pref == 'alternative') and 'alternative' or 'mixed'
+ # Need a multipart/mixed wrapper for attachments if content is alternative
+ if payload and text_subtype == 'alternative':
+ payload_part = MIMEMultipart(_subtype='mixed')
+ text_part = MIMEMultipart(_subtype=text_subtype)
+ payload_part.attach(text_part)
+ else:
+ # otherwise a single multipart/mixed will do the whole job
+ payload_part = text_part = MIMEMultipart(_subtype=text_subtype)
+
if subject:
- msg['Subject'] = subject
- sender_name = Header(core_obj.name, 'utf-8').encode()
- msg['From'] = sender_name + " <" + core_obj.email_id + ">"
- msg['Organization'] = tools.ustr(core_obj.user.company_id.name)
- msg['Date'] = formatdate()
- addresses_l = self.get_ids_from_dict(addresses)
+ payload_part['Subject'] = subject
+ from_email = core_obj.email_id
+ if '<' in from_email:
+ # We have a structured email address, keep it untouched
+ payload_part['From'] = Header(core_obj.email_id, 'utf-8').encode()
+ else:
+ # Plain email address, construct a structured one based on the name:
+ sender_name = Header(core_obj.name, 'utf-8').encode()
+ payload_part['From'] = sender_name + " <" + core_obj.email_id + ">"
+ payload_part['Organization'] = tools.ustr(core_obj.user.company_id.name)
+ payload_part['Date'] = formatdate()
+ addresses_l = extract_emails_from_dict(addresses)
if addresses_l['To']:
- msg['To'] = u','.join(addresses_l['To'])
+ payload_part['To'] = u','.join(addresses_l['To'])
if addresses_l['CC']:
- msg['CC'] = u','.join(addresses_l['CC'])
+ payload_part['CC'] = u','.join(addresses_l['CC'])
+ if addresses_l['Reply-To']:
+ payload_part['Reply-To'] = addresses_l['Reply-To'][0]
+ if message_id:
+ payload_part['Message-ID'] = message_id
if body.get('text', False):
temp_body_text = body.get('text', '')
l = len(temp_body_text.replace(' ', '').replace('\r', '').replace('\n', ''))
@@ -326,30 +352,32 @@ class email_template_account(osv.osv):
# Attach parts into message container.
# According to RFC 2046, the last part of a multipart message, in this case
# the HTML message, is best and preferred.
- if core_obj.send_pref == 'text' or core_obj.send_pref == 'both':
- body_text = body.get('text', u'No Mail Message')
+ if core_obj.send_pref in ('text', 'mixed', 'alternative'):
+ body_text = body.get('text', u'')
body_text = tools.ustr(body_text)
- msg.attach(MIMEText(body_text.encode("utf-8"), _charset='UTF-8'))
- if core_obj.send_pref == 'html' or core_obj.send_pref == 'both':
+ text_part.attach(MIMEText(body_text.encode("utf-8"), _charset='UTF-8'))
+ if core_obj.send_pref in ('html', 'mixed', 'alternative'):
html_body = body.get('html', u'')
if len(html_body) == 0 or html_body == u'':
- html_body = body.get('text', u'No Mail Message
').replace('\n', ' ').replace('\r', ' ')
+ html_body = body.get('text', u'<Empty Message>
').replace('\n', ' ').replace('\r', ' ')
html_body = tools.ustr(html_body)
- msg.attach(MIMEText(html_body.encode("utf-8"), _subtype='html', _charset='UTF-8'))
- #Now add attachments if any
- for file in payload.keys():
- part = MIMEBase('application', "octet-stream")
- part.set_payload(base64.decodestring(payload[file]))
- part.add_header('Content-Disposition', 'attachment; filename="%s"' % file)
- Encoders.encode_base64(part)
- msg.attach(part)
+ text_part.attach(MIMEText(html_body.encode("utf-8"), _subtype='html', _charset='UTF-8'))
+
+ #Now add attachments if any, wrapping into a container multipart/mixed if needed
+ if payload:
+ for file in payload:
+ part = MIMEBase('application', "octet-stream")
+ part.set_payload(base64.decodestring(payload[file]))
+ part.add_header('Content-Disposition', 'attachment; filename="%s"' % file)
+ Encoders.encode_base64(part)
+ payload_part.attach(part)
except Exception, error:
logger.notifyChannel(_("Email Template"), netsvc.LOG_ERROR, _("Mail from Account %s failed. Probable Reason:MIME Error\nDescription: %s") % (id, error))
return {'error_msg': "Server Send Error\nDescription: %s"%error}
try:
- serv.sendmail(msg['From'], addresses_l['all'], msg.as_string())
+ serv.sendmail(payload_part['From'], addresses_l['all-recipients'], payload_part.as_string())
except Exception, error:
- logger.notifyChannel(_("Email Template"), netsvc.LOG_ERROR, _("Mail from Account %s failed. Probable Reason:Server Send Error\nDescription: %s") % (id, error))
+ logging.getLogger('email_template').error("Mail from Account %s failed. Probable Reason: Server Send Error\n Description: %s", id, error, exc_info=True)
return {'error_msg': "Server Send Error\nDescription: %s"%error}
#The mail sending is complete
serv.close()
@@ -358,7 +386,7 @@ class email_template_account(osv.osv):
else:
logger.notifyChannel(_("Email Template"), netsvc.LOG_ERROR, _("Mail from Account %s failed. Probable Reason:Account not approved") % id)
return {'error_msg':"Mail from Account %s failed. Probable Reason:Account not approved"% id}
-
+
def extracttime(self, time_as_string):
"""
TODO: DOC THis
diff --git a/addons/email_template/email_template_account_view.xml b/addons/email_template/email_template_account_view.xml
index 6ef2d04e57f..544ad016136 100644
--- a/addons/email_template/email_template_account_view.xml
+++ b/addons/email_template/email_template_account_view.xml
@@ -2,8 +2,8 @@
-
-
+
+
@@ -96,9 +96,9 @@
-
-
+
+
diff --git a/addons/email_template/email_template_engines.py b/addons/email_template/email_template_engines.py
deleted file mode 100644
index 01811eb9b56..00000000000
--- a/addons/email_template/email_template_engines.py
+++ /dev/null
@@ -1,99 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# 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 .
-#
-##############################################################################
-
-# To change this template, choose Tools | Templates
-# and open the template in the editor.
-from osv import fields,osv
-import pooler
-import netsvc
-import re
-
-class email_template_engines(osv.osv):
- _name = "email_template.engines"
- _description = "Email Template Engine"
-
- def check(self):
- pass
-
- def strip_html(self,text):
- #Removes HTML, Have to check if still relevent
- if text:
- def fixup(m):
- text = m.group(0)
- if text[:1] == "<":
- return "" # ignore tags
- if text[:2] == "":
- try:
- if text[:3] == "":
- return unichr(int(text[3:-1], 16))
- else:
- return unichr(int(text[2:-1]))
- except ValueError:
- pass
- elif text[:1] == "&":
- import htmlentitydefs
- entity = htmlentitydefs.entitydefs.get(text[1:-1])
- if entity:
- if entity[:2] == "":
- try:
- return unichr(int(entity[2:-1]))
- except ValueError:
- pass
- else:
- return unicode(entity, "iso-8859-1")
- return text # leave as is
- return re.sub("(?s)<[^>]*>|?\w+;", fixup, text)
-
- def parsevalue(self,cr,uid,id,message,templateid,context):
- #id: ID of the template's model's record to be used
- #message: the complete text including placeholders
- #templateid: the template id of the template
- #context: TODO
- if message:
- logger = netsvc.Logger()
- def merge(match):
- template = self.pool.get("email.template").browse(cr,uid,templateid,context)
- obj_pool = self.pool.get(template.object_name.model)
- obj = obj_pool.browse(cr, uid, id, context)
- exp = str(match.group()[2:-2]).strip()
- exp_spl = exp.split('/')
- try:
- result = eval(exp_spl[0], {'object':obj,})
- except:
- result = "Rendering Error"
- try:
- if result in (None, False):
- if len(exp_spl)>1:
- return exp_spl[1]
- else:
- return 'Not Available'
- return str(result)
- except:
- return "Rendering Error"
- if message:
- com = re.compile('(\[\[.+?\]\])')
- retmessage = com.sub(merge, message)
- else:
- retmessage=""
- return retmessage
-
-email_template_engines()
diff --git a/addons/email_template/email_template_mailbox.py b/addons/email_template/email_template_mailbox.py
index 3348ab4ca2a..015d8ec297e 100644
--- a/addons/email_template/email_template_mailbox.py
+++ b/addons/email_template/email_template_mailbox.py
@@ -2,27 +2,26 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2009 Sharoon Thomas
-# Copyright (C) 2004-2010 Tiny SPRL ().
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
#
# 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.
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
+# GNU 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 .
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
#
##############################################################################
from osv import osv, fields
import time
-import email_template_engines
import netsvc
from tools.translate import _
import tools
@@ -75,10 +74,15 @@ class email_template_mailbox(osv.osv):
payload[attachment.datas_fname] = attachment.datas
result = account_obj.send_mail(cr, uid,
[values['account_id'][0]],
- {'To':values.get('email_to', u'') or u'', 'CC':values.get('email_cc', u'') or u'', 'BCC':values.get('email_bcc', u'') or u''},
+ {'To':values.get('email_to') or u'',
+ 'CC':values.get('email_cc') or u'',
+ 'BCC':values.get('email_bcc') or u'',
+ 'Reply-To':values.get('reply_to') or u''},
values['subject'] or u'',
- {'text':values.get('body_text', u'') or u'', 'html':values.get('body_html', u'') or u''},
- payload=payload, context=context)
+ {'text':values.get('body_text') or u'', 'html':values.get('body_html') or u''},
+ payload=payload,
+ 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)
@@ -88,7 +92,7 @@ class email_template_mailbox(osv.osv):
except Exception, error:
logger = netsvc.Logger()
- logger.notifyChannel(_("Power Email"), netsvc.LOG_ERROR, _("Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s") % (id, error))
+ logger.notifyChannel("email-template", netsvc.LOG_ERROR, _("Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s") % (id, error))
self.historise(cr, uid, [id], error, context)
self.write(cr, uid, id, {'state':'na'}, context)
return result
@@ -103,21 +107,27 @@ class email_template_mailbox(osv.osv):
'From',
size=64),
'email_to':fields.char(
- 'Recepient (To)',
+ 'Recipient (To)',
size=250,),
'email_cc':fields.char(
- ' CC',
+ 'CC',
size=250),
'email_bcc':fields.char(
- ' BCC',
+ 'BCC',
+ size=250),
+ 'reply_to':fields.char(
+ 'Reply-To',
+ size=250),
+ 'message_id':fields.char(
+ 'Message-ID',
size=250),
'subject':fields.char(
- ' Subject',
+ 'Subject',
size=200,),
'body_text':fields.text(
'Standard Body (Text)'),
'body_html':fields.text(
- 'Body (Text-Web Client Only)'),
+ 'Body (Rich Text Clients Only)'),
'attachments_ids':fields.many2many(
'ir.attachment',
'mail_attachments_rel',
diff --git a/addons/email_template/email_template_mailbox_view.xml b/addons/email_template/email_template_mailbox_view.xml
index a49fabbd523..018b1800ccc 100644
--- a/addons/email_template/email_template_mailbox_view.xml
+++ b/addons/email_template/email_template_mailbox_view.xml
@@ -8,14 +8,13 @@
form
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -27,13 +26,10 @@
-
-
+
-
@@ -46,6 +42,7 @@
+
@@ -83,7 +80,7 @@
search
-
+
diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml
index 3346c6c6162..79867a5bff3 100644
--- a/addons/email_template/email_template_view.xml
+++ b/addons/email_template/email_template_view.xml
@@ -16,7 +16,9 @@
-
+
+
+
@@ -58,17 +60,18 @@
-
+
+
-
+
@@ -116,10 +119,17 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -141,7 +151,7 @@
-
+
diff --git a/addons/email_template/html2text.py b/addons/email_template/html2text.py
index f8be00adf0f..af7848fee2d 100644
--- a/addons/email_template/html2text.py
+++ b/addons/email_template/html2text.py
@@ -9,7 +9,7 @@ __contributors__ = ["Martin 'Joey' Schulze", "Ricardo Reyes", "Kevin Jay North"]
# Support decoded entities with unifiable.
if not hasattr(__builtins__, 'True'): True, False = 1, 0
-import re, sys, urllib, htmlentitydefs, codecs, StringIO, types
+import re, sys, urllib, htmlentitydefs, codecs
import sgmllib
import urlparse
sgmllib.charref = re.compile('([xX]?[0-9a-fA-F]+)[^0-9a-fA-F]')
diff --git a/addons/email_template/i18n/email_template.pot b/addons/email_template/i18n/email_template.pot
new file mode 100644
index 00000000000..3a077c82d17
--- /dev/null
+++ b/addons/email_template/i18n/email_template.pot
@@ -0,0 +1,1182 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * email_template
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 05:34:08+0000\n"
+"PO-Revision-Date: 2010-08-20 05:34: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: email_template
+#: view:email_template.send.wizard:0
+msgid "Send mail Wizard"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Email Account Configuration"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Emails for multiple items saved in outbox."
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Email Data"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_to:0
+#: field:email_template.mailbox,email_to:0
+msgid "Recipient (To)"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Wizard Complete"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text & HTML with no attachments"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed on login. Probable Reason:Could not login to server\nError: %s"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,body_html:0
+#: field:email_template.preview,body_text:0
+#: field:email_template.send.wizard,body_html:0
+#: field:email_template.send.wizard,body_text:0
+msgid "Body"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Deletion of Record failed"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,company:0
+msgid "Select if this mail account does not belong to specific user but to the organization as a whole. eg: info@companydomain.com"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send now"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Not Applicable"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_account_all
+msgid "Email Accounts"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send all mails"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,server_ref:0
+msgid "Server Reference of mail"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "My Accounts"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Send Mail"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Approved"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,table_html:0
+msgid "HTML code"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,file_name:0
+msgid "File name pattern can be specified with placeholders.eg. 2009_SO003.pdf"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,from_account:0
+msgid "Email Account"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Email sending failed for one or more objects."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,lang:0
+msgid "The default language for the email. Placeholders can be used here. eg. ${object.partner_id.lang}"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpport:0
+msgid "Enter port number,eg:SMTP-587 "
+msgstr ""
+
+#. module: email_template
+#: field:email.template,reply_to:0
+#: field:email_template.mailbox,reply_to:0
+#: field:email_template.preview,reply_to:0
+#: field:email_template.send.wizard,reply_to:0
+msgid "Reply-To"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Delete Action"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Approve Account"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_all
+msgid "E-MAIL Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,rel_model_ref:0
+#: field:email_template.send.wizard,rel_model_ref:0
+msgid "Referred Document"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,full_success:0
+msgid "Complete Success"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Mixed)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "OK"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Alternative)"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Mako templates not installed"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,requested:0
+msgid "No of requested Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Download Full Mail"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_to:0
+msgid "The default recipient of email.Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Mailboxes"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,attachment_ids:0
+msgid "Attached Files"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpssl:0
+msgid "SSL/TLS (only in python 2.6)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,email_id:0
+msgid "From Email"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_account_tree_all
+msgid "Accounts"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,track_campaign_item:0
+msgid "Track campaign items"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Tip: Multiple emails are sent in the same language (the first one is proposed). We suggest you send emails in groups according to language."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,reply_to:0
+#: help:email_template.preview,reply_to:0
+#: help:email_template.send.wizard,reply_to:0
+msgid "The address recipients should reply to, if different from the From address. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,subject:0
+#: field:email_template.preview,subject:0
+#: field:email_template.send.wizard,subject:0
+msgid "Subject"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Reason: %s"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,email_id:0
+msgid "eg: yourname@yourdomain.com "
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,email_from:0
+msgid "From"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,ref_template:0
+#: field:email_template.send.wizard,ref_template:0
+msgid "Template"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_body_text:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,body_text:0
+msgid "Standard Body (Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Sending"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Insert Simple Field"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Html)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Send/Receive"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_mailbox_all_main2
+msgid "MailBox"
+msgstr ""
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.wizard_email_template_preview
+msgid "Template Preview"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_body_html:0
+msgid "Body (Text-Web Client Only)"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,ref_ir_value:0
+msgid "Wizard Button"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Out going connection test failed"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s successfully Sent."
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Standard Body"
+msgstr ""
+
+#. module: email_template
+#: selection:email.template,template_language:0
+msgid "Mako Templates"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_body_html:0
+#: help:email.template,def_body_text:0
+msgid "The text version of the mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid " (Email Attachment)"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,folder:0
+msgid "Sent Items"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Test Outgoing Connection"
+msgstr ""
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.action_email_template_mailbox
+msgid "Mailbox"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,attachment_ids:0
+msgid "You may attach existing files to this template, so they will be added in all emails created from this template"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,account_id:0
+msgid "User account"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,signature:0
+msgid "Attach my signature to mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: view:email.template:0
+#, python-format
+msgid "Report"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,model_object_field:0
+msgid "Select the field from the model you want to use.\n"
+"If it is a relationship field you will be able to choose the nested values in the box below\n"
+"(Note:If there are no values make sure you have selected the correct model)"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Advanced"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Expression Builder"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "HTML Body"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Suspend Account"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,null_value:0
+msgid "This Value is used if the field is empty"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Preview Template"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpserver:0
+msgid "Server"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,copyvalue:0
+msgid "Copy and paste the value in the location you want to use a system value."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,sub_model_object_field:0
+msgid "When you choose relationship fields this field will specify the sub value you can use."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,sub_object:0
+msgid "When a relation field is used this field will show you the type of field you have selected"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,lang:0
+msgid "Language"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Raw HTML)"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,use_sign:0
+msgid "Signature"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,sub_object:0
+msgid "Sub-model"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (Plain Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Text)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,date_mail:0
+msgid "Rec/Sent Date"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,report_template:0
+msgid "Report to send"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Server Information"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,generated:0
+msgid "No of generated Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Mail Details"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP SERVER or PORT not specified"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Note: This is Raw HTML."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Multiple Mail Wizard Step 1"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,user:0
+msgid "Related User"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,body_html:0
+msgid "Body (Rich Text Clients Only)"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "Yes"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,ref_ir_act_window:0
+msgid "Window Action"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Datetime Extraction failed.Date:%s \\n"
+" \tError:%s"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "SMTP Server"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "HTML, otherwise Text"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Drafts"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "No"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,mail_type:0
+msgid "Mail Contents"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "The template name must be unique !"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_bcc:0
+#: field:email_template.mailbox,email_bcc:0
+#: field:email_template.preview,bcc:0
+#: field:email_template.send.wizard,bcc:0
+msgid "BCC"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Server Send Error\nDescription: %s"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Draft"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,model_int_name:0
+msgid "Model Internal Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,message_id:0
+#: field:email_template.mailbox,message_id:0
+#: field:email_template.preview,message_id:0
+#: field:email_template.send.wizard,message_id:0
+msgid "Message-ID"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.mailbox,server_ref:0
+msgid "Applicable for inward items only"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "After clicking send all mails, mails will be sent to outbox and cleared in next Send/Recieve"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,state:0
+#: field:email_template.mailbox,state:0
+#: field:email_template.send.wizard,state:0
+msgid "Status"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Outgoing"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Initiated"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,use_sign:0
+msgid "the signature from the User details will be appended to the mail"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,from:0
+msgid "From Account"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Intermixed content"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Request Re-activation"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_tree_all
+msgid "Email Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpuname:0
+msgid "User Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,sub_model_object_field:0
+msgid "Sub Field"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,user:0
+msgid "User"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,allowed_groups:0
+msgid "Only users from these groups will be allowed to send mails from this Template"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Outbox"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Save in Drafts"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_subject:0
+msgid "The default subject of email. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtptls:0
+msgid "TLS"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Add here all attachments of the current document you want to include in the e-mail."
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_send_wizard
+msgid "This is the wizard for sending mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/email_template_account.py:0
+#: code:addons/email_template/email_template_mailbox.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: model:ir.ui.menu,name:email_template.menu_email_template
+#, python-format
+msgid "Email Template"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_personal_mails
+msgid "Personal Mails"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Error sending mail: %s\" % str(e)))\n"
+" \n"
+" def send_all_mail(self, cr, uid, ids=None, context=None):\n"
+" if ids is None:\n"
+" ids = []\n"
+" if context is None:\n"
+" context = {}\n"
+" filters = [('folder', '=', 'outbox"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,file_name:0
+msgid "File Name Pattern"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Send Mail (%s)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,report:0
+msgid "Report File Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,copyvalue:0
+msgid "Expression"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,history:0
+msgid "History"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Django templates not installed"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,attachments_ids:0
+#: view:email_template.send.wizard:0
+#: field:email_template.send.wizard,attachment_ids:0
+msgid "Attachments"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,to:0
+#: field:email_template.send.wizard,to:0
+msgid "To"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpport:0
+msgid "SMTP Port "
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Text, otherwise HTML"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Copy of template "
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Discard Mail"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template
+msgid "Email Templates for Models"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Close"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Body (HTML-Web Client Only)"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "%s (Email Attachment)"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,allowed_groups:0
+msgid "Allowed User Groups"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,model_object_field:0
+msgid "Field"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "User Information"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+#: selection:email_template.account,state:0
+msgid "Suspended"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,folder:0
+msgid "Folder"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Trash"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_mailbox
+msgid "Email Mailbox"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpuname:0
+msgid "Specify the username if your SMTP server requires authentication, otherwise leave it empty."
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Missing mail account"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP Test Connection Was Successful"
+msgstr ""
+
+#. module: email_template
+#: model:ir.module.module,shortdesc:email_template.module_meta_information
+msgid "Email Template for OpenERP"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,name:0
+msgid "Description"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Create Action"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Account not approved"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,null_value:0
+msgid "Null Value"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,template_language:0
+msgid "Templating Language"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_cc:0
+#: field:email_template.mailbox,email_cc:0
+#: field:email_template.preview,cc:0
+#: field:email_template.send.wizard,cc:0
+msgid "CC"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Sent"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtppass:0
+msgid "Password"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,message_id:0
+#: help:email_template.preview,message_id:0
+#: help:email_template.send.wizard,message_id:0
+msgid "The Message-ID header value, if you need tospecify it, for example to automatically recognize the replies later. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_configuration
+msgid "Emails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,report:0
+msgid "Report Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,name:0
+msgid "Name"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_preview
+msgid "Email Template Preview"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Email Preview"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Existing files"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Personal Accounts"
+msgstr ""
+
+#. module: email_template
+#: model:ir.module.module,description:email_template.module_meta_information
+msgid "\n"
+" Email Template is extraction of Power Email basically just to send the emails.\n"
+" "
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (HTML)"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,table_html:0
+msgid "Copy this html code to your HTML message body for displaying the info in your mail."
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_account
+msgid "email_template.account"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,object_name:0
+#: field:email_template.preview,rel_model:0
+#: field:email_template.send.wizard,rel_model:0
+msgid "Model"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Core connection for the given ID does not exist"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,company:0
+msgid "Corporate"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpserver:0
+msgid "Enter name of outgoing server, eg:smtp.gmail.com "
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_company_mails
+msgid "Company Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Addresses"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,from_account:0
+msgid "Emails will be sent from this approved account."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_subject:0
+msgid "Default Subject"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_bcc:0
+msgid "Blind Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:MIME Error\nDescription: %s"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,send_pref:0
+msgid "Mail Format"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Actions"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Company Accounts"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "email-template"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_cc:0
+msgid "Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Simple Mail Wizard Step 1"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Has Attachments"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,track_campaign_item:0
+msgid "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"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No Description"
+msgstr ""
+
diff --git a/addons/email_template/i18n/en_US.po b/addons/email_template/i18n/en_US.po
new file mode 100644
index 00000000000..00e682ea025
--- /dev/null
+++ b/addons/email_template/i18n/en_US.po
@@ -0,0 +1,1194 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * email_template
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:07:25+0000\n"
+"PO-Revision-Date: 2010-08-20 06:07:25+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: email_template
+#: view:email_template.send.wizard:0
+msgid "Send mail Wizard"
+msgstr "Send mail Wizard"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Email Account Configuration"
+msgstr "Email Account Configuration"
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Emails for multiple items saved in outbox."
+msgstr "Emails for multiple items saved in outbox."
+
+#. module: email_template
+#: view:email.template:0
+msgid "Email Data"
+msgstr "Email Data"
+
+#. module: email_template
+#: field:email.template,def_to:0
+#: field:email_template.mailbox,email_to:0
+msgid "Recipient (To)"
+msgstr "Recipient (To)"
+
+#. module: email_template
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Wizard Complete"
+msgstr "Wizard Complete"
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text & HTML with no attachments"
+msgstr "Plain Text & HTML with no attachments"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed on login. Probable Reason:Could not login to server\nError: %s"
+msgstr "Mail from Account %s failed on login. Probable Reason:Could not login to server\nError: %s"
+
+#. module: email_template
+#: field:email_template.preview,body_html:0
+#: field:email_template.preview,body_text:0
+#: field:email_template.send.wizard,body_html:0
+#: field:email_template.send.wizard,body_text:0
+msgid "Body"
+msgstr "Body"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Deletion of Record failed"
+msgstr "Deletion of Record failed"
+
+#. module: email_template
+#: help:email_template.account,company:0
+msgid "Select if this mail account does not belong to specific user but to the organization as a whole. eg: info@companydomain.com"
+msgstr "Select if this mail account does not belong to specific user but to the organization as a whole. eg: info@companydomain.com"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send now"
+msgstr "Send now"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Not Applicable"
+msgstr "Not Applicable"
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_account_all
+msgid "Email Accounts"
+msgstr "Email Accounts"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send all mails"
+msgstr "Send all mails"
+
+#. module: email_template
+#: field:email_template.mailbox,server_ref:0
+msgid "Server Reference of mail"
+msgstr "Server Reference of mail"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "My Accounts"
+msgstr "My Accounts"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Send Mail"
+msgstr "Send Mail"
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Approved"
+msgstr "Approved"
+
+#. module: email_template
+#: field:email.template,table_html:0
+msgid "HTML code"
+msgstr "HTML code"
+
+#. module: email_template
+#: help:email.template,file_name:0
+msgid "File name pattern can be specified with placeholders.eg. 2009_SO003.pdf"
+msgstr "File name pattern can be specified with placeholders.eg. 2009_SO003.pdf"
+
+#. module: email_template
+#: field:email.template,from_account:0
+msgid "Email Account"
+msgstr "Email Account"
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Email sending failed for one or more objects."
+msgstr "Email sending failed for one or more objects."
+
+#. module: email_template
+#: help:email.template,lang:0
+msgid "The default language for the email. Placeholders can be used here. eg. ${object.partner_id.lang}"
+msgstr "The default language for the email. Placeholders can be used here. eg. ${object.partner_id.lang}"
+
+#. module: email_template
+#: help:email_template.account,smtpport:0
+msgid "Enter port number,eg:SMTP-587 "
+msgstr "Enter port number,eg:SMTP-587 "
+
+#. module: email_template
+#: field:email.template,reply_to:0
+#: field:email_template.mailbox,reply_to:0
+#: field:email_template.preview,reply_to:0
+#: field:email_template.send.wizard,reply_to:0
+msgid "Reply-To"
+msgstr "Reply-To"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Delete Action"
+msgstr "Delete Action"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Approve Account"
+msgstr "Approve Account"
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_all
+msgid "E-MAIL Templates"
+msgstr "E-MAIL Templates"
+
+#. module: email_template
+#: field:email_template.preview,rel_model_ref:0
+#: field:email_template.send.wizard,rel_model_ref:0
+msgid "Referred Document"
+msgstr "Referred Document"
+
+#. module: email_template
+#: field:email_template.send.wizard,full_success:0
+msgid "Complete Success"
+msgstr "Complete Success"
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Mixed)"
+msgstr "Both HTML & Text (Mixed)"
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "OK"
+msgstr "OK"
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Alternative)"
+msgstr "Both HTML & Text (Alternative)"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Mako templates not installed"
+msgstr "Mako templates not installed"
+
+#. module: email_template
+#: field:email_template.send.wizard,requested:0
+msgid "No of requested Mails"
+msgstr "No of requested Mails"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Download Full Mail"
+msgstr "Download Full Mail"
+
+#. module: email_template
+#: help:email.template,def_to:0
+msgid "The default recipient of email.Placeholders can be used here."
+msgstr "The default recipient of email.Placeholders can be used here."
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Mailboxes"
+msgstr "Mailboxes"
+
+#. module: email_template
+#: field:email.template,attachment_ids:0
+msgid "Attached Files"
+msgstr "Attached Files"
+
+#. module: email_template
+#: field:email_template.account,smtpssl:0
+msgid "SSL/TLS (only in python 2.6)"
+msgstr "SSL/TLS (only in python 2.6)"
+
+#. module: email_template
+#: field:email_template.account,email_id:0
+msgid "From Email"
+msgstr "From Email"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Warning"
+msgstr "Warning"
+
+#. module: email_template
+#: view:email_template.account:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_account_tree_all
+msgid "Accounts"
+msgstr "Accounts"
+
+#. module: email_template
+#: field:email.template,track_campaign_item:0
+msgid "Track campaign items"
+msgstr "Track campaign items"
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Text)"
+msgstr "Body(Text)"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Tip: Multiple emails are sent in the same language (the first one is proposed). We suggest you send emails in groups according to language."
+msgstr "Tip: Multiple emails are sent in the same language (the first one is proposed). We suggest you send emails in groups according to language."
+
+#. module: email_template
+#: help:email.template,reply_to:0
+#: help:email_template.preview,reply_to:0
+#: help:email_template.send.wizard,reply_to:0
+msgid "The address recipients should reply to, if different from the From address. Placeholders can be used here."
+msgstr "The address recipients should reply to, if different from the From address. Placeholders can be used here."
+
+#. module: email_template
+#: field:email_template.mailbox,subject:0
+#: field:email_template.preview,subject:0
+#: field:email_template.send.wizard,subject:0
+msgid "Subject"
+msgstr "Subject"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Reason: %s"
+msgstr "Reason: %s"
+
+#. module: email_template
+#: help:email_template.account,email_id:0
+msgid "eg: yourname@yourdomain.com "
+msgstr "eg: yourname@yourdomain.com "
+
+#. module: email_template
+#: field:email_template.mailbox,email_from:0
+msgid "From"
+msgstr "From"
+
+#. module: email_template
+#: field:email_template.preview,ref_template:0
+#: field:email_template.send.wizard,ref_template:0
+msgid "Template"
+msgstr "Template"
+
+#. module: email_template
+#: field:email.template,def_body_text:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,body_text:0
+msgid "Standard Body (Text)"
+msgstr "Standard Body (Text)"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Sending"
+msgstr "Sending"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Insert Simple Field"
+msgstr "Insert Simple Field"
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Html)"
+msgstr "Body(Html)"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Send/Receive"
+msgstr "Send/Receive"
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_mailbox_all_main2
+msgid "MailBox"
+msgstr "MailBox"
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.wizard_email_template_preview
+msgid "Template Preview"
+msgstr "Template Preview"
+
+#. module: email_template
+#: field:email.template,def_body_html:0
+msgid "Body (Text-Web Client Only)"
+msgstr "Body (Text-Web Client Only)"
+
+#. module: email_template
+#: field:email.template,ref_ir_value:0
+msgid "Wizard Button"
+msgstr "Wizard Button"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Out going connection test failed"
+msgstr "Out going connection test failed"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s successfully Sent."
+msgstr "Mail from Account %s successfully Sent."
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Standard Body"
+msgstr "Standard Body"
+
+#. module: email_template
+#: selection:email.template,template_language:0
+msgid "Mako Templates"
+msgstr "Mako Templates"
+
+#. module: email_template
+#: help:email.template,def_body_html:0
+#: help:email.template,def_body_text:0
+msgid "The text version of the mail"
+msgstr "The text version of the mail"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid " (Email Attachment)"
+msgstr " (Email Attachment)"
+
+#. module: email_template
+#: selection:email_template.mailbox,folder:0
+msgid "Sent Items"
+msgstr "Sent Items"
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s"
+msgstr "Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Test Outgoing Connection"
+msgstr "Test Outgoing Connection"
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.action_email_template_mailbox
+msgid "Mailbox"
+msgstr "Mailbox"
+
+#. module: email_template
+#: help:email.template,attachment_ids:0
+msgid "You may attach existing files to this template, so they will be added in all emails created from this template"
+msgstr "You may attach existing files to this template, so they will be added in all emails created from this template"
+
+#. module: email_template
+#: field:email_template.mailbox,account_id:0
+msgid "User account"
+msgstr "User account"
+
+#. module: email_template
+#: field:email_template.send.wizard,signature:0
+msgid "Attach my signature to mail"
+msgstr "Attach my signature to mail"
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: view:email.template:0
+#, python-format
+msgid "Report"
+msgstr "Report"
+
+#. module: email_template
+#: help:email.template,model_object_field:0
+msgid "Select the field from the model you want to use.\n"
+"If it is a relationship field you will be able to choose the nested values in the box below\n"
+"(Note:If there are no values make sure you have selected the correct model)"
+msgstr "Select the field from the model you want to use.\n"
+"If it is a relationship field you will be able to choose the nested values in the box below\n"
+"(Note:If there are no values make sure you have selected the correct model)"
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Advanced"
+msgstr "Advanced"
+
+#. module: email_template
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr "Invalid arguments"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Expression Builder"
+msgstr "Expression Builder"
+
+#. module: email_template
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "HTML Body"
+msgstr "HTML Body"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Suspend Account"
+msgstr "Suspend Account"
+
+#. module: email_template
+#: help:email.template,null_value:0
+msgid "This Value is used if the field is empty"
+msgstr "This Value is used if the field is empty"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Preview Template"
+msgstr "Preview Template"
+
+#. module: email_template
+#: field:email_template.account,smtpserver:0
+msgid "Server"
+msgstr "Server"
+
+#. module: email_template
+#: help:email.template,copyvalue:0
+msgid "Copy and paste the value in the location you want to use a system value."
+msgstr "Copy and paste the value in the location you want to use a system value."
+
+#. module: email_template
+#: help:email.template,sub_model_object_field:0
+msgid "When you choose relationship fields this field will specify the sub value you can use."
+msgstr "When you choose relationship fields this field will specify the sub value you can use."
+
+#. module: email_template
+#: help:email.template,sub_object:0
+msgid "When a relation field is used this field will show you the type of field you have selected"
+msgstr "When a relation field is used this field will show you the type of field you have selected"
+
+#. module: email_template
+#: field:email.template,lang:0
+msgid "Language"
+msgstr "Language"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Raw HTML)"
+msgstr "Body (Raw HTML)"
+
+#. module: email_template
+#: field:email.template,use_sign:0
+msgid "Signature"
+msgstr "Signature"
+
+#. module: email_template
+#: field:email.template,sub_object:0
+msgid "Sub-model"
+msgstr "Sub-model"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (Plain Text)"
+msgstr "Body (Plain Text)"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Text)"
+msgstr "Body (Text)"
+
+#. module: email_template
+#: field:email_template.mailbox,date_mail:0
+msgid "Rec/Sent Date"
+msgstr "Rec/Sent Date"
+
+#. module: email_template
+#: field:email.template,report_template:0
+msgid "Report to send"
+msgstr "Report to send"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Server Information"
+msgstr "Server Information"
+
+#. module: email_template
+#: field:email_template.send.wizard,generated:0
+msgid "No of generated Mails"
+msgstr "No of generated Mails"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Mail Details"
+msgstr "Mail Details"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP SERVER or PORT not specified"
+msgstr "SMTP SERVER or PORT not specified"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Note: This is Raw HTML."
+msgstr "Note: This is Raw HTML."
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Multiple Mail Wizard Step 1"
+msgstr "Multiple Mail Wizard Step 1"
+
+#. module: email_template
+#: field:email_template.account,user:0
+msgid "Related User"
+msgstr "Related User"
+
+#. module: email_template
+#: field:email_template.mailbox,body_html:0
+msgid "Body (Rich Text Clients Only)"
+msgstr "Body (Rich Text Clients Only)"
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "Yes"
+msgstr "Yes"
+
+#. module: email_template
+#: field:email.template,ref_ir_act_window:0
+msgid "Window Action"
+msgstr "Window Action"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Datetime Extraction failed.Date:%s \\n"
+" \tError:%s"
+msgstr "Datetime Extraction failed.Date:%s \\n"
+" \tError:%s"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "SMTP Server"
+msgstr "SMTP Server"
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "HTML, otherwise Text"
+msgstr "HTML, otherwise Text"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Drafts"
+msgstr "Drafts"
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "No"
+msgstr "No"
+
+#. module: email_template
+#: field:email_template.mailbox,mail_type:0
+msgid "Mail Contents"
+msgstr "Mail Contents"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "The template name must be unique !"
+msgstr "The template name must be unique !"
+
+#. module: email_template
+#: field:email.template,def_bcc:0
+#: field:email_template.mailbox,email_bcc:0
+#: field:email_template.preview,bcc:0
+#: field:email_template.send.wizard,bcc:0
+msgid "BCC"
+msgstr "BCC"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Server Send Error\nDescription: %s"
+msgstr "Mail from Account %s failed. Probable Reason:Server Send Error\nDescription: %s"
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text"
+msgstr "Plain Text"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: email_template
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: email_template
+#: field:email.template,model_int_name:0
+msgid "Model Internal Name"
+msgstr "Model Internal Name"
+
+#. module: email_template
+#: field:email.template,message_id:0
+#: field:email_template.mailbox,message_id:0
+#: field:email_template.preview,message_id:0
+#: field:email_template.send.wizard,message_id:0
+msgid "Message-ID"
+msgstr "Message-ID"
+
+#. module: email_template
+#: help:email_template.mailbox,server_ref:0
+msgid "Applicable for inward items only"
+msgstr "Applicable for inward items only"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "After clicking send all mails, mails will be sent to outbox and cleared in next Send/Recieve"
+msgstr "After clicking send all mails, mails will be sent to outbox and cleared in next Send/Recieve"
+
+#. module: email_template
+#: field:email_template.account,state:0
+#: field:email_template.mailbox,state:0
+#: field:email_template.send.wizard,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Outgoing"
+msgstr "Outgoing"
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Initiated"
+msgstr "Initiated"
+
+#. module: email_template
+#: help:email.template,use_sign:0
+msgid "the signature from the User details will be appended to the mail"
+msgstr "the signature from the User details will be appended to the mail"
+
+#. module: email_template
+#: field:email_template.send.wizard,from:0
+msgid "From Account"
+msgstr "From Account"
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Intermixed content"
+msgstr "Intermixed content"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Request Re-activation"
+msgstr "Request Re-activation"
+
+#. module: email_template
+#: view:email.template:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_tree_all
+msgid "Email Templates"
+msgstr "Email Templates"
+
+#. module: email_template
+#: field:email_template.account,smtpuname:0
+msgid "User Name"
+msgstr "User Name"
+
+#. module: email_template
+#: field:email.template,sub_model_object_field:0
+msgid "Sub Field"
+msgstr "Sub Field"
+
+#. module: email_template
+#: field:email_template.mailbox,user:0
+msgid "User"
+msgstr "User"
+
+#. module: email_template
+#: help:email.template,allowed_groups:0
+msgid "Only users from these groups will be allowed to send mails from this Template"
+msgstr "Only users from these groups will be allowed to send mails from this Template"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Outbox"
+msgstr "Outbox"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Save in Drafts"
+msgstr "Save in Drafts"
+
+#. module: email_template
+#: help:email.template,def_subject:0
+msgid "The default subject of email. Placeholders can be used here."
+msgstr "The default subject of email. Placeholders can be used here."
+
+#. module: email_template
+#: field:email_template.account,smtptls:0
+msgid "TLS"
+msgstr "TLS"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Add here all attachments of the current document you want to include in the e-mail."
+msgstr "Add here all attachments of the current document you want to include in the e-mail."
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_send_wizard
+msgid "This is the wizard for sending mail"
+msgstr "This is the wizard for sending mail"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/email_template_account.py:0
+#: code:addons/email_template/email_template_mailbox.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: model:ir.ui.menu,name:email_template.menu_email_template
+#, python-format
+msgid "Email Template"
+msgstr "Email Template"
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_personal_mails
+msgid "Personal Mails"
+msgstr "Personal Mails"
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Error sending mail: %s\" % str(e)))\n"
+" \n"
+" def send_all_mail(self, cr, uid, ids=None, context=None):\n"
+" if ids is None:\n"
+" ids = []\n"
+" if context is None:\n"
+" context = {}\n"
+" filters = [('folder', '=', 'outbox"
+msgstr "Error sending mail: %s\" % str(e)))\n"
+" \n"
+" def send_all_mail(self, cr, uid, ids=None, context=None):\n"
+" if ids is None:\n"
+" ids = []\n"
+" if context is None:\n"
+" context = {}\n"
+" filters = [('folder', '=', 'outbox"
+
+#. module: email_template
+#: field:email.template,file_name:0
+msgid "File Name Pattern"
+msgstr "File Name Pattern"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Send Mail (%s)"
+msgstr "Send Mail (%s)"
+
+#. module: email_template
+#: field:email_template.send.wizard,report:0
+msgid "Report File Name"
+msgstr "Report File Name"
+
+#. module: email_template
+#: field:email.template,copyvalue:0
+msgid "Expression"
+msgstr "Expression"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,history:0
+msgid "History"
+msgstr "History"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Django templates not installed"
+msgstr "Django templates not installed"
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,attachments_ids:0
+#: view:email_template.send.wizard:0
+#: field:email_template.send.wizard,attachment_ids:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: email_template
+#: field:email_template.preview,to:0
+#: field:email_template.send.wizard,to:0
+msgid "To"
+msgstr "To"
+
+#. module: email_template
+#: field:email_template.account,smtpport:0
+msgid "SMTP Port "
+msgstr "SMTP Port "
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Text, otherwise HTML"
+msgstr "Text, otherwise HTML"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Copy of template "
+msgstr "Copy of template "
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Discard Mail"
+msgstr "Discard Mail"
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template
+msgid "Email Templates for Models"
+msgstr "Email Templates for Models"
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Close"
+msgstr "Close"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Body (HTML-Web Client Only)"
+msgstr "Body (HTML-Web Client Only)"
+
+#. module: email_template
+#: 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: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "%s (Email Attachment)"
+msgstr "%s (Email Attachment)"
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."
+msgstr "No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."
+
+#. module: email_template
+#: field:email.template,allowed_groups:0
+msgid "Allowed User Groups"
+msgstr "Allowed User Groups"
+
+#. module: email_template
+#: field:email.template,model_object_field:0
+msgid "Field"
+msgstr "Field"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "User Information"
+msgstr "User Information"
+
+#. module: email_template
+#: view:email_template.account:0
+#: selection:email_template.account,state:0
+msgid "Suspended"
+msgstr "Suspended"
+
+#. module: email_template
+#: field:email_template.mailbox,folder:0
+msgid "Folder"
+msgstr "Folder"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Trash"
+msgstr "Trash"
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_mailbox
+msgid "Email Mailbox"
+msgstr "Email Mailbox"
+
+#. module: email_template
+#: help:email_template.account,smtpuname:0
+msgid "Specify the username if your SMTP server requires authentication, otherwise leave it empty."
+msgstr "Specify the username if your SMTP server requires authentication, otherwise leave it empty."
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Missing mail account"
+msgstr "Missing mail account"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP Test Connection Was Successful"
+msgstr "SMTP Test Connection Was Successful"
+
+#. module: email_template
+#: model:ir.module.module,shortdesc:email_template.module_meta_information
+msgid "Email Template for OpenERP"
+msgstr "Email Template for OpenERP"
+
+#. module: email_template
+#: field:email_template.account,name:0
+msgid "Description"
+msgstr "Description"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Create Action"
+msgstr "Create Action"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Account not approved"
+msgstr "Mail from Account %s failed. Probable Reason:Account not approved"
+
+#. module: email_template
+#: field:email.template,null_value:0
+msgid "Null Value"
+msgstr "Null Value"
+
+#. module: email_template
+#: field:email.template,template_language:0
+msgid "Templating Language"
+msgstr "Templating Language"
+
+#. module: email_template
+#: field:email.template,def_cc:0
+#: field:email_template.mailbox,email_cc:0
+#: field:email_template.preview,cc:0
+#: field:email_template.send.wizard,cc:0
+msgid "CC"
+msgstr "CC"
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Sent"
+msgstr "Sent"
+
+#. module: email_template
+#: field:email_template.account,smtppass:0
+msgid "Password"
+msgstr "Password"
+
+#. module: email_template
+#: help:email.template,message_id:0
+#: help:email_template.preview,message_id:0
+#: help:email_template.send.wizard,message_id:0
+msgid "The Message-ID header value, if you need tospecify it, for example to automatically recognize the replies later. Placeholders can be used here."
+msgstr "The Message-ID header value, if you need tospecify it, for example to automatically recognize the replies later. Placeholders can be used here."
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_configuration
+msgid "Emails"
+msgstr "Emails"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Templates"
+msgstr "Templates"
+
+#. module: email_template
+#: field:email_template.preview,report:0
+msgid "Report Name"
+msgstr "Report Name"
+
+#. module: email_template
+#: field:email.template,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_preview
+msgid "Email Template Preview"
+msgstr "Email Template Preview"
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Email Preview"
+msgstr "Email Preview"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Existing files"
+msgstr "Existing files"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Personal Accounts"
+msgstr "Personal Accounts"
+
+#. module: email_template
+#: model:ir.module.module,description:email_template.module_meta_information
+msgid "\n"
+" Email Template is extraction of Power Email basically just to send the emails.\n"
+" "
+msgstr "\n"
+" Email Template is extraction of Power Email basically just to send the emails.\n"
+" "
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (HTML)"
+msgstr "Body (HTML)"
+
+#. module: email_template
+#: help:email.template,table_html:0
+msgid "Copy this html code to your HTML message body for displaying the info in your mail."
+msgstr "Copy this html code to your HTML message body for displaying the info in your mail."
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_account
+msgid "email_template.account"
+msgstr "email_template.account"
+
+#. module: email_template
+#: field:email.template,object_name:0
+#: field:email_template.preview,rel_model:0
+#: field:email_template.send.wizard,rel_model:0
+msgid "Model"
+msgstr "Model"
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Core connection for the given ID does not exist"
+msgstr "Core connection for the given ID does not exist"
+
+#. module: email_template
+#: field:email_template.account,company:0
+msgid "Corporate"
+msgstr "Corporate"
+
+#. module: email_template
+#: help:email_template.account,smtpserver:0
+msgid "Enter name of outgoing server, eg:smtp.gmail.com "
+msgstr "Enter name of outgoing server, eg:smtp.gmail.com "
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_company_mails
+msgid "Company Mails"
+msgstr "Company Mails"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Addresses"
+msgstr "Addresses"
+
+#. module: email_template
+#: help:email.template,from_account:0
+msgid "Emails will be sent from this approved account."
+msgstr "Emails will be sent from this approved account."
+
+#. module: email_template
+#: field:email.template,def_subject:0
+msgid "Default Subject"
+msgstr "Default Subject"
+
+#. module: email_template
+#: help:email.template,def_bcc:0
+msgid "Blind Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr "Blind Carbon Copy address(es), comma-separated. Placeholders can be used here."
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:MIME Error\nDescription: %s"
+msgstr "Mail from Account %s failed. Probable Reason:MIME Error\nDescription: %s"
+
+#. module: email_template
+#: field:email_template.account,send_pref:0
+msgid "Mail Format"
+msgstr "Mail Format"
+
+#. module: email_template
+#: view:email.template:0
+msgid "Actions"
+msgstr "Actions"
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Company Accounts"
+msgstr "Company Accounts"
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "email-template"
+msgstr "email-template"
+
+#. module: email_template
+#: help:email.template,def_cc:0
+msgid "Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr "Carbon Copy address(es), comma-separated. Placeholders can be used here."
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Simple Mail Wizard Step 1"
+msgstr "Simple Mail Wizard Step 1"
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Has Attachments"
+msgstr "Has Attachments"
+
+#. module: email_template
+#: help:email.template,track_campaign_item:0
+msgid "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"
+msgstr "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"
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No Description"
+msgstr "No Description"
+
diff --git a/addons/email_template/i18n/fr.po b/addons/email_template/i18n/fr.po
new file mode 100644
index 00000000000..3a077c82d17
--- /dev/null
+++ b/addons/email_template/i18n/fr.po
@@ -0,0 +1,1182 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * email_template
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 05:34:08+0000\n"
+"PO-Revision-Date: 2010-08-20 05:34: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: email_template
+#: view:email_template.send.wizard:0
+msgid "Send mail Wizard"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Email Account Configuration"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Emails for multiple items saved in outbox."
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Email Data"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_to:0
+#: field:email_template.mailbox,email_to:0
+msgid "Recipient (To)"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Wizard Complete"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text & HTML with no attachments"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed on login. Probable Reason:Could not login to server\nError: %s"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,body_html:0
+#: field:email_template.preview,body_text:0
+#: field:email_template.send.wizard,body_html:0
+#: field:email_template.send.wizard,body_text:0
+msgid "Body"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Deletion of Record failed"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,company:0
+msgid "Select if this mail account does not belong to specific user but to the organization as a whole. eg: info@companydomain.com"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send now"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Not Applicable"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_account_all
+msgid "Email Accounts"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Send all mails"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,server_ref:0
+msgid "Server Reference of mail"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "My Accounts"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Send Mail"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Approved"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,table_html:0
+msgid "HTML code"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,file_name:0
+msgid "File name pattern can be specified with placeholders.eg. 2009_SO003.pdf"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,from_account:0
+msgid "Email Account"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Email sending failed for one or more objects."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,lang:0
+msgid "The default language for the email. Placeholders can be used here. eg. ${object.partner_id.lang}"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpport:0
+msgid "Enter port number,eg:SMTP-587 "
+msgstr ""
+
+#. module: email_template
+#: field:email.template,reply_to:0
+#: field:email_template.mailbox,reply_to:0
+#: field:email_template.preview,reply_to:0
+#: field:email_template.send.wizard,reply_to:0
+msgid "Reply-To"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Delete Action"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Approve Account"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_all
+msgid "E-MAIL Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,rel_model_ref:0
+#: field:email_template.send.wizard,rel_model_ref:0
+msgid "Referred Document"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,full_success:0
+msgid "Complete Success"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Mixed)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "OK"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Both HTML & Text (Alternative)"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Mako templates not installed"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,requested:0
+msgid "No of requested Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Download Full Mail"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_to:0
+msgid "The default recipient of email.Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Mailboxes"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,attachment_ids:0
+msgid "Attached Files"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpssl:0
+msgid "SSL/TLS (only in python 2.6)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,email_id:0
+msgid "From Email"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_account_tree_all
+msgid "Accounts"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,track_campaign_item:0
+msgid "Track campaign items"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Tip: Multiple emails are sent in the same language (the first one is proposed). We suggest you send emails in groups according to language."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,reply_to:0
+#: help:email_template.preview,reply_to:0
+#: help:email_template.send.wizard,reply_to:0
+msgid "The address recipients should reply to, if different from the From address. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,subject:0
+#: field:email_template.preview,subject:0
+#: field:email_template.send.wizard,subject:0
+msgid "Subject"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Reason: %s"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,email_id:0
+msgid "eg: yourname@yourdomain.com "
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,email_from:0
+msgid "From"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,ref_template:0
+#: field:email_template.send.wizard,ref_template:0
+msgid "Template"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_body_text:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,body_text:0
+msgid "Standard Body (Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,state:0
+msgid "Sending"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Insert Simple Field"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Body(Html)"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Send/Receive"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_mailbox_all_main2
+msgid "MailBox"
+msgstr ""
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.wizard_email_template_preview
+msgid "Template Preview"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_body_html:0
+msgid "Body (Text-Web Client Only)"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,ref_ir_value:0
+msgid "Wizard Button"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Out going connection test failed"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s successfully Sent."
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Standard Body"
+msgstr ""
+
+#. module: email_template
+#: selection:email.template,template_language:0
+msgid "Mako Templates"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_body_html:0
+#: help:email.template,def_body_text:0
+msgid "The text version of the mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid " (Email Attachment)"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,folder:0
+msgid "Sent Items"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Sending of Mail %s failed. Probable Reason:Could not login to server\nError: %s"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Test Outgoing Connection"
+msgstr ""
+
+#. module: email_template
+#: model:ir.actions.act_window,name:email_template.action_email_template_mailbox
+msgid "Mailbox"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,attachment_ids:0
+msgid "You may attach existing files to this template, so they will be added in all emails created from this template"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,account_id:0
+msgid "User account"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,signature:0
+msgid "Attach my signature to mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: view:email.template:0
+#, python-format
+msgid "Report"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,model_object_field:0
+msgid "Select the field from the model you want to use.\n"
+"If it is a relationship field you will be able to choose the nested values in the box below\n"
+"(Note:If there are no values make sure you have selected the correct model)"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+msgid "Advanced"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Expression Builder"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "HTML Body"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Suspend Account"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,null_value:0
+msgid "This Value is used if the field is empty"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Preview Template"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpserver:0
+msgid "Server"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,copyvalue:0
+msgid "Copy and paste the value in the location you want to use a system value."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,sub_model_object_field:0
+msgid "When you choose relationship fields this field will specify the sub value you can use."
+msgstr ""
+
+#. module: email_template
+#: help:email.template,sub_object:0
+msgid "When a relation field is used this field will show you the type of field you have selected"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,lang:0
+msgid "Language"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Raw HTML)"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,use_sign:0
+msgid "Signature"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,sub_object:0
+msgid "Sub-model"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (Plain Text)"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Body (Text)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,date_mail:0
+msgid "Rec/Sent Date"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,report_template:0
+msgid "Report to send"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Server Information"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,generated:0
+msgid "No of generated Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Mail Details"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP SERVER or PORT not specified"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Note: This is Raw HTML."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Multiple Mail Wizard Step 1"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,user:0
+msgid "Related User"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,body_html:0
+msgid "Body (Rich Text Clients Only)"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "Yes"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,ref_ir_act_window:0
+msgid "Window Action"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Datetime Extraction failed.Date:%s \\n"
+" \tError:%s"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "SMTP Server"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "HTML, otherwise Text"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Drafts"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,company:0
+msgid "No"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,mail_type:0
+msgid "Mail Contents"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "The template name must be unique !"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_bcc:0
+#: field:email_template.mailbox,email_bcc:0
+#: field:email_template.preview,bcc:0
+#: field:email_template.send.wizard,bcc:0
+msgid "BCC"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Server Send Error\nDescription: %s"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Plain Text"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Draft"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,model_int_name:0
+msgid "Model Internal Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,message_id:0
+#: field:email_template.mailbox,message_id:0
+#: field:email_template.preview,message_id:0
+#: field:email_template.send.wizard,message_id:0
+msgid "Message-ID"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.mailbox,server_ref:0
+msgid "Applicable for inward items only"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "After clicking send all mails, mails will be sent to outbox and cleared in next Send/Recieve"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,state:0
+#: field:email_template.mailbox,state:0
+#: field:email_template.send.wizard,state:0
+msgid "Status"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Outgoing"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,state:0
+msgid "Initiated"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,use_sign:0
+msgid "the signature from the User details will be appended to the mail"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,from:0
+msgid "From Account"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Intermixed content"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Request Re-activation"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_tree_all
+msgid "Email Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpuname:0
+msgid "User Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,sub_model_object_field:0
+msgid "Sub Field"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,user:0
+msgid "User"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,allowed_groups:0
+msgid "Only users from these groups will be allowed to send mails from this Template"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Outbox"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Save in Drafts"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_subject:0
+msgid "The default subject of email. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtptls:0
+msgid "TLS"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Add here all attachments of the current document you want to include in the e-mail."
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_send_wizard
+msgid "This is the wizard for sending mail"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/email_template_account.py:0
+#: code:addons/email_template/email_template_mailbox.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#: model:ir.ui.menu,name:email_template.menu_email_template
+#, python-format
+msgid "Email Template"
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_personal_mails
+msgid "Personal Mails"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_mailbox.py:0
+#, python-format
+msgid "Error sending mail: %s\" % str(e)))\n"
+" \n"
+" def send_all_mail(self, cr, uid, ids=None, context=None):\n"
+" if ids is None:\n"
+" ids = []\n"
+" if context is None:\n"
+" context = {}\n"
+" filters = [('folder', '=', 'outbox"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,file_name:0
+msgid "File Name Pattern"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Send Mail (%s)"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.send.wizard,report:0
+msgid "Report File Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,copyvalue:0
+msgid "Expression"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,history:0
+msgid "History"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Django templates not installed"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+#: view:email_template.mailbox:0
+#: field:email_template.mailbox,attachments_ids:0
+#: view:email_template.send.wizard:0
+#: field:email_template.send.wizard,attachment_ids:0
+msgid "Attachments"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,to:0
+#: field:email_template.send.wizard,to:0
+msgid "To"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtpport:0
+msgid "SMTP Port "
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.account,send_pref:0
+msgid "Text, otherwise HTML"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#, python-format
+msgid "Copy of template "
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Discard Mail"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template
+msgid "Email Templates for Models"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Close"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Body (HTML-Web Client Only)"
+msgstr ""
+
+#. module: email_template
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "%s (Email Attachment)"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,allowed_groups:0
+msgid "Allowed User Groups"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,model_object_field:0
+msgid "Field"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "User Information"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+#: selection:email_template.account,state:0
+msgid "Suspended"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.mailbox,folder:0
+msgid "Folder"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+#: selection:email_template.mailbox,folder:0
+msgid "Trash"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_mailbox
+msgid "Email Mailbox"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpuname:0
+msgid "Specify the username if your SMTP server requires authentication, otherwise leave it empty."
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "Missing mail account"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "SMTP Test Connection Was Successful"
+msgstr ""
+
+#. module: email_template
+#: model:ir.module.module,shortdesc:email_template.module_meta_information
+msgid "Email Template for OpenERP"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,name:0
+msgid "Description"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Create Action"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:Account not approved"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,null_value:0
+msgid "Null Value"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,template_language:0
+msgid "Templating Language"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_cc:0
+#: field:email_template.mailbox,email_cc:0
+#: field:email_template.preview,cc:0
+#: field:email_template.send.wizard,cc:0
+msgid "CC"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.mailbox:0
+msgid "Sent"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,smtppass:0
+msgid "Password"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,message_id:0
+#: help:email_template.preview,message_id:0
+#: help:email_template.send.wizard,message_id:0
+msgid "The Message-ID header value, if you need tospecify it, for example to automatically recognize the replies later. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_configuration
+msgid "Emails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Templates"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.preview,report:0
+msgid "Report Name"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,name:0
+msgid "Name"
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_preview
+msgid "Email Template Preview"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.preview:0
+msgid "Email Preview"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Existing files"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Personal Accounts"
+msgstr ""
+
+#. module: email_template
+#: model:ir.module.module,description:email_template.module_meta_information
+msgid "\n"
+" Email Template is extraction of Power Email basically just to send the emails.\n"
+" "
+msgstr ""
+
+#. module: email_template
+#: view:email_template.send.wizard:0
+msgid "Body (HTML)"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,table_html:0
+msgid "Copy this html code to your HTML message body for displaying the info in your mail."
+msgstr ""
+
+#. module: email_template
+#: model:ir.model,name:email_template.model_email_template_account
+msgid "email_template.account"
+msgstr ""
+
+#. module: email_template
+#: field:email.template,object_name:0
+#: field:email_template.preview,rel_model:0
+#: field:email_template.send.wizard,rel_model:0
+msgid "Model"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Core connection for the given ID does not exist"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,company:0
+msgid "Corporate"
+msgstr ""
+
+#. module: email_template
+#: help:email_template.account,smtpserver:0
+msgid "Enter name of outgoing server, eg:smtp.gmail.com "
+msgstr ""
+
+#. module: email_template
+#: model:ir.ui.menu,name:email_template.menu_email_template_company_mails
+msgid "Company Mails"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Addresses"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,from_account:0
+msgid "Emails will be sent from this approved account."
+msgstr ""
+
+#. module: email_template
+#: field:email.template,def_subject:0
+msgid "Default Subject"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_bcc:0
+msgid "Blind Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template_account.py:0
+#, python-format
+msgid "Mail from Account %s failed. Probable Reason:MIME Error\nDescription: %s"
+msgstr ""
+
+#. module: email_template
+#: field:email_template.account,send_pref:0
+msgid "Mail Format"
+msgstr ""
+
+#. module: email_template
+#: view:email.template:0
+msgid "Actions"
+msgstr ""
+
+#. module: email_template
+#: view:email_template.account:0
+msgid "Company Accounts"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "email-template"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,def_cc:0
+msgid "Carbon Copy address(es), comma-separated. Placeholders can be used here."
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.send.wizard,state:0
+msgid "Simple Mail Wizard Step 1"
+msgstr ""
+
+#. module: email_template
+#: selection:email_template.mailbox,mail_type:0
+msgid "Has Attachments"
+msgstr ""
+
+#. module: email_template
+#: help:email.template,track_campaign_item:0
+msgid "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"
+msgstr ""
+
+#. module: email_template
+#: code:addons/email_template/email_template.py:0
+#: code:addons/email_template/wizard/email_template_send_wizard.py:0
+#, python-format
+msgid "No Description"
+msgstr ""
+
diff --git a/addons/email_template/security/ir.model.access.csv b/addons/email_template/security/ir.model.access.csv
index ef5297f52bc..fd5cf2d0f09 100644
--- a/addons/email_template/security/ir.model.access.csv
+++ b/addons/email_template/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_email_template_engines","email_template.engines","model_email_template_engines","base.res_groups_email_template_admin",1,1,1,1
"access_email_template_account","email_template.account","model_email_template_account","base.res_groups_email_template_admin",1,0,0,0
"access_email_template","email.template","model_email_template","base.res_groups_email_template_admin",1,0,0,0
"access_email_template_mailbox","email_template.mailbox","model_email_template_mailbox","base.res_groups_email_template_admin",1,1,1,1
diff --git a/addons/email_template/wizard/__init__.py b/addons/email_template/wizard/__init__.py
index ea6fcfbcd86..eb7cd23f704 100755
--- a/addons/email_template/wizard/__init__.py
+++ b/addons/email_template/wizard/__init__.py
@@ -1 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
import email_template_send_wizard
diff --git a/addons/email_template/wizard/email_template_send_wizard.py b/addons/email_template/wizard/email_template_send_wizard.py
index 4b1aba3a2aa..73cf5af6ede 100755
--- a/addons/email_template/wizard/email_template_send_wizard.py
+++ b/addons/email_template/wizard/email_template_send_wizard.py
@@ -1,13 +1,38 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2009 Sharoon Thomas
+# Copyright (C) 2004-2010 OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
from osv import osv, fields
from mako.template import Template
from mako import exceptions
import netsvc
import base64
-import time
from tools.translate import _
import tools
from email_template.email_template import get_value
+
+## FIXME: this wizard duplicates a lot of features of the email template preview,
+## one of the 2 should inherit from the other!
+
class email_template_send_wizard(osv.osv_memory):
_name = 'email_template.send.wizard'
_description = 'This is the wizard for sending mail'
@@ -23,16 +48,16 @@ class email_template_send_wizard(osv.osv_memory):
logger = netsvc.Logger()
- if template.enforce_from_account:
- return [(template.enforce_from_account.id, '%s (%s)' % (template.enforce_from_account.name, template.enforce_from_account.email_id))]
+ if template.from_account:
+ return [(template.from_account.id, '%s (%s)' % (template.from_account.name, template.from_account.email_id))]
else:
account_id = self.pool.get('email_template.account').search(cr,uid,[('company','=','no'),('user','=',uid)], context=context)
if account_id:
account = self.pool.get('email_template.account').browse(cr,uid,account_id, context)
return [(r.id,r.name + " (" + r.email_id + ")") for r in account]
else:
- logger.notifyChannel(_("Power Email"), netsvc.LOG_ERROR, _("No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal power email account."))
- raise osv.except_osv(_("Power Email"),_("No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal power email account."))
+ logger.notifyChannel(_("email-template"), netsvc.LOG_ERROR, _("No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."))
+ raise osv.except_osv(_("Missing mail account"),_("No personal email accounts are configured for you. \nEither ask admin to enforce an account for this template or get yourself a personal email account."))
def get_value(self, cursor, user, template, message, context=None, id=None):
"""Gets the value of the message parsed with the content of object id (or the first 'src_rec_ids' if id is not given)"""
@@ -91,6 +116,16 @@ class email_template_send_wizard(osv.osv_memory):
'to':fields.char('To',size=250,required=True),
'cc':fields.char('CC',size=250,),
'bcc':fields.char('BCC',size=250,),
+ '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."),
+ '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."),
'subject':fields.char('Subject',size=200),
'body_text':fields.text('Body',),
'body_html':fields.text('Body',),
@@ -103,6 +138,7 @@ class email_template_send_wizard(osv.osv_memory):
'attachment_ids': fields.many2many('ir.attachment','send_wizard_attachment_rel', 'wizard_id', 'attachment_id', 'Attachments'),
}
+ #FIXME: probably better by overriding default_get directly
_defaults = {
'state': lambda self,cr,uid,ctx: len(ctx['src_rec_ids']) > 1 and 'multi' or 'single',
'rel_model': lambda self,cr,uid,ctx: self.pool.get('ir.model').search(cr,uid,[('model','=',ctx['src_model'])],context=ctx)[0],
@@ -116,8 +152,11 @@ class email_template_send_wizard(osv.osv_memory):
'report': lambda self,cr,uid,ctx: self._get_template_value(cr, uid, 'file_name', ctx),
'signature': lambda self,cr,uid,ctx: self._get_template(cr, uid, ctx).use_sign,
'ref_template':lambda self,cr,uid,ctx: self._get_template(cr, uid, ctx).id,
+ 'reply_to': lambda self,cr,uid,ctx: self._get_template_value(cr, uid, 'reply_to', ctx),
+ 'reply_to': lambda self,cr,uid,ctx: self._get_template_value(cr, uid, 'reply_to', ctx),
'requested':lambda self,cr,uid,ctx: len(ctx['src_rec_ids']),
- 'full_success': lambda *a: False
+ 'full_success': False,
+ 'attachment_ids': [],
}
def fields_get(self, cr, uid, fields=None, context=None, write_access=True):
@@ -153,13 +192,13 @@ class email_template_send_wizard(osv.osv_memory):
mail_ids = self.save_to_mailbox(cr, uid, ids, context)
if mail_ids:
self.pool.get('email_template.mailbox').write(cr, uid, mail_ids, {'folder':'outbox'}, context)
- logger.notifyChannel(_("Power Email"), netsvc.LOG_INFO, _("Emails for multiple items saved in outbox."))
+ logger.notifyChannel("email-template", netsvc.LOG_INFO, _("Emails for multiple items saved in outbox."))
self.write(cr, uid, ids, {
'generated':len(mail_ids),
'state':'done'
}, context)
else:
- raise osv.except_osv(_("Power Email"),_("Email sending failed for one or more objects."))
+ raise osv.except_osv(_("Email Template"),_("Email sending failed for one or more objects."))
return True
def save_to_mailbox(self, cr, uid, ids, context=None):
diff --git a/addons/email_template/wizard/email_template_send_wizard_view.xml b/addons/email_template/wizard/email_template_send_wizard_view.xml
index 5f2f1641e31..80cce83dbfd 100755
--- a/addons/email_template/wizard/email_template_send_wizard_view.xml
+++ b/addons/email_template/wizard/email_template_send_wizard_view.xml
@@ -31,8 +31,7 @@
-
+
diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py
index 0d8bd245db1..fdf64388a19 100644
--- a/addons/event/__openerp__.py
+++ b/addons/event/__openerp__.py
@@ -24,7 +24,7 @@
'name': 'Event',
'version': '0.1',
'category': 'Generic Modules/Association',
- 'description': """Organization and management of events.
+ 'description': """Oraganization and management of Event.
This module allow you
* to manage your events and their registrations
diff --git a/addons/event/board_association_view.xml b/addons/event/board_association_view.xml
index 57b57ec30fb..6b223b2c4d0 100644
--- a/addons/event/board_association_view.xml
+++ b/addons/event/board_association_view.xml
@@ -2,17 +2,6 @@
-
Registration Event report
@@ -91,6 +80,7 @@
sequence="1"
id="menu_board_associations_manager"
icon="terp-graph"/>
+
diff --git a/addons/event/event.py b/addons/event/event.py
index bfc21544061..7a6e904f6e3 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -129,7 +129,7 @@ class event_event(osv.osv):
'target': 'new',
'context': context,
'nodestroy': True
- }
+ }
return res
@@ -336,7 +336,7 @@ class event_registration(osv.osv):
_defaults = {
'nb_register': 1,
'tobe_invoiced': True,
- 'state': lambda *a: 'draft',
+ 'state': lambda *a: 'draft',
'active': lambda *a: 1,
'user_id': lambda self, cr, uid, ctx: uid,
}
@@ -526,7 +526,7 @@ class event_registration(osv.osv):
registrations = self.browse(cr, uid, ids)
self.history(cr, uid, registrations, _('Cancel'))
self.write(cr, uid, ids, {'state': 'cancel'})
- return True
+ return True
def mail_user(self, cr, uid, ids, confirm=False, context=None):
"""
@@ -543,7 +543,7 @@ class event_registration(osv.osv):
email_to = regestration.email_from
if regestration.email_cc:
email_cc += [regestration.email_cc]
- if not (email_to and email_cc):
+ if not (email_to or email_cc):
continue
subject = ""
body = ""
@@ -617,10 +617,10 @@ class event_registration(osv.osv):
event_obj = self.pool.get('event.event')
prod_obj = self.pool.get('product.product')
- res_obj = self.pool.get('res.partner')
+ res_obj = self.pool.get('res.partner')
data_event = event_obj.browse(cr, uid, event_id)
- res = {'value': {'unit_price': False, 'event_product': False, 'user_id': False,
+ res = {'value': {'unit_price': False, 'event_product': False, 'user_id': False,
'date': data_event.date_begin, 'date_deadline': data_event.date_end, 'description': data_event.note, 'name': data_event.name,
'section_id': data_event.section_id and data_event.section_id.id or False,
}}
diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml
index 4c57157ff71..e82da17e0f0 100644
--- a/addons/event/event_view.xml
+++ b/addons/event/event_view.xml
@@ -1,8 +1,6 @@
-
@@ -35,8 +33,8 @@
event.type
form
-
-
+
+
@@ -56,7 +54,7 @@
-
+
@@ -151,7 +149,7 @@
-
+
@@ -330,12 +328,12 @@
-
+
-
+
@@ -359,7 +357,7 @@
-
+
diff --git a/addons/event/i18n/de.po b/addons/event/i18n/de.po
index dd7bc3c3987..904e9421267 100644
--- a/addons/event/i18n/de.po
+++ b/addons/event/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 06:13+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:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: event
@@ -264,7 +264,9 @@ msgstr "Bestätige trotzdem"
#. module: event
#: 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: Die Verkaufseinheit sollte in einer anderen Kategorie sein als die "
+"Mengeneinheit"
#. module: event
#: view:event.event:0
@@ -344,8 +346,8 @@ msgstr "Veranstaltungen nach Anmeldungen"
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: event
#: wizard_field:event.reg_make_invoice,init,inv_created:0
diff --git a/addons/event/i18n/it.po b/addons/event/i18n/it.po
index 3a26f691fa9..42f49a10911 100644
--- a/addons/event/i18n/it.po
+++ b/addons/event/i18n/it.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 06:14+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-18 10:04+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:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: event
@@ -130,6 +130,20 @@ msgid ""
"event or per event category in :\n"
" Events / Reporting\n"
msgstr ""
+"Organizzazione e gestione degli eventi.\n"
+"\n"
+" Questo modulo ti permette\n"
+" * di gestire i tuoi eventi e le loro registrazioni\n"
+" * di usare le e-mail per confermare automaticamente e inviare "
+"l'attestazione per ogni registrazione ad un evento\n"
+" * ...\n"
+"\n"
+" Da notare che:\n"
+" - Puoi definire nuovi tipi di eventi in\n"
+" Eventi / Configurazione / Tipi di eventi\n"
+" - Puoi accedere a dei report predefiniti circa il numero di "
+"registrazioni per eventi, o per categoria di eventi in:\n"
+" Eventi / Reporting\n"
#. module: event
#: view:event.registration:0
@@ -247,7 +261,7 @@ msgstr "Configurazione"
#. module: event
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "XML non valido per Visualizzazione Architettura!"
+msgstr "XML non valido per visualizzare l'Achitettura!"
#. module: event
#: wizard_button:event.confirm_registration,split,confirm:0
@@ -510,7 +524,7 @@ msgstr "Prezzo Unitario"
#. module: event
#: model:crm.case.section,name:event.event_2_crm_case_section
msgid "Conference on ERP Buisness"
-msgstr ""
+msgstr "Conferenza su Affari con ERP"
#. module: event
#: field:event.registration,badge_partner:0
@@ -626,7 +640,7 @@ msgstr "Lista Registrazioni dei Partner"
#. module: event
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr "Errore: codice EAN non valido"
+msgstr "Errore:.Codice EAN non valido"
#. module: event
#: view:event.event:0
diff --git a/addons/event/report/report_event_registration_view.xml b/addons/event/report/report_event_registration_view.xml
index d62332af156..8212c9070a4 100644
--- a/addons/event/report/report_event_registration_view.xml
+++ b/addons/event/report/report_event_registration_view.xml
@@ -38,9 +38,9 @@
-
-
-
+
+
+
.search
report.event.registration
@@ -60,7 +60,7 @@
separator="1"
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Tasks during last 7 days"/>
-
+
-
+
@@ -87,7 +87,6 @@
-
@@ -108,7 +107,7 @@
{"search_default_user":1,"search_default_month":1,'group_by_no_leaf':1,'group_by':[]}
-
+
tree
@@ -123,9 +122,8 @@
-
-
+
-
+
diff --git a/addons/event/wizard/event_make_invoice.py b/addons/event/wizard/event_make_invoice.py
index 9d2fbe7db50..8540c267ddb 100644
--- a/addons/event/wizard/event_make_invoice.py
+++ b/addons/event/wizard/event_make_invoice.py
@@ -31,7 +31,6 @@ class event_make_invoice(osv.osv_memory):
'grouped': fields.boolean('Group the invoices'),
'invoice_date':fields.date('Invoice Date'),
-# 'invoice_ids': fields.char('Invoice Ids', size=128), # Improve me
}
def view_init(self, cr, uid, fields, context=None):
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 947434052ae..e9dc2b95767 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -38,36 +38,36 @@ class email_server(osv.osv):
_description = "POP/IMAP Server"
_columns = {
- 'name':fields.char('Name', size=256, required=True, readonly=False),
- 'active':fields.boolean('Active', required=False),
+ 'name':fields.char('Name', size=256, required=True, readonly=False),
+ 'active':fields.boolean('Active', required=False),
'state':fields.selection([
- ('draft', 'Not Confirmed'),
- ('wating', 'Waiting for Verification'),
- ('done', 'Confirmed'),
- ], 'State', select=True, readonly=True),
- 'server' : fields.char('Server', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
- 'port' : fields.integer('Port', required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ ('draft', 'Not Confirmed'),
+ ('wating', 'Waiting for Verification'),
+ ('done', 'Confirmed'),
+ ], 'State', select=True, readonly=True),
+ 'server' : fields.char('Server', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'port' : fields.integer('Port', required=True, readonly=True, states={'draft':[('readonly', False)]}),
'type':fields.selection([
- ('pop', 'POP Server'),
- ('imap', 'IMAP Server'),
- ], 'Server Type', select=True, readonly=False),
- 'is_ssl':fields.boolean('SSL ?', required=False),
- 'attach':fields.boolean('Add Attachments ?', required=False),
- 'date': fields.date('Date', readonly=True, states={'draft':[('readonly', False)]}),
- 'user' : fields.char('User Name', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
- 'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}),
- 'note': fields.text('Description'),
- 'action_id':fields.many2one('ir.actions.server', 'Reply Email', required=False, domain="[('state','=','email')]"),
- 'object_id': fields.many2one('ir.model', "Model", required=True),
- 'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Priority between 0 to 10, select define the order of Processing"),
- 'user_id':fields.many2one('res.users', 'User', required=False),
+ ('pop', 'POP Server'),
+ ('imap', 'IMAP Server'),
+ ], 'Server Type', select=True, readonly=False),
+ 'is_ssl':fields.boolean('SSL ?', required=False),
+ 'attach':fields.boolean('Add Attachments ?', required=False),
+ 'date': fields.date('Date', readonly=True, states={'draft':[('readonly', False)]}),
+ 'user' : fields.char('User Name', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly', False)]}),
+ 'note': fields.text('Description'),
+ 'action_id':fields.many2one('ir.actions.server', 'Reply Email', required=False, domain="[('state','=','email')]"),
+ 'object_id': fields.many2one('ir.model', "Model", required=True),
+ 'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Priority between 0 to 10, select define the order of Processing"),
+ 'user_id':fields.many2one('res.users', 'User', required=False),
}
_defaults = {
- 'state': lambda *a: "draft",
- 'active': lambda *a: True,
- 'priority': lambda *a: 5,
- 'date': lambda *a: time.strftime('%Y-%m-%d'),
- 'user_id': lambda self, cr, uid, ctx: uid,
+ 'state': lambda *a: "draft",
+ 'active': lambda *a: True,
+ 'priority': lambda *a: 5,
+ 'date': lambda *a: time.strftime('%Y-%m-%d'),
+ 'user_id': lambda self, cr, uid, ctx: uid,
}
def check_duplicate(self, cr, uid, ids):
@@ -98,8 +98,6 @@ class email_server(osv.osv):
def button_fetch_mail(self, cr, uid, ids, context={}):
self.fetch_mail(cr, uid, ids)
-# sendmail_thread = threading.Thread(target=self.fetch_mail, args=(cr, uid, ids))
-# sendmail_thread.start()
return True
def _fetch_mails(self, cr, uid, ids=False, context={}):
@@ -125,7 +123,7 @@ class email_server(osv.osv):
imap_server.login(server.user, server.password)
imap_server.select()
- result, data = imap_server.search(None, '(UNSEEN)')
+ result, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
result, data = imap_server.fetch(num, '(RFC822)')
res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, context=context)
@@ -180,11 +178,11 @@ class mailgate_message(osv.osv):
_inherit = "mailgate.message"
_columns = {
- 'server_id': fields.many2one('email.server', "Mail Server", readonly=True, select=True),
+ 'server_id': fields.many2one('email.server', "Mail Server", readonly=True, select=True),
'type':fields.selection([
- ('pop', 'POP Server'),
- ('imap', 'IMAP Server'),
- ], 'Server Type', select=True, readonly=True),
+ ('pop', 'POP Server'),
+ ('imap', 'IMAP Server'),
+ ], 'Server Type', select=True, readonly=True),
}
_order = 'id desc'
diff --git a/addons/fetchmail/i18n/en_US.po b/addons/fetchmail/i18n/en_US.po
new file mode 100644
index 00000000000..d3b2c949324
--- /dev/null
+++ b/addons/fetchmail/i18n/en_US.po
@@ -0,0 +1,269 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * fetchmail
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-23 05:11:12+0000\n"
+"PO-Revision-Date: 2010-08-23 05:11:12+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: fetchmail
+#: selection:email.server,state:0
+msgid "Confirmed"
+msgstr "Confirmed"
+
+#. module: fetchmail
+#: 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: fetchmail
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree_imap
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree_imap
+msgid "IMAP Servers"
+msgstr "IMAP Servers"
+
+#. module: fetchmail
+#: field:email.server,action_id:0
+msgid "Reply Email"
+msgstr "Reply Email"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server & Login"
+msgstr "Server & Login"
+
+#. module: fetchmail
+#: field:email.server,priority:0
+msgid "Server Priority"
+msgstr "Server Priority"
+
+#. module: fetchmail
+#: field:email.server,state:0
+msgid "State"
+msgstr "State"
+
+#. module: fetchmail
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Not Confirmed"
+msgstr "Not Confirmed"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "POP/IMAP Servers"
+msgstr "POP/IMAP Servers"
+
+#. module: fetchmail
+#: model:ir.module.module,shortdesc:fetchmail.module_meta_information
+msgid "Fetchmail Server"
+msgstr "Fetchmail Server"
+
+#. module: fetchmail
+#: view:email.server:0
+#: field:email.server,note:0
+msgid "Description"
+msgstr "Description"
+
+#. module: fetchmail
+#: field:email.server,attach:0
+msgid "Add Attachments ?"
+msgstr "Add Attachments ?"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Set to Draft"
+msgstr "Set to Draft"
+
+#. module: fetchmail
+#: field:email.server,user:0
+msgid "User Name"
+msgstr "User Name"
+
+#. module: fetchmail
+#: field:email.server,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: fetchmail
+#: field:email.server,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Waiting for Verification"
+msgstr "Waiting for Verification"
+
+#. module: fetchmail
+#: field:email.server,password:0
+msgid "Password"
+msgstr "Password"
+
+#. module: fetchmail
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr "Invalid arguments"
+
+#. module: fetchmail
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Auto Reply?"
+msgstr "Auto Reply?"
+
+#. module: fetchmail
+#: field:email.server,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: fetchmail
+#: model:ir.model,name:fetchmail.model_mailgate_message
+msgid "Mailgateway Message"
+msgstr "Mailgateway Message"
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree
+msgid "POP Servers"
+msgstr "POP Servers"
+
+#. module: fetchmail
+#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
+msgid "Fetchmail Services"
+msgstr "Fetchmail Services"
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree_pop
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree_pop
+msgid "Received Email History"
+msgstr "Received Email History"
+
+#. module: fetchmail
+#: field:email.server,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Process Parameter"
+msgstr "Process Parameter"
+
+#. module: fetchmail
+#: field:email.server,is_ssl:0
+msgid "SSL ?"
+msgstr "SSL ?"
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "IMAP Server"
+msgstr "IMAP Server"
+
+#. module: fetchmail
+#: field:email.server,object_id:0
+msgid "Model"
+msgstr "Model"
+
+#. module: fetchmail
+#: field:email.server,server:0
+msgid "Server"
+msgstr "Server"
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.act_server_history
+msgid "Email History"
+msgstr "Email History"
+
+#. module: fetchmail
+#: view:email.server:0
+#: model:ir.model,name:fetchmail.model_email_server
+msgid "POP/IMAP Server"
+msgstr "POP/IMAP Server"
+
+#. module: fetchmail
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr "Rules are not supported for osv_memory objects !"
+
+#. module: fetchmail
+#: field:email.server,type:0
+#: field:mailgate.message,type:0
+msgid "Server Type"
+msgstr "Server Type"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Login Information"
+msgstr "Login Information"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server Information"
+msgstr "Server Information"
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "POP Server"
+msgstr "POP Server"
+
+#. module: fetchmail
+#: field:email.server,port:0
+msgid "Port"
+msgstr "Port"
+
+#. module: fetchmail
+#: model:ir.module.module,description:fetchmail.module_meta_information
+msgid "Fetchmail: \n"
+" * Fetch email from Pop / IMAP server\n"
+" * Support SSL\n"
+" * Integrated with all Modules\n"
+" * Automatic Email Receive\n"
+" * Email based Records (Add, Update)\n"
+" "
+msgstr "Fetchmail: \n"
+" * Fetch email from Pop / IMAP server\n"
+" * Support SSL\n"
+" * Integrated with all Modules\n"
+" * Automatic Email Receive\n"
+" * Email based Records (Add, Update)\n"
+" "
+
+#. module: fetchmail
+#: help:email.server,priority:0
+msgid "Priority between 0 to 10, select define the order of Processing"
+msgstr "Priority between 0 to 10, select define the order of Processing"
+
+#. module: fetchmail
+#: field:mailgate.message,server_id:0
+msgid "Mail Server"
+msgstr "Mail Server"
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Fetch Emails"
+msgstr "Fetch Emails"
+
diff --git a/addons/fetchmail/i18n/fetchmail.pot b/addons/fetchmail/i18n/fetchmail.pot
new file mode 100644
index 00000000000..f869a4a25e3
--- /dev/null
+++ b/addons/fetchmail/i18n/fetchmail.pot
@@ -0,0 +1,263 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * fetchmail
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 13:33:09+0000\n"
+"PO-Revision-Date: 2010-08-20 13:33: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: fetchmail
+#: selection:email.server,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree_imap
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree_imap
+msgid "IMAP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,action_id:0
+msgid "Reply Email"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server & Login"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,priority:0
+msgid "Server Priority"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,state:0
+msgid "State"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Not Confirmed"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "POP/IMAP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.module.module,shortdesc:fetchmail.module_meta_information
+msgid "Fetchmail Server"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+#: field:email.server,note:0
+msgid "Description"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,attach:0
+msgid "Add Attachments ?"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,user:0
+msgid "User Name"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,date:0
+msgid "Date"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Waiting for Verification"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,password:0
+msgid "Password"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Auto Reply?"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,name:0
+msgid "Name"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.model,name:fetchmail.model_mailgate_message
+msgid "Mailgateway Message"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree
+msgid "POP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
+msgid "Fetchmail Services"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree_pop
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree_pop
+msgid "Received Email History"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,active:0
+msgid "Active"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Process Parameter"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,is_ssl:0
+msgid "SSL ?"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "IMAP Server"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,object_id:0
+msgid "Model"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,server:0
+msgid "Server"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.act_server_history
+msgid "Email History"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+#: model:ir.model,name:fetchmail.model_email_server
+msgid "POP/IMAP Server"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,type:0
+#: field:mailgate.message,type:0
+msgid "Server Type"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Login Information"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server Information"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "POP Server"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,port:0
+msgid "Port"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.module.module,description:fetchmail.module_meta_information
+msgid "Fetchmail: \n"
+" * Fetch email from Pop / IMAP server\n"
+" * Support SSL\n"
+" * Integrated with all Modules\n"
+" * Automatic Email Receive\n"
+" * Email based Records (Add, Update)\n"
+" "
+msgstr ""
+
+#. module: fetchmail
+#: help:email.server,priority:0
+msgid "Priority between 0 to 10, select define the order of Processing"
+msgstr ""
+
+#. module: fetchmail
+#: field:mailgate.message,server_id:0
+msgid "Mail Server"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Fetch Emails"
+msgstr ""
+
diff --git a/addons/fetchmail/i18n/fr.po b/addons/fetchmail/i18n/fr.po
new file mode 100644
index 00000000000..f869a4a25e3
--- /dev/null
+++ b/addons/fetchmail/i18n/fr.po
@@ -0,0 +1,263 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * fetchmail
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 13:33:09+0000\n"
+"PO-Revision-Date: 2010-08-20 13:33: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: fetchmail
+#: selection:email.server,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree_imap
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree_imap
+msgid "IMAP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,action_id:0
+msgid "Reply Email"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server & Login"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,priority:0
+msgid "Server Priority"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,state:0
+msgid "State"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Not Confirmed"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "POP/IMAP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.module.module,shortdesc:fetchmail.module_meta_information
+msgid "Fetchmail Server"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+#: field:email.server,note:0
+msgid "Description"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,attach:0
+msgid "Add Attachments ?"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,user:0
+msgid "User Name"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,date:0
+msgid "Date"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,state:0
+msgid "Waiting for Verification"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,password:0
+msgid "Password"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Auto Reply?"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,name:0
+msgid "Name"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.model,name:fetchmail.model_mailgate_message
+msgid "Mailgateway Message"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_email_server_tree
+msgid "POP Servers"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
+msgid "Fetchmail Services"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree
+#: model:ir.actions.act_window,name:fetchmail.action_mailgate_message_tree_pop
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree
+#: model:ir.ui.menu,name:fetchmail.menu_action_mailgate_message_tree_pop
+msgid "Received Email History"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,active:0
+msgid "Active"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Process Parameter"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,is_ssl:0
+msgid "SSL ?"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "IMAP Server"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,object_id:0
+msgid "Model"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,server:0
+msgid "Server"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.actions.act_window,name:fetchmail.act_server_history
+msgid "Email History"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+#: model:ir.model,name:fetchmail.model_email_server
+msgid "POP/IMAP Server"
+msgstr ""
+
+#. module: fetchmail
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,type:0
+#: field:mailgate.message,type:0
+msgid "Server Type"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Login Information"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Server Information"
+msgstr ""
+
+#. module: fetchmail
+#: selection:email.server,type:0
+#: selection:mailgate.message,type:0
+msgid "POP Server"
+msgstr ""
+
+#. module: fetchmail
+#: field:email.server,port:0
+msgid "Port"
+msgstr ""
+
+#. module: fetchmail
+#: model:ir.module.module,description:fetchmail.module_meta_information
+msgid "Fetchmail: \n"
+" * Fetch email from Pop / IMAP server\n"
+" * Support SSL\n"
+" * Integrated with all Modules\n"
+" * Automatic Email Receive\n"
+" * Email based Records (Add, Update)\n"
+" "
+msgstr ""
+
+#. module: fetchmail
+#: help:email.server,priority:0
+msgid "Priority between 0 to 10, select define the order of Processing"
+msgstr ""
+
+#. module: fetchmail
+#: field:mailgate.message,server_id:0
+msgid "Mail Server"
+msgstr ""
+
+#. module: fetchmail
+#: view:email.server:0
+msgid "Fetch Emails"
+msgstr ""
+
diff --git a/addons/google_map/google_map.py b/addons/google_map/google_map.py
index 2e4b37653ea..e8e22516db2 100644
--- a/addons/google_map/google_map.py
+++ b/addons/google_map/google_map.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 .
#
##############################################################################
@@ -26,8 +26,6 @@ class res_partner_address(osv.osv):
_name = 'res.partner.address'
_inherit = 'res.partner.address'
_columns = {
-# 'google_map': fields.function(_get_url, method=True,
-# string='Google Map', type='char',),
}
res_partner_address()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/__init__.py b/addons/hr/__init__.py
index b2396739116..769e894f1bb 100644
--- a/addons/hr/__init__.py
+++ b/addons/hr/__init__.py
@@ -26,5 +26,4 @@ import installer
import report
import wizard
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index ef54e39bc14..70c91fbe362 100755
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
"name": "Human Resources",
"version": "1.1",
@@ -34,7 +33,7 @@
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'depends': ['base', 'process', 'resource','board'],
+ 'depends': ['resource', 'board'],
'init_xml': [],
'update_xml': [
'security/hr_security.xml',
@@ -55,4 +54,4 @@
'active': False,
'certificate': '0086710558965',
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr/board_hr_view.xml b/addons/hr/board_hr_view.xml
index fd4ddca0955..6408b11c799 100644
--- a/addons/hr/board_hr_view.xml
+++ b/addons/hr/board_hr_view.xml
@@ -33,12 +33,13 @@
-
+
+
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index f25383f3503..95355d7c303 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -35,8 +35,6 @@ class hr_employee_category(osv.osv):
}
def _check_recursion(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
level = 100
while len(ids):
cr.execute('select distinct parent_id from hr_employee_category where id IN %s', (tuple(ids), ))
@@ -65,8 +63,6 @@ hr_employee_marital_status()
class hr_job(osv.osv):
def _no_of_employee(self, cr, uid, ids, name, args, context=None):
- if context is None:
- context = {}
res = {}
for emp in self.browse(cr, uid, ids):
res[emp.id] = len(emp.employee_ids or [])
@@ -129,15 +125,13 @@ class hr_employee(osv.osv):
'parent_id': fields.related('department_id', 'manager_id', relation='hr.employee', string='Manager', type='many2one', store=True, select=True),
'category_ids': fields.many2many('hr.employee.category', 'employee_category_rel','category_id','emp_id','Category'),
'child_ids': fields.one2many('hr.employee', 'parent_id', 'Subordinates'),
- 'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade'),
+ 'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade', required=True),
'coach_id': fields.many2one('hr.employee', 'Coach'),
'job_id': fields.many2one('hr.job', 'Job'),
'photo': fields.binary('Photo')
}
def _get_photo(self, cr, uid, context=None):
- if context is None:
- context = {}
return open(os.path.join(
tools.config['addons_path'], 'hr/image', 'photo.png'),
'rb') .read().encode('base64')
@@ -148,19 +142,24 @@ class hr_employee(osv.osv):
}
def _check_recursion(self, cr, uid, ids, context=None):
- if context is None:
- context = {}
level = 100
while len(ids):
- cr.execute('select distinct parent_id from hr_employee where id IN %s',(tuple(ids),))
+ cr.execute('SELECT DISTINCT parent_id FROM hr_employee WHERE id IN %s AND parent_id!=id',(tuple(ids),))
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
if not level:
return False
level -= 1
return True
+ def _check_department_id(self, cr, uid, ids, context=None):
+ for emp in self.browse(cr, uid, ids, context=context):
+ if emp.department_id.manager_id and emp.id == emp.department_id.manager_id.id:
+ return False
+ return True
+
_constraints = [
- (_check_recursion, 'Error ! You cannot create recursive Hierarchy of Employees.', ['parent_id'])
+ (_check_recursion, 'Error ! You cannot create recursive Hierarchy of Employees.', ['parent_id']),
+ (_check_department_id, 'Error ! You cannot select a department for which the employee is the manager.', ['department_id']),
]
hr_employee()
@@ -170,9 +169,7 @@ class hr_department(osv.osv):
_inherit = 'hr.department'
_columns = {
'manager_id': fields.many2one('hr.employee', 'Manager'),
-# 'member_ids': fields.many2many('hr.employee', 'hr_department_user_rel', 'department_id', 'user_id', 'Members'),
'member_ids': fields.one2many('hr.employee', 'department_id', 'Members'),
-# finding problem to implement one2many field as "hr_departmen_user_rel" is used in another module query
}
hr_department()
diff --git a/addons/hr/hr_department.py b/addons/hr/hr_department.py
index 0bc0b56d42d..21946469ce4 100644
--- a/addons/hr/hr_department.py
+++ b/addons/hr/hr_department.py
@@ -19,7 +19,7 @@
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
import tools
class hr_department(osv.osv):
@@ -119,19 +119,18 @@ class res_users(osv.osv):
result = {}
obj_dept = self.pool.get('hr.department')
for user_id in ids:
- emp_ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', user_id)])
+ emp_ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', user_id)], context=context)
cr.execute('SELECT emp.department_id FROM hr_employee AS emp \
JOIN resource_resource AS res ON res.id = emp.resource_id \
JOIN hr_department as dept ON dept.id = emp.department_id \
WHERE res.user_id = %s AND emp.department_id IS NOT NULL AND dept.manager_id IS NOT NULL', (user_id,))
ids_dept = [x[0] for x in cr.fetchall()]
-# ids_dept = obj_dept.search(cr, uid, [('member_ids', 'in', [user_id])], context=context)
parent_ids = []
if ids_dept:
data_dept = obj_dept.read(cr, uid, ids_dept, ['manager_id'], context=context)
parent_ids = map(lambda x: x['manager_id'][0], data_dept)
cr.execute('SELECT res.user_id FROM hr_employee AS emp JOIN resource_resource AS res ON res.id=emp.resource_id \
- WHERE emp.id IN %s', (tuple(parent_ids),))
+ WHERE emp.id IN %s AND res.user_id IS NOT NULL', (tuple(parent_ids),))
parent_ids = [x[0] for x in cr.fetchall()]
result[user_id] = parent_ids
return result
@@ -162,7 +161,6 @@ class res_users(osv.osv):
(SELECT emp.id FROM hr_employee \
JOIN resource_resource r ON r.id = emp.resource_id WHERE r.user_id=' + str(user_id) + ') ')
mgnt_dept_ids = [x[0] for x in cr.fetchall()]
-# mgnt_dept_ids = obj_dept.search(cr, uid, [('manager_id', '=', user_id)], context=context)
ids_dept = obj_dept.search(cr, uid, [('id', 'child_of', mgnt_dept_ids)], context=context)
if ids_dept:
data_dept = obj_dept.read(cr, uid, ids_dept, ['member_ids'], context=context)
diff --git a/addons/hr/hr_department_demo.xml b/addons/hr/hr_department_demo.xml
index 082aa010e76..433e77a6dd4 100644
--- a/addons/hr/hr_department_demo.xml
+++ b/addons/hr/hr_department_demo.xml
@@ -19,41 +19,37 @@
Technical department
-
+
IT
-
Marketing
-
+
Sales
-
Sales Europe
-
Sales America
-
@@ -110,7 +106,7 @@
-
+
diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml
index 29e3b04f2c9..c2bb6ac7390 100644
--- a/addons/hr/hr_department_view.xml
+++ b/addons/hr/hr_department_view.xml
@@ -72,10 +72,11 @@
hr.department
form
+ Your Company's Departments Structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitements, etc.
-
+
res.users.form
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 0b95ca073ef..659ddfa36e9 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -2,7 +2,7 @@
-
+
@@ -99,6 +99,7 @@
+
@@ -144,6 +145,7 @@
[]
+ The employee directory contains all data related to your employees: from their photo up to their hourly estimated costs for the timesheets. Employees are managed by departments and can be linked to users to manage their access rights.
@@ -154,7 +156,7 @@
=======================
-->
-
+
hr.hr.employee.marital.status.tree
hr.employee.marital.status
tree
@@ -296,8 +298,6 @@
hr.employee
form
tree,form
-
-
@@ -308,7 +308,7 @@
-
@@ -338,9 +338,9 @@
-
-
-
+
+
+
@@ -369,16 +369,21 @@
-
+ name="Current" help="Open and in recruitment positions"/>
+
+
-
+
+
+
+
+
@@ -388,9 +393,12 @@
hr.job
form
tree,form
+
+ {'search_default_Current':1}
+ Job Positions are used to define the jobs, the requirements. You can attach a survey to a job position. This survey will be used in the recruitement process to evaluate the applicants for this job position.
-
+
diff --git a/addons/hr/i18n/it.po b/addons/hr/i18n/it.po
index d3bd4e36c53..2c4184417e3 100644
--- a/addons/hr/i18n/it.po
+++ b/addons/hr/i18n/it.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 04:56+0000\n"
-"Last-Translator: Luca Mattiello \n"
+"PO-Revision-Date: 2010-08-17 10:03+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
@@ -357,7 +357,7 @@ msgstr "Data Inizio"
#. module: hr
#: field:res.users,parent_id:0
msgid "Parent Users"
-msgstr ""
+msgstr "Utenti Padri"
#. module: hr
#: field:hr.employee,address_id:0
diff --git a/addons/hr/i18n/lt.po b/addons/hr/i18n/lt.po
index 16b35654032..51f39424f52 100644
--- a/addons/hr/i18n/lt.po
+++ b/addons/hr/i18n/lt.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-11 05:44+0000\n"
+"PO-Revision-Date: 2010-08-29 08:41+0000\n"
"Last-Translator: Giedrius Slavinskas \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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
diff --git a/addons/hr/i18n/pl.po b/addons/hr/i18n/pl.po
index c69626cc2a7..590f5f3f1ac 100644
--- a/addons/hr/i18n/pl.po
+++ b/addons/hr/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-07 09:39+0000\n"
+"PO-Revision-Date: 2010-08-12 05:47+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-13 05:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
diff --git a/addons/hr/i18n/pt_BR.po b/addons/hr/i18n/pt_BR.po
index 1b5006f6f70..39ce20b6162 100644
--- a/addons/hr/i18n/pt_BR.po
+++ b/addons/hr/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-11 19:47+0000\n"
-"Last-Translator: Roberto Higashi \n"
+"PO-Revision-Date: 2010-08-29 09:49+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
diff --git a/addons/hr/i18n/tr.po b/addons/hr/i18n/tr.po
index 1bec0496291..4f9721fc30c 100644
--- a/addons/hr/i18n/tr.po
+++ b/addons/hr/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:13+0000\n"
"Last-Translator: adsiz_1029@hotmail.com \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
diff --git a/addons/hr/i18n/zh_CN.po b/addons/hr/i18n/zh_CN.po
index 11e46933149..ae60545d9f3 100644
--- a/addons/hr/i18n/zh_CN.po
+++ b/addons/hr/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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 09:49+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-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr
diff --git a/addons/hr/security/hr_security.xml b/addons/hr/security/hr_security.xml
index 366744f22ff..4f7691f03e9 100644
--- a/addons/hr/security/hr_security.xml
+++ b/addons/hr/security/hr_security.xml
@@ -10,9 +10,5 @@
Human Resources / User
-
- Human Resources / Attendances User
-
-
diff --git a/addons/hr/security/ir.model.access.csv b/addons/hr/security/ir.model.access.csv
index e6e5c5c3c47..1a9331779df 100644
--- a/addons/hr/security/ir.model.access.csv
+++ b/addons/hr/security/ir.model.access.csv
@@ -1,17 +1,18 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_employee_category","hr.employee.category","model_hr_employee_category","base.group_hr_user",1,0,0,0
-"access_hr_employee","hr.employee","model_hr_employee","base.group_hr_user",1,1,1,1
-"access_hr_employee_resource","resource.resource","resource.model_resource_resource","base.group_hr_user",1,1,1,1
-"access_hr_department","hr.department","model_hr_department","base.group_hr_user",1,0,0,0
+"access_hr_employee_category_user","hr.employee.category.user","model_hr_employee_category","base.group_hr_user",1,0,0,0
+"access_hr_employee_user","hr.employee user","model_hr_employee","base.group_hr_user",1,1,1,1
+"access_hr_employee_resource_user","resource.resource.user","resource.model_resource_resource","base.group_hr_user",1,1,1,1
+"access_hr_department_user","hr.department.user","model_hr_department","base.group_hr_user",1,1,1,1
"access_hr_employee_category_manager","hr.employee.category.manager","model_hr_employee_category","base.group_hr_manager",1,0,0,0
"access_hr_department_manager","hr.department.manager","model_hr_department","base.group_hr_manager",1,1,1,1
"access_hr_employee_marital_status","hr.employee.marital.status","model_hr_employee_marital_status","base.group_system",1,1,1,1
-"access_hr_job","hr.job","model_hr_job","base.group_hr_user",1,0,0,0
-"access_hr_employee_category_manager","hr.employee.category.manager","model_hr_employee_category","base.group_hr_manager",1,0,0,0
+"access_hr_job_user","hr.job user","model_hr_job","base.group_hr_user",1,0,0,0
+"access_hr_employee_category_system","hr.employee.category.system","model_hr_employee_category","base.group_system",1,0,0,0
"access_hr_employee_manager","hr.employee.manager","model_hr_employee","base.group_hr_manager",1,1,1,1
-"access_hr_employee_resource","resource.resource","resource.model_resource_resource","base.group_hr_manager",1,1,1,1
-"access_hr_department","hr.department","model_hr_department","base.group_hr_manager",1,1,1,1
+"access_hr_employee_resource_manager","resource.resource.manager","resource.model_resource_resource","base.group_hr_manager",1,1,1,1
+"access_hr_department_system","hr.department.system","model_hr_department","base.group_system",1,0,0,0
"access_hr_res_partner_address","res.partner.address","base.model_res_partner_address","base.group_hr_manager",1,1,1,1
-"access_hr_job","hr.job","model_hr_job","base.group_hr_manager",1,1,1,1
-"access_hr_employee","hr.employee","model_hr_employee_category","base.group_system",1,1,1,1
-
+"access_hr_job_manager","hr.job.manager","model_hr_job","base.group_hr_manager",1,1,1,1
+"access_hr_employee_system","hr.employee.system","model_hr_employee","base.group_system",1,1,1,1
+"access_hr_job_system","hr.job system","model_hr_job","base.group_system",1,0,0,0
+"access_hr_employee_category_system","hr.employee.category.system","model_hr_employee_category","base.group_system",1,0,0,0
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index 383f1dfa8b1..5a79566bcde 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -30,12 +30,11 @@
actions(Sign in/Sign out) performed by them.
""",
'author': 'OpenERP SA',
- 'depends': ['base', 'hr'],
+ 'depends': ['hr'],
'update_xml': [
'security/hr_security.xml',
- 'security/ir.model.access.csv',
+ 'security/ir.model.access.csv',
'hr_attendance_view.xml',
- 'hr_attendance_wizard.xml',
'hr_attendance_report.xml',
'security/ir.model.access.csv',
'wizard/hr_attendance_bymonth_view.xml',
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index 938df72d4e9..643e5d519c9 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -34,6 +34,7 @@ class hr_action_reason(osv.osv):
_defaults = {
'action_type': 'sign_in',
}
+
hr_action_reason()
def _employee_get(obj, cr, uid, context=None):
@@ -59,7 +60,7 @@ class hr_attendance(osv.osv):
_columns = {
'name': fields.datetime('Date', required=True, select=1),
'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
- 'action_desc': fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
+ 'action_desc': fields.many2one("hr.action.reason", "Action Reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
'day': fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
}
@@ -71,13 +72,13 @@ class hr_attendance(osv.osv):
def _altern_si_so(self, cr, uid, ids):
for id in ids:
sql = '''
- select action, name
- from hr_attendance as att
- where employee_id = (select employee_id from hr_attendance where id=%s)
- and action in ('sign_in','sign_out')
- and name <= (select name from hr_attendance where id=%s)
- order by name desc
- limit 2 '''
+ SELECT action, name
+ FROM hr_attendance AS att
+ WHERE employee_id = (SELECT employee_id FROM hr_attendance WHERE id=%s)
+ AND action IN ('sign_in','sign_out')
+ AND name <= (SELECT name FROM hr_attendance WHERE id=%s)
+ ORDER BY name DESC
+ LIMIT 2 '''
cr.execute(sql,(id,id))
atts = cr.fetchall()
if not ((len(atts)==1 and atts[0][0] == 'sign_in') or (atts[0][0] != atts[1][0] and atts[0][1] != atts[1][1])):
@@ -86,6 +87,7 @@ class hr_attendance(osv.osv):
_constraints = [(_altern_si_so, 'Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)', ['action'])]
_order = 'name desc'
+
hr_attendance()
class hr_employee(osv.osv):
@@ -115,12 +117,12 @@ class hr_employee(osv.osv):
_columns = {
'state': fields.function(_state, method=True, type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Attendance'),
- }
+ }
def _action_check(self, cr, uid, emp_id, dt=False, context=None):
if context is None:
context = {}
- cr.execute('select max(name) from hr_attendance where employee_id=%s', (emp_id,))
+ cr.execute('SELECT MAX(name) FROM hr_attendance WHERE employee_id=%s', (emp_id,))
res = cr.fetchone()
return not (res and (res[0]>=(dt or time.strftime('%Y-%m-%d %H:%M:%S'))))
@@ -144,16 +146,14 @@ class hr_employee(osv.osv):
raise osv.except_osv(_('Warning'), _('You tried to %s with a date anterior to another event !\nTry to contact the administrator to correct attendances.')%(warning_sign,))
res = {'action': type, 'employee_id': emp['id']}
-
if dt:
res['name'] = dt
id = obj_attendance.create(cr, uid, res, context=context)
if type != 'action':
return id
-
return True
hr_employee()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index 659d27cec9a..da3218d9c6c 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -72,10 +72,11 @@
tree,form
{"search_default_employee":1}
+ Time Tracking functionality aims to manage employee's attendances on the basis of the actions (Sign in/Sign out) performed by them. You can also link this to an attendance machine using OpenERP's webservices features.
-
+
hr.action.reason.form
diff --git a/addons/hr_attendance/hr_attendance_wizard.xml b/addons/hr_attendance/hr_attendance_wizard.xml
deleted file mode 100644
index 3fc43bce7c5..00000000000
--- a/addons/hr_attendance/hr_attendance_wizard.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/hr_attendance/i18n/fi.po b/addons/hr_attendance/i18n/fi.po
index b11b72f01f1..f789dfa4729 100644
--- a/addons/hr_attendance/i18n/fi.po
+++ b/addons/hr_attendance/i18n/fi.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-11 04:44+0000\n"
+"PO-Revision-Date: 2010-08-29 09:23+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: Finnish \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 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_attendance
diff --git a/addons/hr_attendance/i18n/it.po b/addons/hr_attendance/i18n/it.po
index 68d1aa6c25d..a02260204ed 100644
--- a/addons/hr_attendance/i18n/it.po
+++ b/addons/hr_attendance/i18n/it.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 05:30+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-19 05:41+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 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-20 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_attendance
@@ -87,7 +87,7 @@ msgstr "Nome Dipendente"
#: wizard_button:hr.attendance.print_month,init,print:0
#: wizard_button:hr.attendance.print_week,init,print:0
msgid "Print Timesheet"
-msgstr ""
+msgstr "Stampa il Cartellino"
#. module: hr_attendance
#: model:ir.actions.wizard,name:hr_attendance.wizard_attendance_error
@@ -102,7 +102,7 @@ msgstr "Nome di modello non valido nella definizione dell'azione."
#. module: hr_attendance
#: model:ir.actions.wizard,name:hr_attendance.print_week
msgid "Print Timesheet by week"
-msgstr ""
+msgstr "Stampa il Cartellino per settimana"
#. module: hr_attendance
#: field:hr.attendance,employee_id:0
@@ -113,7 +113,7 @@ msgstr "Dipendente"
#: wizard_view:hr.attendance.print_week,init:0
#: wizard_view:hr.attendance.report,init:0
msgid "Select a time span"
-msgstr ""
+msgstr "Seleziona un periodo di tempo"
#. module: hr_attendance
#: rml:report.hr.timesheet.attendance.error:0
@@ -165,7 +165,7 @@ msgstr "Giugno"
#. module: hr_attendance
#: model:ir.actions.wizard,name:hr_attendance.print_month
msgid "Print Timesheet by month"
-msgstr ""
+msgstr "Stampa il Cartellino per mese"
#. module: hr_attendance
#: selection:hr.attendance,action:0
@@ -223,7 +223,7 @@ msgstr "Motivo Presenza"
#: wizard_field:hr.attendance.print_week,init,init_date:0
#: wizard_field:hr.attendance.report,init,init_date:0
msgid "Starting Date"
-msgstr ""
+msgstr "Data di inizio"
#. module: hr_attendance
#: selection:hr.employee,state:0
@@ -275,7 +275,7 @@ msgstr "Entrata"
#. module: hr_attendance
#: wizard_view:hr.attendance.report,init:0
msgid "Analysis Information"
-msgstr ""
+msgstr "Analisi dell'informazione"
#. module: hr_attendance
#: wizard_field:hr.si_so,init,state:0
@@ -313,7 +313,7 @@ msgstr "Azione"
#. module: hr_attendance
#: wizard_button:hr.attendance.report,init,print:0
msgid "Print Attendance Report"
-msgstr ""
+msgstr "Stampa Report Presenze"
#. module: hr_attendance
#: model:ir.actions.act_window,name:hr_attendance.open_view_attendance_reason
@@ -329,7 +329,7 @@ msgstr "Novembre"
#. module: hr_attendance
#: wizard_view:hr.attendance.report,init:0
msgid "Bellow this delay, the error is considered to be voluntary"
-msgstr ""
+msgstr "Al di sotto di questo ritardo, l'errore è da considerarsi volontario"
#. module: hr_attendance
#: wizard_field:hr.attendance.report,init,max_delay:0
@@ -339,13 +339,13 @@ msgstr "Ritardo Massimo (min.)"
#. module: hr_attendance
#: wizard_view:hr.attendance.print_week,init:0
msgid "Select a starting and a end date"
-msgstr ""
+msgstr "Seleziona una data di inizio e una di fine"
#. module: hr_attendance
#: wizard_field:hr.attendance.print_week,init,end_date:0
#: wizard_field:hr.attendance.report,init,end_date:0
msgid "Ending Date"
-msgstr ""
+msgstr "Data finale"
#. module: hr_attendance
#: wizard_view:hr.si_so,so_ask_si:0
diff --git a/addons/hr_attendance/i18n/pt_BR.po b/addons/hr_attendance/i18n/pt_BR.po
index 3e7f5932c3d..92449ae82d7 100644
--- a/addons/hr_attendance/i18n/pt_BR.po
+++ b/addons/hr_attendance/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:35+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_attendance
diff --git a/addons/hr_attendance/i18n/tr.po b/addons/hr_attendance/i18n/tr.po
index d7a5b5b220d..fd51c949be2 100644
--- a/addons/hr_attendance/i18n/tr.po
+++ b/addons/hr_attendance/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-11 05:07+0000\n"
+"PO-Revision-Date: 2010-08-29 08:23+0000\n"
"Last-Translator: Angel Spy \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 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_attendance
diff --git a/addons/hr_attendance/report/attendance_errors.py b/addons/hr_attendance/report/attendance_errors.py
index 2c0455e10d8..b0113aa88d4 100644
--- a/addons/hr_attendance/report/attendance_errors.py
+++ b/addons/hr_attendance/report/attendance_errors.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 .
#
##############################################################################
@@ -37,17 +37,8 @@ class attendance_print(report_sxw.rml_parse):
def _get_employees(self, emp_ids):
emp_obj_list = self.pool.get('hr.employee').browse(self.cr, self.uid, emp_ids)
- return emp_obj_list
-
-# def _sign(self, dt):
-# if abs(dt.days) > 1:
-# format = '%d day'+(((abs(dt.days)>=2) and 's') or '')+' %H:%M:%S'
-# else:
-# format = '%H:%M:%S'
-# if dt.seconds<0:
-# return dt.strftime('- '+format)
-# else:
-# return dt.strftime(format)
+ return emp_obj_list
+
def _lst(self, employee_id, dt_from, dt_to, max, *args):
self.cr.execute("select name as date, create_date, action, create_date-name as delay from hr_attendance where employee_id=%s and to_char(name,'YYYY-mm-dd')<=%s and to_char(name,'YYYY-mm-dd')>=%s and action IN (%s,%s) order by name", (employee_id, dt_to, dt_from, 'sign_in', 'sign_out'))
@@ -57,7 +48,6 @@ class attendance_print(report_sxw.rml_parse):
r['delay'] = -r['delay']
temp = r['delay'].seconds
-# r['delay'] = self._sign(r['delay'])
r['delay'] = str(r['delay']).split('.')[0]
if abs(temp) < max*60:
r['delay2'] = r['delay']
@@ -78,14 +68,13 @@ class attendance_print(report_sxw.rml_parse):
total += r['delay']
if abs(r['delay'].seconds) < max*60:
total2 += r['delay']
-
+
result_dict = {
'total': total and str(total).split('.')[0],
'total2': total2 and str(total2).split('.')[0]
}
-# return (self._sign(total),total2 and self._sign(total2))
return [result_dict]
-
+
report_sxw.report_sxw('report.hr.attendance.error', 'hr.employee', 'addons/hr_attendance/report/attendance_errors.rml', parser=attendance_print, header=2)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/security/ir.model.access.csv b/addons/hr_attendance/security/ir.model.access.csv
index a22d252448d..67c840a24f2 100644
--- a/addons/hr_attendance/security/ir.model.access.csv
+++ b/addons/hr_attendance/security/ir.model.access.csv
@@ -1,11 +1,12 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","base.group_hr_attendance",1,0,0,0
-"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","base.group_hr_manager",1,1,1,1
-"access_hr_action_reason_employee_user","hr action reason employee user","model_hr_attendance","base.group_hr_user",1,1,1,1
-"access_hr_action_reason_employee_manager","hr action reason employee manager","model_hr_attendance","base.group_hr_manager",1,1,1,1
-"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","base.group_hr_attendance",1,1,1,1
-"access_hr_employee_attendance","hr employee attendance sign in out","hr.model_hr_employee","base.group_hr_attendance",1,1,1,1
-"access_hr_attendance_resource","hr resource attendance sign in out","resource.model_resource_resource","base.group_hr_attendance",1,1,1,1
-"access_hr_job_attendance","hr_job_attendance","hr.model_hr_job","base.group_hr_attendance",1,0,0,0
+"access_hr_action_reason_attendance","hr.action.reason.attendance","model_hr_action_reason","base.group_hr_attendance",1,0,0,0
+"access_hr_action_reason_manager","hr.action.reason.manager","model_hr_action_reason","base.group_hr_manager",1,1,1,1
+"access_hr_action_reason_employee_user","hr.action.reason.employee.user","model_hr_attendance","base.group_hr_user",1,1,1,1
+"access_hr_attendance_manager","hr.attendance.manager","model_hr_attendance","base.group_hr_manager",1,1,1,1
+"access_hr_attendance_attendance","hr.attendance.attendance","model_hr_attendance","base.group_hr_attendance",1,1,1,1
+"access_hr_employee_attendance","hr.employee.attendance","hr.model_hr_employee","base.group_hr_attendance",1,0,0,0
+"access_resource_resource_attendance","resource.resource.attendance","resource.model_resource_resource","base.group_hr_attendance",1,1,1,1
+"access_hr_job_attendance","hr.job.attendance","hr.model_hr_job","base.group_hr_attendance",1,0,0,0
"access_hr_department_attendance","hr.department attendance","hr.model_hr_department","base.group_hr_attendance",1,0,0,0
-"access_hr_action_reason","hr.action.reason","model_hr_action_reason","base.group_system",1,1,1,1
+"access_hr_action_reason_system","hr.action.reason.system","model_hr_action_reason","base.group_system",1,1,1,1
+"access_hr_attendance_system","hr.attendance.system","model_hr_attendance","base.group_system",1,0,0,0
diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth.py b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
index f66e7892601..8c41fefcaa6 100644
--- a/addons/hr_attendance/wizard/hr_attendance_bymonth.py
+++ b/addons/hr_attendance/wizard/hr_attendance_bymonth.py
@@ -29,11 +29,11 @@ class hr_attendance_bymonth(osv.osv_memory):
_columns = {
'month': fields.selection([(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')], 'Month', required=True),
'year': fields.integer('Year', required=True)
- }
+ }
_defaults = {
'month': time.gmtime()[1],
'year': time.gmtime()[0],
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -42,13 +42,13 @@ class hr_attendance_bymonth(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': self.read(cr, uid, ids)[0]
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.bymonth',
'datas': datas,
- }
+ }
hr_attendance_bymonth()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
index 8d3aa343b15..e9b5fecf330 100644
--- a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml
@@ -19,7 +19,7 @@
- Attendances by month
+ Attendances By Month
ir.actions.act_window
hr.attendance.month
form
@@ -30,7 +30,7 @@
- Attendances by month
+ Attendances By Month
client_print_multi
action
diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek.py b/addons/hr_attendance/wizard/hr_attendance_byweek.py
index 175ebf8a228..e2b071de66a 100644
--- a/addons/hr_attendance/wizard/hr_attendance_byweek.py
+++ b/addons/hr_attendance/wizard/hr_attendance_byweek.py
@@ -28,11 +28,11 @@ class hr_attendance_byweek(osv.osv_memory):
_columns = {
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True)
- }
+ }
_defaults = {
'init_date': time.strftime('%Y-%m-%d'),
'end_date': time.strftime('%Y-%m-%d'),
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -41,12 +41,12 @@ class hr_attendance_byweek(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': self.read(cr, uid, ids)[0]
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.allweeks',
'datas': datas,
- }
+ }
hr_attendance_byweek()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
index ed7ff7a8bc7..b87a3903a80 100644
--- a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml
@@ -2,45 +2,5 @@
-
-
diff --git a/addons/hr_attendance/wizard/hr_attendance_error.py b/addons/hr_attendance/wizard/hr_attendance_error.py
index 449fc4ca5c2..6c630b1e064 100644
--- a/addons/hr_attendance/wizard/hr_attendance_error.py
+++ b/addons/hr_attendance/wizard/hr_attendance_error.py
@@ -31,12 +31,12 @@ class hr_attendance_error(osv.osv_memory):
'init_date': fields.date('Starting Date', required=True),
'end_date': fields.date('Ending Date', required=True),
'max_delay': fields.integer('Max. Delay (Min)', required=True)
- }
+ }
_defaults = {
'init_date': time.strftime('%Y-%m-%d'),
'end_date': time.strftime('%Y-%m-%d'),
'max_delay': 120,
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -45,7 +45,7 @@ class hr_attendance_error(osv.osv_memory):
data_error = self.read(cr, uid, ids, context=context)[0]
date_from = data_error['init_date']
date_to = data_error['end_date']
- cr.execute("select id from hr_attendance where employee_id IN %s and to_char(name,'YYYY-mm-dd')<=%s and to_char(name,'YYYY-mm-dd')>=%s and action IN %s order by name" ,(tuple(context['active_ids']), date_to, date_from, tuple(['sign_in','sign_out'])))
+ cr.execute("SELECT id FROM hr_attendance WHERE employee_id IN %s AND to_char(name,'YYYY-mm-dd')<=%s AND to_char(name,'YYYY-mm-dd')>=%s AND action IN %s ORDER BY name" ,(tuple(context['active_ids']), date_to, date_from, tuple(['sign_in','sign_out'])))
attendance_ids = [x[0] for x in cr.fetchall()]
if not attendance_ids:
raise osv.except_osv(_('No Data Available'), _('No records found for your selection!'))
@@ -59,13 +59,13 @@ class hr_attendance_error(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': data_error
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'hr.attendance.error',
'datas': datas,
- }
+ }
hr_attendance_error()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
index 635c25940e1..09f9f9364c5 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
@@ -192,4 +192,4 @@ class hr_sign_in_out(osv.osv_memory):
hr_sign_in_out()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/hr_contract/hr_contract.py b/addons/hr_contract/hr_contract.py
index edc6ee4dc74..aa04761e9a7 100644
--- a/addons/hr_contract/hr_contract.py
+++ b/addons/hr_contract/hr_contract.py
@@ -26,6 +26,18 @@ class hr_employee(osv.osv):
_name = "hr.employee"
_description = "Employee"
_inherit = "hr.employee"
+
+ def _get_latest_contract(self, cr, uid, ids, field_name, args, context=None):
+ res = {}
+ obj_contract = self.pool.get('hr.contract')
+ for emp in self.browse(cr, uid, ids, context=context):
+ contract_ids = obj_contract.search(cr, uid, [('employee_id','=',emp.id),], order='date_start', context=context)
+ if contract_ids:
+ res[emp.id] = contract_ids[-1:][0]
+ else:
+ res[emp.id] = False
+ return res
+
_columns = {
'manager': fields.boolean('Is a Manager'),
'medic_exam': fields.date('Medical Examination Date'),
@@ -34,7 +46,9 @@ class hr_employee(osv.osv):
'vehicle': fields.char('Company Vehicle', size=64),
'vehicle_distance': fields.integer('Home-Work Distance', help="In kilometers"),
'contract_ids': fields.one2many('hr.contract', 'employee_id', 'Contracts'),
- }
+ 'contract_id':fields.function(_get_latest_contract, method=True, string='Contract', type='many2one', relation="hr.contract", help='Latest contract of the employee'),
+ }
+
hr_employee()
#Contract wage type period name
@@ -44,10 +58,10 @@ class hr_contract_wage_type_period(osv.osv):
_columns = {
'name': fields.char('Period Name', size=50, required=True, select=True),
'factor_days': fields.float('Hours in the period', digits=(12,4), required=True, help='This field is used by the timesheet system to compute the price of an hour of work wased on the contract of the employee')
- }
+ }
_defaults = {
'factor_days': 168.0
- }
+ }
hr_contract_wage_type_period()
#Contract wage type (hourly, daily, monthly, ...)
@@ -59,11 +73,11 @@ class hr_contract_wage_type(osv.osv):
'period_id': fields.many2one('hr.contract.wage.type.period', 'Wage Period', required=True),
'type': fields.selection([('gross','Gross'), ('net','Net')], 'Type', required=True),
'factor_type': fields.float('Factor for hour cost', digits=(12,4), required=True, help='This field is used by the timesheet system to compute the price of an hour of work wased on the contract of the employee')
- }
+ }
_defaults = {
'type': 'gross',
'factor_type': 1.8
- }
+ }
hr_contract_wage_type()
@@ -93,10 +107,10 @@ class hr_contract(osv.osv):
'advantages_net': fields.float('Net Advantages Value', digits=(16,2)),
'advantages_gross': fields.float('Gross Advantages Value', digits=(16,2)),
'notes': fields.text('Notes'),
- }
+ }
_defaults = {
'date_start': time.strftime("%Y-%m-%d"),
- }
+ }
hr_contract()
diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml
index d32f9301b36..c049d92a783 100644
--- a/addons/hr_contract/hr_contract_view.xml
+++ b/addons/hr_contract/hr_contract_view.xml
@@ -101,8 +101,8 @@
hr.employee
-
-
+
+
@@ -120,7 +120,22 @@
-
+
+
+
+
+
+
+
+
+ hr.employee.view.form3
+ hr.employee
+ form
+
+
+
+
+
@@ -133,12 +148,14 @@
+
+
@@ -159,7 +176,7 @@
-
+
diff --git a/addons/hr_contract/i18n/es_EC.po b/addons/hr_contract/i18n/es_EC.po
index 853c4a13f66..570fbe8f22a 100644
--- a/addons/hr_contract/i18n/es_EC.po
+++ b/addons/hr_contract/i18n/es_EC.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: 2009-03-23 02:53+0000\n"
+"PO-Revision-Date: 2010-08-20 18:12+0000\n"
"Last-Translator: Cristian Salamea (GnuThink) \n"
"Language-Team: Spanish (Ecuador) \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 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-21 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_contract
@@ -59,7 +59,7 @@ msgstr "Tipos de salario"
#. module: hr_contract
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nombre de modelo inválido en definición de acción"
#. module: hr_contract
#: field:hr.contract,employee_id:0
@@ -74,7 +74,7 @@ msgstr "Neto"
#. module: hr_contract
#: model:ir.module.module,shortdesc:hr_contract.module_meta_information
msgid "Human Resources Contracts"
-msgstr ""
+msgstr "Contratos laborales para recursos humanos"
#. module: hr_contract
#: field:hr.contract.wage.type.period,factor_days:0
@@ -190,7 +190,7 @@ msgstr "Período de salario"
#. module: hr_contract
#: field:hr.employee,audiens_num:0
msgid "AUDIENS Number"
-msgstr ""
+msgstr "Número de AUDIENS"
#. module: hr_contract
#: view:hr.contract:0
diff --git a/addons/hr_contract/i18n/it.po b/addons/hr_contract/i18n/it.po
index c2cca548426..bca3ca2401c 100644
--- a/addons/hr_contract/i18n/it.po
+++ b/addons/hr_contract/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 17:42+0000\n"
-"Last-Translator: Mario Riva \n"
+"PO-Revision-Date: 2010-08-18 10: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-12 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_contract
@@ -58,7 +58,7 @@ msgstr "Tipi Retribuzione"
#. module: hr_contract
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome modello non valido nella definizione dell'azione."
#. module: hr_contract
#: field:hr.contract,employee_id:0
@@ -73,7 +73,7 @@ msgstr "Netto"
#. module: hr_contract
#: model:ir.module.module,shortdesc:hr_contract.module_meta_information
msgid "Human Resources Contracts"
-msgstr ""
+msgstr "Contratti Risorse Umane"
#. module: hr_contract
#: field:hr.contract.wage.type.period,factor_days:0
@@ -189,7 +189,7 @@ msgstr "Periodo Retribuzione"
#. module: hr_contract
#: field:hr.employee,audiens_num:0
msgid "AUDIENS Number"
-msgstr ""
+msgstr "Numero AUDIENS"
#. module: hr_contract
#: view:hr.contract:0
diff --git a/addons/hr_contract/i18n/tr.po b/addons/hr_contract/i18n/tr.po
index 2bd3f4032b1..da4dd468122 100644
--- a/addons/hr_contract/i18n/tr.po
+++ b/addons/hr_contract/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:11+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-12 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_contract
diff --git a/addons/hr_contract/security/ir.model.access.csv b/addons/hr_contract/security/ir.model.access.csv
index 0df71fbd082..7db79a1de7f 100644
--- a/addons/hr_contract/security/ir.model.access.csv
+++ b/addons/hr_contract/security/ir.model.access.csv
@@ -1,17 +1,18 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_contract_wage_type_period","hr.contract.wage.type.period","model_hr_contract_wage_type_period","base.group_hr_manager",1,1,1,1
-"access_hr_contract_wage_type","hr.contract.wage.type","model_hr_contract_wage_type","base.group_hr_manager",1,1,1,1
-"access_hr_contract_wage_type_contract","hr.contract.wage.type contract","model_hr_contract_wage_type","base.group_hr_contract",1,1,1,1
-"access_hr_contract_wage_type_period_contract","hr.contract.wage.type.period contract","model_hr_contract_wage_type_period","base.group_hr_contract",1,1,1,1
-"access_hr_contract","hr.contract","model_hr_contract","base.group_hr_contract",1,1,1,1
-"access_hr_employee_contract","hr.employee contract","hr.model_hr_employee","base.group_hr_contract",1,1,1,1
-"access_hr_resource_contract","hr.employee.resource contract","resource.model_resource_resource","base.group_hr_contract",1,1,1,1
-"access_hr_resource_calendar_contract","hr.employee.resource.calendar contract","resource.model_resource_calendar","base.group_hr_contract",1,1,1,1
-"access_hr_job_contract","hr.employee.job contract","hr.model_hr_job","base.group_hr_contract",1,1,1,1
-"access_hr_contract_type","hr.contract.type","model_hr_contract_type","base.group_hr_contract",1,1,1,1
-"access_hr_contract_wage_type","hr.contract.wage.type","model_hr_contract_wage_type","base.group_system",1,1,1,1
-"access_hr_contract_wage_type_period","hr.contract.wage.type.period","model_hr_contract_wage_type_period","base.group_system",1,1,1,1
-"access_hr_contract_type","hr.contract.type","model_hr_contract_type","base.group_system",1,1,1,1
-"access_hr_contract","hr.contract","model_hr_contract","base.group_system",1,1,1,1
-"access_hr_contract_type","hr.contract.type","model_hr_employee","base.group_system",1,1,1,1
-
+"access_hr_contract_wage_type_period_manager","hr.contract.wage.type.period.manager","model_hr_contract_wage_type_period","base.group_hr_manager",1,1,1,1
+"access_hr_contract_wage_type_manager","hr.contract.wage.type.manager","model_hr_contract_wage_type","base.group_hr_manager",1,1,1,1
+"access_hr_contract_wage_type_contract","hr.contract.wage.type.contract","model_hr_contract_wage_type","base.group_hr_contract",1,1,1,1
+"access_hr_contract_wage_type_period_contract","hr.contract.wage.type.period.contract","model_hr_contract_wage_type_period","base.group_hr_contract",1,1,1,1
+"access_hr_contract_contract","hr.contract.contract","model_hr_contract","base.group_hr_contract",1,1,1,1
+"access_hr_employee_contract_contract","hr.employee.contract.contract","hr.model_hr_employee","base.group_hr_contract",1,1,1,1
+"access_hr_resource_contract","hr.employee.resource.contract","resource.model_resource_resource","base.group_hr_contract",1,1,1,1
+"access_hr_resource_calendar_contract","hr.employee.resource.calendar.contract","resource.model_resource_calendar","base.group_hr_contract",1,1,1,1
+"access_hr_job_contract","hr.job contract","hr.model_hr_job","base.group_hr_contract",1,1,1,1
+"access_hr_contract_type_contract","hr.contract.type.contract","model_hr_contract_type","base.group_hr_contract",1,1,1,1
+"access_hr_contract_wage_type_system","hr.contract.wage.type.system","model_hr_contract_wage_type","base.group_system",1,1,1,1
+"access_hr_contract_wage_type_period_system","hr.contract.wage.type.period.system","model_hr_contract_wage_type_period","base.group_system",1,1,1,1
+"access_hr_contract_type_system","hr.contract.type.system","model_hr_contract_type","base.group_system",1,1,1,1
+"access_hr_contract_system","hr.contract.system","model_hr_contract","base.group_system",1,0,0,0
+"access_hr_employee_category_contract","hr.employee.category.contract","hr.model_hr_employee_category","base.group_hr_contract",1,1,1,1
+"access_hr_department_contract","hr.department.contract","hr.model_hr_department","base.group_hr_contract",1,1,1,1
+"access_hr_contract_manager","hr.contract.manager","model_hr_contract","base.group_hr_manager",1,0,0,0
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index 21ca0423c9a..c80c12f10ff 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -36,11 +36,11 @@ class hr_evaluation_plan(osv.osv):
'month_first': fields.integer('First Evaluation After'),
'month_next': fields.integer('Next Evaluation After'),
'active': fields.boolean('Active')
- }
+ }
_defaults = {
'active': True,
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
- }
+ }
hr_evaluation_plan()
class hr_evaluation_plan_phase(osv.osv):
@@ -131,7 +131,7 @@ class hr_employee(osv.osv):
evaluation_date=(dt.ISO.ParseAny(evaluation_date)+ dt.RelativeDateTime(months=+evaluation_plan.month_next)).strftime('%Y-%m-%d')
flag = True
if ids and flag:
- self.pool.get("hr_evaluation.evaluation").create(cr, uid, {'employee_id': ids[0], 'plan_id': evaluation_plan_id}, context=context)
+ obj_evaluation.create(cr, uid, {'employee_id': ids[0], 'plan_id': evaluation_plan_id}, context=context)
return {'value': {'evaluation_date': evaluation_date}}
def create(self, cr, uid, vals, context=None):
@@ -139,7 +139,7 @@ class hr_employee(osv.osv):
context = {}
id = super(hr_employee, self).create(cr, uid, vals, context=context)
if vals.get('evaluation_plan_id', False):
- obj_evaluation.create(cr, uid, {'employee_id' : id, 'plan_id': vals['evaluation_plan_id']}, context=context)
+ self.pool.get('hr_evaluation.evaluation').create(cr, uid, {'employee_id' : id, 'plan_id': vals['evaluation_plan_id']}, context=context)
return id
hr_employee()
@@ -274,10 +274,10 @@ class survey_request(osv.osv):
_inherit = "survey.request"
_columns = {
'is_evaluation': fields.boolean('Is Evaluation?'),
- }
+ }
_defaults = {
'state': 'waiting_answer',
- }
+ }
survey_request()
@@ -286,13 +286,13 @@ class hr_evaluation_interview(osv.osv):
_inherits = {'survey.request': 'request_id'}
_description = 'Evaluation Interview'
_columns = {
- 'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade'),
+ 'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade', required=True),
'user_to_review_id': fields.many2one('hr.employee', 'Employee to Interview'),
'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Evaluation Type'),
- }
+ }
_defaults = {
'is_evaluation': True,
- }
+ }
def survey_req_waiting_answer(self, cr, uid, ids, context=None):
if context is None:
diff --git a/addons/hr_evaluation/hr_evaluation_demo.xml b/addons/hr_evaluation/hr_evaluation_demo.xml
index 2c5b290b20a..eaad7d3865d 100644
--- a/addons/hr_evaluation/hr_evaluation_demo.xml
+++ b/addons/hr_evaluation/hr_evaluation_demo.xml
@@ -210,28 +210,6 @@
-
@@ -587,49 +565,6 @@ Once the form had been filled, the employee send it to his supervisor.
-
@@ -1589,16 +1524,6 @@ Once the form had been filled, the employee send it to his supervisor.
-
-
-
-
-
-
-
-
-
-
@@ -1673,28 +1598,6 @@ Once the form had been filled, the employee send it to his supervisor.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Run Employee Evaluation
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index 44be7549dd3..55bc22ac505 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -2,7 +2,7 @@
-
+
hr_evaluation.plan.search
hr_evaluation.plan
search
@@ -62,7 +62,7 @@
tree,form
-
+
@@ -140,12 +140,12 @@
hr.employee
-
+
-
+
@@ -201,7 +201,6 @@
tree
-
@@ -261,6 +260,7 @@
form
tree,form,graph
+ Each employee can be assigned to an evaluation plan. These plans define the frequency and the way you manage your periodic personnal evalautions. You will be able to define steps and attach interview forms to each step. OpenERP manages all kind of evaluations: bottom-up, top-down, self evaluation and final evaluation by the manager.
-
@@ -332,7 +328,8 @@
-
+
+
@@ -347,11 +344,12 @@
[('is_evaluation' ,'=', True)]
{"search_default_todo":1,"search_default_user_id":uid}
+ Interview Requests are generated automatically by OpenERP according to employees evaluation plan. Each user receives automatic emails and requests to perform evaluation of their collegues periodically.
-
-
diff --git a/addons/hr_evaluation/security/ir.model.access.csv b/addons/hr_evaluation/security/ir.model.access.csv
index 89ed8f20099..4e37e74ca0f 100644
--- a/addons/hr_evaluation/security/ir.model.access.csv
+++ b/addons/hr_evaluation/security/ir.model.access.csv
@@ -1,11 +1,14 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_evaluation_evaluation","hr_evaluation.evaluation","model_hr_evaluation_evaluation","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_evaluation_manager","hr_evaluation.evaluation","model_hr_evaluation_evaluation","base.group_hr_manager",1,0,0,0
-"access_hr_evaluation_plan","hr_evaluation.plan","model_hr_evaluation_evaluation","base.group_hr_user",1,0,0,0
-"access_hr_evaluation_plan_manager","hr_evaluation.plan","model_hr_evaluation_plan","base.group_hr_manager",1,0,0,0
-"access_hr_evaluation_plan_phase","hr_evaluation.plan.phase","model_hr_evaluation_plan_phase","base.group_hr_user",1,0,0,0
-"access_hr_evaluation_plan_phase_manager","hr_evaluation.plan.phase","model_hr_evaluation_plan_phase","base.group_hr_manager",1,0,0,0
-"access_hr_evaluation_interview","hr.evaluation.interview","model_hr_evaluation_interview","base.group_hr_user",1,1,1,1
-"access_hr_evaluation_interview_manager","hr.evaluation.interview","model_hr_evaluation_interview","base.group_hr_manager",1,0,0,0
-"access_hr_evaluation_report","hr.evaluation.report","model_hr_evaluation_report","base.group_hr_manager",1,0,0,0
+"access_hr_evaluation_evaluation_user","hr_evaluation.evaluation.user","model_hr_evaluation_evaluation","base.group_hr_user",1,1,1,1
+"access_hr_evaluation_evaluation_manager","hr_evaluation.evaluation.manager","model_hr_evaluation_evaluation","base.group_hr_manager",1,1,1,1
+"access_hr_evaluation_plan_user","hr_evaluation.plan.user","model_hr_evaluation_evaluation","base.group_hr_user",1,0,0,0
+"access_hr_evaluation_plan_manager","hr_evaluation.plan.manager","model_hr_evaluation_plan","base.group_hr_manager",1,0,0,0
+"access_hr_evaluation_plan_phase_user","hr_evaluation.plan.phase.user","model_hr_evaluation_plan_phase","base.group_hr_user",1,0,0,0
+"access_hr_evaluation_plan_phase_manager","hr_evaluation.plan.phase.manager","model_hr_evaluation_plan_phase","base.group_hr_manager",1,0,0,0
+"access_hr_evaluation_interview_user","hr.evaluation.interview.user","model_hr_evaluation_interview","base.group_hr_user",1,1,1,1
+"access_hr_evaluation_interview_manager","hr.evaluation.interview.manager","model_hr_evaluation_interview","base.group_hr_manager",1,1,1,1
+"access_hr_evaluation_report","hr.evaluation.report","model_hr_evaluation_report","base.group_hr_manager",1,1,1,1
"access_hr_evaluation_plan","hr_evaluation.plan","model_hr_evaluation_plan","base.group_system",1,1,1,1
+"access_hr_evaluation_plan_phase_system","hr_evaluation.plan.phase.system","model_hr_evaluation_plan_phase","base.group_system",1,1,1,1
+"access_hr_evaluation_evaluation_system","hr_evaluation.evaluation.system","model_hr_evaluation_evaluation","base.group_system",1,0,0,0
+"access_hr_evaluation_interview_system","hr.evaluation.interview.system","model_hr_evaluation_interview","base.group_system",1,0,0,0
diff --git a/addons/hr_evaluation/test/test_hr_evaluation.yml b/addons/hr_evaluation/test/test_hr_evaluation.yml
index cdee65dde26..1d2acbcbd49 100644
--- a/addons/hr_evaluation/test/test_hr_evaluation.yml
+++ b/addons/hr_evaluation/test/test_hr_evaluation.yml
@@ -106,6 +106,13 @@
plan_id: 'hr_evaluation_plan_managersplan0'
progress: 0.0
state: draft
+-
+ I create an Interview Request record
+-
+ !record {model: hr.evaluation.interview, id: hr_evaluation_interview_0}:
+ date_deadline: '2010-06-28'
+ evaluation_id: 'hr_evaluation_evaluation_0'
+ survey_id: hr_evaluation.survey_0
-
I check that evaluation is in "Draft" state.
-
@@ -121,7 +128,7 @@
I close this servey request by giving answer of survey question.
-
!python {model: hr.evaluation.interview}: |
- self.survey_req_done(cr, uid, [ref('hr_evaluation_evaluation_0')])
+ self.survey_req_done(cr, uid, [ref('hr_evaluation_interview_0')])
-
I click on "Final Validation" button to finalise evaluation.
-
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index 109e658d433..aa45f4aa888 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -54,9 +54,8 @@
],
'demo_xml': [
'hr_expense_demo.xml',
-# 'hr.expense.expense.csv'
],
- 'test': ['test/test_hr_expense.yml'],
+ 'test': ['test/test_hr_expense.yml'],
'installable': True,
'active': False,
'certificate': '0062479841789',
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 98eb7b9dc52..c5818536f8c 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -21,6 +21,7 @@
import time
+import netsvc
from osv import fields, osv
from tools.translate import _
@@ -89,15 +90,14 @@ class hr_expense_expense(osv.osv):
\nIf the admin accepts it, the state is \'Accepted\'.\n If an invoice is made for the expense request, the state is \'Invoiced\'.\n If the expense is paid to user, the state is \'Reimbursed\'.'),
}
_defaults = {
- 'date' : lambda *a: time.strftime('%Y-%m-%d'),
- 'state': lambda *a: 'draft',
+ 'date' : time.strftime('%Y-%m-%d'),
+ 'state': 'draft',
'employee_id' : _employee_get,
'user_id' : lambda cr, uid, id, c={}: id,
'currency_id': _get_currency,
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
def expense_confirm(self, cr, uid, ids, *args):
- #for exp in self.browse(cr, uid, ids):
self.write(cr, uid, ids, {
'state':'confirm',
'date_confirm': time.strftime('%Y-%m-%d')
@@ -125,6 +125,8 @@ class hr_expense_expense(osv.osv):
invoice_obj = self.pool.get('account.invoice')
property_obj = self.pool.get('ir.property')
sequence_obj = self.pool.get('ir.sequence')
+ analytic_journal_obj = self.pool.get('account.analytic.journal')
+ account_journal = self.pool.get('account.journal')
for exp in self.browse(cr, uid, ids):
lines = []
for l in exp.line_ids:
@@ -171,10 +173,24 @@ class hr_expense_expense(osv.osv):
to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [], payment_term_id, None)
if to_update:
inv.update(to_update['value'])
+ journal = False
if exp.journal_id:
inv['journal_id']=exp.journal_id.id
+ journal = exp.journal_id
+ else:
+ journal_id = invoice_obj._get_journal(cr, uid, context={'type': 'in_invoice'})
+ if journal_id:
+ inv['journal_id'] = journal_id
+ journal = account_journal.browse(cr, uid, journal_id)
+ if journal and not journal.analytic_journal_id:
+ analytic_journal_ids = analytic_journal_obj.search(cr, uid, [('type','=','purchase')])
+ if analytic_journal_ids:
+ account_journal.write(cr, uid, [journal.id],{'analytic_journal_id':analytic_journal_ids[0]})
inv_id = invoice_obj.create(cr, uid, inv, {'type': 'in_invoice'})
invoice_obj.button_compute(cr, uid, [inv_id], {'type': 'in_invoice'}, set_total=True)
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'account.invoice', inv_id, 'invoice_open', cr)
+
self.write(cr, uid, [exp.id], {'invoice_id': inv_id, 'state': 'invoiced'})
res = inv_id
return res
@@ -185,7 +201,7 @@ class product_product(osv.osv):
_inherit = "product.product"
_columns = {
'hr_expense_ok': fields.boolean('Can Constitute an Expense', help="Determines if the product can be visible in the list of product within a selection from an HR expense sheet line."),
- }
+ }
product_product()
@@ -219,7 +235,7 @@ class hr_expense_line(osv.osv):
_defaults = {
'unit_quantity': 1,
'date_value': time.strftime('%Y-%m-%d'),
- }
+ }
_order = "sequence"
def onchange_product_id(self, cr, uid, ids, product_id, uom_id, employee_id, context=None):
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 06c33fe46f7..4d25c01e773 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -13,7 +13,7 @@
-
+
@@ -67,6 +67,7 @@
+
@@ -88,7 +89,7 @@
-
+
@@ -104,13 +105,17 @@
-
+
+
-
+
+
+
+
-
+
@@ -159,10 +164,11 @@
form
{"search_default_user_id":uid}
+ The OpenERP expenses management module allows you to track the full flow. Every month, the employees record their expenses. At the end of the month, their managers validates the expenses sheets which creates costs on projects/analytic accounts. The accountant validates the proposed entries and the employee can be reimbursed. You can also reinvoice the customer at the end of the flow.
-
-
+
+
product.product.expense.form
diff --git a/addons/hr_expense/hr_expense_workflow.xml b/addons/hr_expense/hr_expense_workflow.xml
index 972cdcaab8f..cfeee8387ce 100644
--- a/addons/hr_expense/hr_expense_workflow.xml
+++ b/addons/hr_expense/hr_expense_workflow.xml
@@ -55,7 +55,6 @@
refused
function
expense_canceled()
-
@@ -79,13 +78,6 @@
-
-
diff --git a/addons/hr_expense/i18n/de.po b/addons/hr_expense/i18n/de.po
index b99629396c6..5e621e1b374 100644
--- a/addons/hr_expense/i18n/de.po
+++ b/addons/hr_expense/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 06:45+0000\n"
+"PO-Revision-Date: 2010-08-29 10:18+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 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense
@@ -77,7 +77,7 @@ msgstr "Akzeptiert"
#. module: hr_expense
#: field:hr.expense.line,uom_id:0
msgid "UoM"
-msgstr "UoM"
+msgstr "ME"
#. module: hr_expense
#: view:hr.expense.expense:0
@@ -431,7 +431,7 @@ msgstr "Ausgabe wurde verworfen"
#: rml:hr.expense:0
#: field:hr.expense.line,unit_amount:0
msgid "Unit Price"
-msgstr "Preis/UoM"
+msgstr "Preis/ME"
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.expense_all_valid
diff --git a/addons/hr_expense/i18n/pt_BR.po b/addons/hr_expense/i18n/pt_BR.po
index 7d83ac03342..2873d3337c4 100644
--- a/addons/hr_expense/i18n/pt_BR.po
+++ b/addons/hr_expense/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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 07:51+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-12 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense
diff --git a/addons/hr_expense/i18n/ru.po b/addons/hr_expense/i18n/ru.po
index 9de7fe075f5..fc72ab921c1 100644
--- a/addons/hr_expense/i18n/ru.po
+++ b/addons/hr_expense/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-03 05:46+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-25 06:59+0000\n"
+"Last-Translator: Nikolay Chesnokov \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 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-27 03:41+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense
@@ -29,7 +29,7 @@ msgstr "Позиция расходов"
#. module: hr_expense
#: model:process.node,note:hr_expense.process_node_reimbursement0
msgid "The accoutant reimburse the expenses"
-msgstr ""
+msgstr "Бухгалтер возмещает расходы"
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.expense_all_confirm
@@ -40,7 +40,7 @@ msgstr "Расходы в ожидании проверки"
#. module: hr_expense
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия."
#. module: hr_expense
#: field:hr.expense.expense,date_confirm:0
diff --git a/addons/hr_expense/i18n/tr.po b/addons/hr_expense/i18n/tr.po
index f87fa7b0b6a..08af4fe9665 100644
--- a/addons/hr_expense/i18n/tr.po
+++ b/addons/hr_expense/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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 08: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-12 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense
diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv
index 7489959057a..83636da5257 100644
--- a/addons/hr_expense/security/ir.model.access.csv
+++ b/addons/hr_expense/security/ir.model.access.csv
@@ -1,8 +1,10 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_expense_expense","hr.expense.expense","model_hr_expense_expense","base.group_hr_user",1,1,1,1
+"access_hr_expense_expense_user","hr.expense.expense.user","model_hr_expense_expense","base.group_hr_user",1,1,1,1
"access_hr_expense_line","hr.expense.line","model_hr_expense_line","base.group_hr_user",1,1,1,1
"access_hr_expense_report","hr.expense.report","model_hr_expense_report","base.group_hr_manager",1,0,0,0
"access_product_product_hr_expense","product.product.hr.expense","product.model_product_product","base.group_hr_user",1,0,0,0
"access_product_template_hr_expense","product.template.hr.expense","product.model_product_template","base.group_hr_user",1,0,0,0
"access_product_uom_hr_expense","product.uom.hr.expense","product.model_product_uom","base.group_hr_user",1,0,0,0
"access_product_price_type","product.price.type","product.model_product_price_type","base.group_hr_user",1,1,1,1
+"access_hr_expense_expense_manager","hr.expense.expense.manager","model_hr_expense_expense","base.group_hr_manager",1,0,0,0
+"access_hr_expense_expense_system","hr.expense.expense.system","model_hr_expense_expense","base.group_system",1,0,0,0
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index e093526ad34..7d68b216494 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -29,7 +29,7 @@
"description": """Human Ressources: Holidays tracking and workflow
This module allows you to manage leaves and leaves requests.
- Implements a dashboard for human resource management that includes.
+ Implements a dashboard for human resource management that includes.
* My Leaves
* My Expenses
Note that:
@@ -63,7 +63,6 @@
'wizard/hr_holidays_summary_department_view.xml',
'wizard/hr_holidays_summary_employees_view.xml',
'board_hr_holidays_view.xml',
- #'process/hr_holidays_process.xml'
],
'demo_xml': ['hr_holidays_demo.xml',],
'test': ['test/test_hr_holiday.yml'],
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 4c27c2f7767..b5f4534454f 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -108,7 +108,7 @@ class hr_holidays_status(osv.osv):
_defaults = {
'color_name': 'red',
'active': True,
- }
+ }
hr_holidays_status()
@@ -147,7 +147,7 @@ class hr_holidays(osv.osv):
'category_id': fields.many2one('hr.employee.category', "Category", help='Category Of employee'),
'holiday_type': fields.selection([('employee','By Employee'),('category','By Employee Category')], 'Holiday Type', help='By Employee: Allocation/Request for individual Employee, By Employee Category: Allocation/Request for group of employees in category'),
'manager_id2': fields.many2one('hr.employee', 'Second Validator', readonly=True, help='This area is automaticly filled by the user who validate the leave with second level (If Leave type need second validation)')
- }
+ }
_defaults = {
'employee_id': _employee_get ,
@@ -156,7 +156,7 @@ class hr_holidays(osv.osv):
'allocation_type': 'employee',
'user_id': lambda obj, cr, uid, context: uid,
'holiday_type': 'employee'
- }
+ }
def _create_resource_leave(self, cr, uid, vals, context=None):
'''This method will create entry in resource calendar leave object at the time of holidays validated '''
@@ -327,7 +327,7 @@ class hr_holidays(osv.osv):
}
self._create_resource_leave(cr, uid, vals)
elif record.holiday_type == 'category' and record.type == 'remove':
- emp_ids = obj_emp.search(cr, uid, [('category_id', '=', record.category_id.id)])
+ emp_ids = obj_emp.search(cr, uid, [('category_ids', '=', record.category_id.id)])
for emp in obj_emp.browse(cr, uid, emp_ids):
vals = {
'name': record.name,
@@ -430,20 +430,6 @@ class hr_holidays(osv.osv):
self.holidays_confirm(cr, uid, holiday_ids)
self.holidays_validate(cr, uid, holiday_ids)
- #if record.holiday_status_id.categ_id and record.date_from and record.date_to and record.employee_id:
-# if record.holiday_status_id.categ_id and record.date_from and record.date_to:
-# vals={}
-# vals['name']=record.name
-# vals['categ_id']=record.holiday_status_id.categ_id.id
-# epoch_c = time.mktime(time.strptime(record.date_to,'%Y-%m-%d %H:%M:%S'))
-# epoch_d = time.mktime(time.strptime(record.date_from,'%Y-%m-%d %H:%M:%S'))
-# diff_day = (epoch_c - epoch_d)/(3600*24)
-# vals['duration'] = (diff_day) * 8
-# vals['note'] = record.notes
-## vals['user_id'] = record.user_id.id
-# vals['date'] = record.date_from
-# if record.holiday_type=='employee':
-# vals['user_id'] = record.user_id.id
if record.holiday_status_id.categ_id and record.date_from and record.date_to and record.employee_id:
diff_day = self._get_number_of_days(record.date_from, record.date_to)
vals = {
@@ -466,7 +452,7 @@ class resource_calendar_leaves(osv.osv):
_description = "Leave Detail"
_columns = {
'holiday_id': fields.many2one("hr.holidays", "Holiday"),
- }
+ }
resource_calendar_leaves()
diff --git a/addons/hr_holidays/hr_holidays_demo.xml b/addons/hr_holidays/hr_holidays_demo.xml
index 2ea95b76620..bfa051dff7a 100644
--- a/addons/hr_holidays/hr_holidays_demo.xml
+++ b/addons/hr_holidays/hr_holidays_demo.xml
@@ -1,52 +1,52 @@
-
+
-
-
- Casual Leave
- True
- black
-
+
+
+ Casual Leave
+ True
+ black
+
-
- Casual Leave for Fabien Pinckaers
-
- add
- 12
-
-
+
+ Casual Leave for Fabien Pinckaers
+
+ add
+ 12
+
+
-
- Trip with Family
-
- 2010-01-04 08:00
- 2010-01-06 18:00
- remove
- 3
-
-
+
+ Trip with Family
+
+
+
+ remove
+ 3
+
+
-
-
- Sick Leave
- True
- red
-
+
+
+ Sick Leave
+ True
+ red
+
-
- Doctor Appointment
-
- 2010-02-01 00:00
- 2010-02-03 08:00
- remove
- draft
- 3
-
-
+
+ Doctor Appointment
+
+
+
+ remove
+ draft
+ 3
+
+
-
-
+
+
-
+
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index 8ecdb0d2cd6..9e8c9d527b4 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -36,6 +36,18 @@
+
+
+ Leave Request
+ hr.holidays
+ calendar
+
+
+
+
+
+
+
Leave Request
hr.holidays
@@ -153,10 +165,6 @@
-
-
@@ -225,23 +233,6 @@
-
[('type','=','remove')]
{'search_default_user_id':uid}
+ Leaves requests can be recorded by employees and validated by their managers. Once a leave request is validated it appears automatically in the agenda of the employee. You can define several allowance types (paid holidays, sickness, etc) and manage allowances per type.
@@ -272,6 +264,13 @@
+
+
+ calendar
+
+
+
+
@@ -316,7 +315,6 @@
parent="menu_open_ask_holidays"
id="menu_open_company_allocation"
action="open_company_allocation"
- groups="base.group_hr_manager"
sequence="40"/>
@@ -358,7 +356,7 @@
-
diff --git a/addons/hr_holidays/hr_holidays_workflow.xml b/addons/hr_holidays/hr_holidays_workflow.xml
index b6b036e7419..6dcd55ff162 100644
--- a/addons/hr_holidays/hr_holidays_workflow.xml
+++ b/addons/hr_holidays/hr_holidays_workflow.xml
@@ -113,12 +113,6 @@
second_validate
-
-
diff --git a/addons/hr_holidays/i18n/hi.po b/addons/hr_holidays/i18n/hi.po
new file mode 100644
index 00000000000..fc3e8431931
--- /dev/null
+++ b/addons/hr_holidays/i18n/hi.po
@@ -0,0 +1,728 @@
+# Hindi 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-21 06:12+0000\n"
+"Last-Translator: vir (Open ERP) \n"
+"Language-Team: Hindi \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-22 03:51+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new
+msgid "New Holidays Request"
+msgstr "नया छुट्टी के लिए अनुरोध"
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_all_holiday
+msgid "All Holidays Requests"
+msgstr "सभी छुट्टी अनुरोध"
+
+#. module: hr_holidays
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "कार्य की परिभाषा में मॉडल का नाम अमान्य है."
+
+#. module: hr_holidays
+#: field:hr.holidays.per.user,remaining_leaves:0
+msgid "Remaining Leaves"
+msgstr "शेष छुट्टी"
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_holiday_waiting
+msgid "Requests Awaiting for Validation"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Blue"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Brown"
+msgstr "भूरा"
+
+#. module: hr_holidays
+#: xsl:holidays.summary:0
+msgid "of the"
+msgstr ""
+
+#. module: hr_holidays
+#: xsl:holidays.summary:0
+msgid "Off-Days' Summary"
+msgstr "Off-दिन 'सारांश"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+#: view:hr.holidays.per.user:0
+#: model:process.transition,name:hr_holidays.process_transition_employeeholidays0
+msgid "Employee Holidays"
+msgstr "कर्मचारी छुट्टियाँ"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: hr_holidays
+#: view:hr.holidays.per.user:0
+#: field:hr.holidays.per.user,holiday_ids:0
+#: model:ir.model,name:hr_holidays.model_hr_holidays
+#: model:process.node,name:hr_holidays.process_node_holidays0
+msgid "Holidays"
+msgstr "छुट्टियां"
+
+#. module: hr_holidays
+#: xsl:holidays.summary:0
+msgid "to"
+msgstr "को"
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Cyan"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Green"
+msgstr "हल्का हरा"
+
+#. module: hr_holidays
+#: model:process.transition,name:hr_holidays.process_transition_employeedeclaration0
+msgid "Employee Declaration"
+msgstr "कर्मचारी घोषणा"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+#: selection:hr.holidays,state:0
+#: model:process.transition.action,name:hr_holidays.process_transition_action_validate0
+msgid "Validate"
+msgstr "मान्य"
+
+#. module: hr_holidays
+#: model:process.transition,name:hr_holidays.process_transition_refusedrequest0
+msgid "Refused Request"
+msgstr "अनुरोध मना कर दिया"
+
+#. module: hr_holidays
+#: model:process.node,name:hr_holidays.process_node_approved0
+msgid "Approved"
+msgstr "स्वीकृत"
+
+#. module: hr_holidays
+#: selection:hr.holidays.summary.employee,init,holiday_type:0
+msgid "Both"
+msgstr "दोनों"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+msgid "Refuse"
+msgstr "अस्वीकार"
+
+#. module: hr_holidays
+#: wizard_button:hr.holidays.summary,notify,end:0
+#: wizard_button:hr.holidays.summary.employee,notify,end:0
+msgid "Ok"
+msgstr "ओके"
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday
+msgid "My Holidays Requests"
+msgstr "मेरी छुट्टियों का अनुरोध"
+
+#. module: hr_holidays
+#: field:hr.holidays,notes:0
+#: field:hr.holidays.per.user,notes:0
+msgid "Notes"
+msgstr "टिप्पणी"
+
+#. module: hr_holidays
+#: field:hr.holidays,holiday_status:0
+#: field:hr.holidays.log,holiday_status:0
+#: field:hr.holidays.per.user,holiday_status:0
+msgid "Holiday's Status"
+msgstr "छुट्टियों की स्थिति"
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_refusedrequest0
+msgid "Request is refused."
+msgstr "अनुरोध मना कर दिया है."
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays
+msgid "Holidays Management"
+msgstr "छुट्टियों का प्रबंधन"
+
+#. module: hr_holidays
+#: xsl:holidays.summary:0
+msgid "Analyze from"
+msgstr "विश्लेषण से"
+
+#. module: hr_holidays
+#: model:ir.actions.report.xml,name:hr_holidays.report_holidays_summary
+msgid "Summary Of Holidays"
+msgstr "छुट्टियों का सारांश"
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_calendar0
+msgid "The holiday is set in the calendar"
+msgstr "छुट्टी कैलेंडर में सेट है"
+
+#. module: hr_holidays
+#: view:hr.holidays.status:0
+msgid "Holiday status"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.model,name:hr_holidays.model_hr_holidays_status
+msgid "Holidays Status"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays,date_to:0
+msgid "Vacation end day"
+msgstr "छुट्टी का अंतिम दिन"
+
+#. module: hr_holidays
+#: view:hr.holidays.per.user:0
+msgid "Holidays Allowed"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_legaldeclaration0
+msgid "Legal Declaration Document to declare new employee"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Magenta"
+msgstr "मजेंटा"
+
+#. module: hr_holidays
+#: model:ir.model,name:hr_holidays.model_hr_holidays_per_user
+msgid "Holidays Per User"
+msgstr ""
+
+#. module: hr_holidays
+#: view:hr.holidays.status:0
+msgid "Define holiday status"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.summary,init,holiday_type:0
+#: selection:hr.holidays.summary.employee,init,holiday_type:0
+msgid "Confirmed"
+msgstr "पुष्टि"
+
+#. module: hr_holidays
+#: wizard_field:hr.holidays.summary,init,date_from:0
+#: wizard_field:hr.holidays.summary.employee,init,date_from:0
+msgid "From"
+msgstr "के द्वारा"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+#: model:process.transition.action,name:hr_holidays.process_transition_action_confirm0
+msgid "Confirm"
+msgstr "पुष्टि करें"
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_waiting
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_waiting
+msgid "My Awaiting Confirmation Holidays Requests"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays,user_id:0
+msgid "Employee_id"
+msgstr "कर्मचारी आईडी"
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_holidaysdefinition0
+msgid "Encoding of annual available holidays."
+msgstr "वार्षिक उपलब्ध छुट्टियों की एनकोडिंग"
+
+#. module: hr_holidays
+#: field:hr.holidays,employee_id:0
+#: field:hr.holidays.log,employee_id:0
+#: field:hr.holidays.per.user,employee_id:0
+msgid "Employee"
+msgstr "कर्मचारी"
+
+#. module: hr_holidays
+#: selection:hr.holidays,state:0
+msgid "Waiting Validation"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_employeeholidays0
+msgid "Employee get holidays"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Salmon"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Wheat"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays.log,nb_holidays:0
+msgid "Number of Holidays Requested"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.act_hr_employee_holiday_request
+msgid "My Holiday Requests"
+msgstr "मेरी छुट्टी का अनुरोध"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+#: view:hr.holidays.per.user:0
+msgid "Number of Days"
+msgstr "दिनों की संख्या"
+
+#. module: hr_holidays
+#: field:hr.holidays.status,name:0
+#: model:ir.actions.act_window,name:hr_holidays.open_view_holiday_status
+#: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status
+msgid "Holiday Status"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_view:hr.holidays.summary,init:0
+#: wizard_view:hr.holidays.summary.employee,init:0
+msgid "Report Options"
+msgstr ""
+
+#. module: hr_holidays
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "संरचना देखने के लिए अमान्य XML!"
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_approved0
+msgid "His manager approves the request"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_holidaysdefrequest0
+msgid "If holidays available, employee can take it and fill it."
+msgstr "छुट्टियों यदि उपलब्ध है, कर्मचारी इसे ले और भर सकते हैं."
+
+#. module: hr_holidays
+#: wizard_view:hr.holidays.summary.employee,notify:0
+msgid "You have to select at least 1 Employee. Try again."
+msgstr "आप कम से कम 1 कर्मचारी चयन करे. दुबारा कोशिश करें."
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_validate
+msgid "My Validated Holidays Requests"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_field:hr.holidays.summary.employee,init,emp:0
+msgid "Employee(s)"
+msgstr "कर्मचारी"
+
+#. module: hr_holidays
+#: field:hr.holidays,number_of_days:0
+msgid "Number of Days in this Holiday Request"
+msgstr "इस छुट्टी के अनुरोध के दिनों की संख्या"
+
+#. module: hr_holidays
+#: view:hr.holidays.per.user:0
+#: model:ir.actions.act_window,name:hr_holidays.action_holidays_per_user
+#: model:ir.ui.menu,name:hr_holidays.menu_open_holidays_per_user
+msgid "Holidays Per Employee"
+msgstr "प्रति कर्मचारी छुट्टियाँ"
+
+#. module: hr_holidays
+#: field:hr.holidays.status,limit:0
+msgid "Allow to override Limit"
+msgstr "सीमा पार करने के लिए अनुमति दें"
+
+#. module: hr_holidays
+#: field:hr.holidays.log,holiday_user_id:0
+msgid "Holidays user"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Lavender"
+msgstr "लैवेंडर"
+
+#. module: hr_holidays
+#: model:ir.model,name:hr_holidays.model_hr_holidays_log
+msgid "hr.holidays.log"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.wizard,name:hr_holidays.wizard_holidays_summary
+msgid "Print Summary of Employee's Holidays"
+msgstr "कर्मचारी छुट्टियों का प्रिंट सारांश"
+
+#. module: hr_holidays
+#: model:process.node,name:hr_holidays.process_node_calendar0
+msgid "Calendar"
+msgstr "कैलेन्डर"
+
+#. module: hr_holidays
+#: field:hr.holidays,date_from:0
+msgid "Vacation start day"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.module.module,description:hr_holidays.module_meta_information
+msgid ""
+"Human Ressources: Holidays tracking and workflow\n"
+"\n"
+" This module allows you to manage holidays and holidays requests. For "
+"each employee, you can also define a number of available holidays per "
+"holiday status.\n"
+"\n"
+" Note that:\n"
+" - A synchronisation with an internal agenda (use of the CRM module) is "
+"possible: in order to automatically create a case when an holiday request is "
+"accepted, you have to link the holidays status to a case section. You can "
+"set up this info and your colour preferences in\n"
+" HR / Configuration / Holidays Status\n"
+" - An employee can make a negative holiday request (holiday request of -2 "
+"days for example), this is considered by the system as an ask for more off-"
+"days. It will increase his total of that holiday status available (if the "
+"request is accepted).\n"
+" - There are two ways to print the employee's holidays:\n"
+" * The first will allow to choose employees by department and is used "
+"by clicking the menu item located in\n"
+" HR / Holidays Request / Print Summary of Holidays\n"
+" * The second will allow you to choose the holidays report for "
+"specific employees. Go on the list\n"
+" HR / Employees / Employees\n"
+" then select the ones you want to choose, click on the print icon "
+"and select the option\n"
+" 'Print Summary of Employee's Holidays'\n"
+" - The wizard allows you to choose if you want to print either the "
+"Confirmed & Validated holidays or only the Validated ones. These states must "
+"be set up by a user from the group 'HR' and with the role 'holidays'. You "
+"can define these features in the security tab from the user data in\n"
+" Administration / Users / Users\n"
+" for example, you maybe will do it for the user 'admin'.\n"
+msgstr ""
+"मानव संसाधन : छुट्टियाँ ट्रैकिंग और कार्यप्रवाह\n"
+"इस मॉड्यूल से तुम छुट्टियों और छुट्टियों के अनुरोधों को प्रबंधित करने की "
+"अनुमति देता है.\n"
+
+#. module: hr_holidays
+#: wizard_view:hr.holidays.summary,notify:0
+#: wizard_view:hr.holidays.summary.employee,notify:0
+msgid "Notification"
+msgstr "अधिसूचना"
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_holidaysrequest0
+msgid "Employee fills in a request for holidays"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_setholiday0
+msgid "Holiday is set in the calendar."
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Coral"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_available
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_available
+msgid "My Available Holidays"
+msgstr "मेरी उपलब्ध छुट्टियाँ"
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Black"
+msgstr "काला"
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_refuse
+msgid "My Refused Holidays Requests"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.transition,name:hr_holidays.process_transition_setholiday0
+msgid "Set Holiday"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_draft
+msgid "My Draft Holidays Requests"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays.per.user,max_leaves:0
+msgid "Maximum Leaves Allowed"
+msgstr "अधिकतम छुट्टियां की अनुमति"
+
+#. module: hr_holidays
+#: field:hr.holidays,state:0
+msgid "Status"
+msgstr "स्थिति"
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Ivory"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday
+msgid "My Holidays Request"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays.status,color_name:0
+msgid "Color of the status"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.summary,init,holiday_type:0
+msgid "Both Validated and Confirmed"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays.per.user,leaves_taken:0
+msgid "Leaves Already Taken"
+msgstr "पहले से ही ली हुई छुट्टियों"
+
+#. module: hr_holidays
+#: xsl:holidays.summary:0
+msgid "holidays."
+msgstr "छुट्टियां"
+
+#. module: hr_holidays
+#: selection:hr.holidays,state:0
+msgid "draft"
+msgstr "ड्राफ़्ट"
+
+#. module: hr_holidays
+#: field:hr.holidays.per.user,user_id:0
+msgid "User"
+msgstr "उपयोगकर्ता"
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_employeedeclaration0
+msgid "Document for employee"
+msgstr "कर्मचारी के लिए दस्तावेज़"
+
+#. module: hr_holidays
+#: field:hr.holidays.log,date:0
+msgid "Date"
+msgstr "तारीख़"
+
+#. module: hr_holidays
+#: model:process.transition.action,name:hr_holidays.process_transition_action_reufse0
+msgid "Reufse"
+msgstr "मना करना"
+
+#. module: hr_holidays
+#: field:hr.holidays.status,section_id:0
+msgid "Section"
+msgstr "विभाग"
+
+#. module: hr_holidays
+#: field:hr.holidays,manager_id:0
+msgid "Holiday manager"
+msgstr "छुट्टी प्रबंधक"
+
+#. module: hr_holidays
+#: field:hr.holidays.per.user,active:0
+#: field:hr.holidays.status,active:0
+msgid "Active"
+msgstr "सक्रिय"
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_draft
+msgid "My Holidays Request Draft"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.transition,name:hr_holidays.process_transition_approvedrequest0
+msgid "Approved Request"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,name:hr_holidays.process_node_holidaysrequest0
+msgid "Holidays Request"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.ui.menu,name:hr_holidays.menu_action_holiday_waiting
+msgid "Holidays Requests Awaiting for Validation"
+msgstr ""
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+msgid "General"
+msgstr "सामान्य"
+
+#. module: hr_holidays
+#: view:hr.holidays.per.user:0
+msgid "General Information"
+msgstr "सामान्य जानकारी"
+
+#. module: hr_holidays
+#: view:hr.holidays:0
+#: selection:hr.holidays,state:0
+#: wizard_button:hr.holidays.summary,init,end:0
+#: wizard_button:hr.holidays.summary.employee,init,end:0
+msgid "Cancel"
+msgstr "रद्द करें"
+
+#. module: hr_holidays
+#: model:process.transition,name:hr_holidays.process_transition_holidaysdefrequest0
+msgid "Holidays def Request"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.summary,init,holiday_type:0
+#: selection:hr.holidays.summary.employee,init,holiday_type:0
+msgid "Validated"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_refuse
+msgid "My Holidays Request Refused"
+msgstr ""
+
+#. module: hr_holidays
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_button:hr.holidays.summary,init,checkdept:0
+#: wizard_button:hr.holidays.summary.employee,init,checkemp:0
+msgid "Print"
+msgstr "प्रिंट"
+
+#. module: hr_holidays
+#: model:ir.actions.wizard,name:hr_holidays.holidays_summary
+#: model:ir.ui.menu,name:hr_holidays.menu_holidays_summary
+msgid "Print Summary of Holidays"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_field:hr.holidays.summary,init,depts:0
+msgid "Department(s)"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays,name:0
+msgid "Description"
+msgstr "विवरण"
+
+#. module: hr_holidays
+#: selection:hr.holidays,state:0
+#: model:process.node,name:hr_holidays.process_node_refused0
+msgid "Refused"
+msgstr "मना कर दिया"
+
+#. module: hr_holidays
+#: model:process.transition,note:hr_holidays.process_transition_approvedrequest0
+msgid "Request is approved."
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,name:hr_holidays.process_node_holidaysdefinition0
+msgid "Holidays Definition"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_field:hr.holidays.summary,init,holiday_type:0
+#: wizard_field:hr.holidays.summary.employee,init,holiday_type:0
+msgid "Select Holiday Type"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays,case_id:0
+msgid "Case"
+msgstr "केस"
+
+#. module: hr_holidays
+#: field:hr.holidays,holiday_user_id:0
+msgid "Holiday per user"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_holidays0
+msgid "Encode number of available holidays"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,name:hr_holidays.process_node_legaldeclaration0
+msgid "Secretariat Social"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Violet"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Red"
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.module.module,shortdesc:hr_holidays.module_meta_information
+msgid "Human Resources: Holidays management"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.process,name:hr_holidays.process_process_holidaysprocess0
+msgid "Holidays Process"
+msgstr ""
+
+#. module: hr_holidays
+#: wizard_view:hr.holidays.summary,notify:0
+msgid "You have to select at least 1 Department. Try again."
+msgstr ""
+
+#. module: hr_holidays
+#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_validate
+msgid "My Holidays Request Validated"
+msgstr ""
+
+#. module: hr_holidays
+#: field:hr.holidays.log,holiday_req_id:0
+msgid "Holiday Request ID"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Yellow"
+msgstr ""
+
+#. module: hr_holidays
+#: selection:hr.holidays.status,color_name:0
+msgid "Light Pink"
+msgstr ""
+
+#. module: hr_holidays
+#: model:process.node,note:hr_holidays.process_node_refused0
+msgid "His manager refuses the request"
+msgstr ""
diff --git a/addons/hr_holidays/i18n/it.po b/addons/hr_holidays/i18n/it.po
index 253f6c22fb7..f11d29d5dde 100644
--- a/addons/hr_holidays/i18n/it.po
+++ b/addons/hr_holidays/i18n/it.po
@@ -7,71 +7,71 @@ 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-09 13:38+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-19 05:39+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 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-20 03:39+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new
msgid "New Holidays Request"
-msgstr ""
+msgstr "Nuova richiesta di ferie"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_all_holiday
msgid "All Holidays Requests"
-msgstr ""
+msgstr "Tutte le richieste di ferie"
#. module: hr_holidays
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Nome modello non valido nella definizione dell'azione."
#. module: hr_holidays
#: field:hr.holidays.per.user,remaining_leaves:0
msgid "Remaining Leaves"
-msgstr ""
+msgstr "Permessi rimanenti"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_holiday_waiting
msgid "Requests Awaiting for Validation"
-msgstr ""
+msgstr "Richieste in attesa di validazione"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Blue"
-msgstr ""
+msgstr "Blu Chiaro"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Brown"
-msgstr ""
+msgstr "Marrone"
#. module: hr_holidays
#: xsl:holidays.summary:0
msgid "of the"
-msgstr ""
+msgstr "del/dei"
#. module: hr_holidays
#: xsl:holidays.summary:0
msgid "Off-Days' Summary"
-msgstr ""
+msgstr "Riepilogo giorni di assenza"
#. module: hr_holidays
#: view:hr.holidays:0
#: view:hr.holidays.per.user:0
#: model:process.transition,name:hr_holidays.process_transition_employeeholidays0
msgid "Employee Holidays"
-msgstr ""
+msgstr "Ferie del dipentente"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Imposta come Bozza"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
@@ -79,27 +79,27 @@ msgstr ""
#: model:ir.model,name:hr_holidays.model_hr_holidays
#: model:process.node,name:hr_holidays.process_node_holidays0
msgid "Holidays"
-msgstr ""
+msgstr "Ferie"
#. module: hr_holidays
#: xsl:holidays.summary:0
msgid "to"
-msgstr ""
+msgstr "a"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Cyan"
-msgstr ""
+msgstr "Azzurro Chiaro"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Green"
-msgstr ""
+msgstr "Verde chiaro"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_employeedeclaration0
msgid "Employee Declaration"
-msgstr ""
+msgstr "Dichiarazione del dipendente"
#. module: hr_holidays
#: view:hr.holidays:0
@@ -111,7 +111,7 @@ msgstr "Convalida"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_refusedrequest0
msgid "Refused Request"
-msgstr ""
+msgstr "Richiesta rifiutata"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_approved0
@@ -121,113 +121,113 @@ msgstr "Approvato"
#. module: hr_holidays
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Both"
-msgstr ""
+msgstr "Entrambe"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "Refuse"
-msgstr ""
+msgstr "Rifiuta"
#. module: hr_holidays
#: wizard_button:hr.holidays.summary,notify,end:0
#: wizard_button:hr.holidays.summary.employee,notify,end:0
msgid "Ok"
-msgstr ""
+msgstr "Ok"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday
msgid "My Holidays Requests"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie"
#. module: hr_holidays
#: field:hr.holidays,notes:0
#: field:hr.holidays.per.user,notes:0
msgid "Notes"
-msgstr ""
+msgstr "Annotazioni"
#. module: hr_holidays
#: field:hr.holidays,holiday_status:0
#: field:hr.holidays.log,holiday_status:0
#: field:hr.holidays.per.user,holiday_status:0
msgid "Holiday's Status"
-msgstr ""
+msgstr "Stato delle Ferie"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_refusedrequest0
msgid "Request is refused."
-msgstr ""
+msgstr "La richiesta è stata rifiutata"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays
msgid "Holidays Management"
-msgstr ""
+msgstr "Gestione Ferie"
#. module: hr_holidays
#: xsl:holidays.summary:0
msgid "Analyze from"
-msgstr ""
+msgstr "Analizza da"
#. module: hr_holidays
#: model:ir.actions.report.xml,name:hr_holidays.report_holidays_summary
msgid "Summary Of Holidays"
-msgstr ""
+msgstr "Riepilogo delle Ferie"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_calendar0
msgid "The holiday is set in the calendar"
-msgstr ""
+msgstr "Le ferie sono state impostate nel calendario"
#. module: hr_holidays
#: view:hr.holidays.status:0
msgid "Holiday status"
-msgstr ""
+msgstr "Stato delle Ferie"
#. module: hr_holidays
#: model:ir.model,name:hr_holidays.model_hr_holidays_status
msgid "Holidays Status"
-msgstr ""
+msgstr "Stato delle Ferie"
#. module: hr_holidays
#: field:hr.holidays,date_to:0
msgid "Vacation end day"
-msgstr ""
+msgstr "Ultimo giorno di Ferie"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
msgid "Holidays Allowed"
-msgstr ""
+msgstr "Ferie Accordate"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_legaldeclaration0
msgid "Legal Declaration Document to declare new employee"
-msgstr ""
+msgstr "Documento a validità legale per dichiarare un nuovo impiegato"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Magenta"
-msgstr ""
+msgstr "Magenta"
#. module: hr_holidays
#: model:ir.model,name:hr_holidays.model_hr_holidays_per_user
msgid "Holidays Per User"
-msgstr ""
+msgstr "Ferie per Utente"
#. module: hr_holidays
#: view:hr.holidays.status:0
msgid "Define holiday status"
-msgstr ""
+msgstr "Definisci lo Stato delle Ferie"
#. module: hr_holidays
#: selection:hr.holidays.summary,init,holiday_type:0
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Confirmed"
-msgstr ""
+msgstr "Confermato"
#. module: hr_holidays
#: wizard_field:hr.holidays.summary,init,date_from:0
#: wizard_field:hr.holidays.summary.employee,init,date_from:0
msgid "From"
-msgstr ""
+msgstr "Da"
#. module: hr_holidays
#: view:hr.holidays:0
@@ -239,73 +239,73 @@ msgstr "Conferma"
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_waiting
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_waiting
msgid "My Awaiting Confirmation Holidays Requests"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie in attesa di approvazione"
#. module: hr_holidays
#: field:hr.holidays,user_id:0
msgid "Employee_id"
-msgstr ""
+msgstr "ID Impiegato"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_holidaysdefinition0
msgid "Encoding of annual available holidays."
-msgstr ""
+msgstr "Codificazione delle ferie annuali disponibili"
#. module: hr_holidays
#: field:hr.holidays,employee_id:0
#: field:hr.holidays.log,employee_id:0
#: field:hr.holidays.per.user,employee_id:0
msgid "Employee"
-msgstr ""
+msgstr "Dipendente/Impiegato"
#. module: hr_holidays
#: selection:hr.holidays,state:0
msgid "Waiting Validation"
-msgstr ""
+msgstr "In attesa di validazione"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_employeeholidays0
msgid "Employee get holidays"
-msgstr ""
+msgstr "Il dipendente prende ferie"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Salmon"
-msgstr ""
+msgstr "Salmone Chiaro"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Wheat"
-msgstr ""
+msgstr "Beige"
#. module: hr_holidays
#: field:hr.holidays.log,nb_holidays:0
msgid "Number of Holidays Requested"
-msgstr ""
+msgstr "Quantità di ferie richieste"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.act_hr_employee_holiday_request
msgid "My Holiday Requests"
-msgstr ""
+msgstr "Le mie richieste di ferie"
#. module: hr_holidays
#: view:hr.holidays:0
#: view:hr.holidays.per.user:0
msgid "Number of Days"
-msgstr ""
+msgstr "Numero Giorni"
#. module: hr_holidays
#: field:hr.holidays.status,name:0
#: model:ir.actions.act_window,name:hr_holidays.open_view_holiday_status
#: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status
msgid "Holiday Status"
-msgstr ""
+msgstr "Stato delle Ferie"
#. module: hr_holidays
#: wizard_view:hr.holidays.summary,init:0
#: wizard_view:hr.holidays.summary.employee,init:0
msgid "Report Options"
-msgstr ""
+msgstr "Report Opzioni"
#. module: hr_holidays
#: constraint:ir.ui.view:0
@@ -315,74 +315,75 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_approved0
msgid "His manager approves the request"
-msgstr ""
+msgstr "Il suo manager approva la richiesta"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_holidaysdefrequest0
msgid "If holidays available, employee can take it and fill it."
msgstr ""
+"Se le ferie sono disponibili, il dipendente può selezionarle e attribuirsele"
#. module: hr_holidays
#: wizard_view:hr.holidays.summary.employee,notify:0
msgid "You have to select at least 1 Employee. Try again."
-msgstr ""
+msgstr "Devi selezionare almeno un dipendente. Prova di nuovo."
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_validate
msgid "My Validated Holidays Requests"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie convalidate"
#. module: hr_holidays
#: wizard_field:hr.holidays.summary.employee,init,emp:0
msgid "Employee(s)"
-msgstr ""
+msgstr "Dipendente/i"
#. module: hr_holidays
#: field:hr.holidays,number_of_days:0
msgid "Number of Days in this Holiday Request"
-msgstr ""
+msgstr "Numero Giorni in questa Richiesta di Ferie"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
#: model:ir.actions.act_window,name:hr_holidays.action_holidays_per_user
#: model:ir.ui.menu,name:hr_holidays.menu_open_holidays_per_user
msgid "Holidays Per Employee"
-msgstr ""
+msgstr "Ferie per Impiegato"
#. module: hr_holidays
#: field:hr.holidays.status,limit:0
msgid "Allow to override Limit"
-msgstr ""
+msgstr "Permettere di superare il limite"
#. module: hr_holidays
#: field:hr.holidays.log,holiday_user_id:0
msgid "Holidays user"
-msgstr ""
+msgstr "Ferie dell'utente"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Lavender"
-msgstr ""
+msgstr "Lavanda"
#. module: hr_holidays
#: model:ir.model,name:hr_holidays.model_hr_holidays_log
msgid "hr.holidays.log"
-msgstr ""
+msgstr "hr.holidays.log"
#. module: hr_holidays
#: model:ir.actions.wizard,name:hr_holidays.wizard_holidays_summary
msgid "Print Summary of Employee's Holidays"
-msgstr ""
+msgstr "Stampa Riepilogativa Ferie per Dipendente"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_calendar0
msgid "Calendar"
-msgstr ""
+msgstr "Calendario"
#. module: hr_holidays
#: field:hr.holidays,date_from:0
msgid "Vacation start day"
-msgstr ""
+msgstr "Primo giorno di Ferie"
#. module: hr_holidays
#: model:ir.module.module,description:hr_holidays.module_meta_information
@@ -420,164 +421,197 @@ msgid ""
" Administration / Users / Users\n"
" for example, you maybe will do it for the user 'admin'.\n"
msgstr ""
+"Risorse Umane: Tracciamento delle ferie e Workflo\n"
+"\n"
+" Questo modulo ti permette di gestire le ferie e le richieste di ferie. "
+"Per ogni impiegati, puoi inoltre definire un numero di ferie disponibili per "
+"stato ferie.\n"
+"\n"
+" Da notere che:\n"
+" - Una sincronizzazione col un diario interno (ad uso del modulo di CRM) "
+"è possibille: nell'idea di creare automaticamente i Casi quando una "
+"richiesta di Ferie è accettate, puoi collegare lo stato delle ferie alla "
+"Sezione dei Casi. Puoi impostare questa informazione e una tua preferenza di "
+"colore nella sezione \n"
+" HR / Configrazione / Stato Ferie\n"
+" - Un impiegato può fare una richiesta di ferie in negativo (esempio: "
+"richiesta di -2 giorni di ferie), questo è considerato dal sistema come una "
+"richiesta di più giorni di assenza. Questo increamenta il suo totale di "
+"stato di ferie disponibile (se la richiesta è accettata).\n"
+" - Ci sono due modi per stmapre le ferie per impiegato:\n"
+" * Il primo ti permette di scegliere l'impiegato per dipartimento ed "
+"è utilizzato cliccando la voce di menu localizzata in:\n"
+" HR / Richieste di ferie / Stampa un riepilogo delle "
+"ferie\n"
+" * La seconda ti permette di scegliere il Report di Ferie per "
+"specifici impiegati. Vai nella lista:\n"
+" HR / Impiegati / Impiegati\n"
+" seleziona poi quello che vuoi scegliere, clicca sull'icona di "
+"stampa e seleziona l'opzione \n"
+" 'Stampa Riepilogo per le ferie dell'Impigato\n"
+" - La procedura guidata permette di scegliere se vuoi stamare entrambe le "
+"ferie: Confermate & Validate oppure le sole Validate. Questi stati devono "
+"essere impostati da un utente dal menù:\n"
+" Administration / Users / Users\n"
+" per esempio, tu puoi farlo per l'utente 'admin'.\n"
#. module: hr_holidays
#: wizard_view:hr.holidays.summary,notify:0
#: wizard_view:hr.holidays.summary.employee,notify:0
msgid "Notification"
-msgstr ""
+msgstr "Notifica"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_holidaysrequest0
msgid "Employee fills in a request for holidays"
-msgstr ""
+msgstr "Il dipendente riempe una richiesta per le ferie"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_setholiday0
msgid "Holiday is set in the calendar."
-msgstr ""
+msgstr "Le Ferie sono impostate nel calendario."
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Coral"
-msgstr ""
+msgstr "Corallo chiaro"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_available
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_available
msgid "My Available Holidays"
-msgstr ""
+msgstr "Le Mie Ferie Disponibili"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Black"
-msgstr ""
+msgstr "Nero"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_refuse
msgid "My Refused Holidays Requests"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie Rifiutate"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_setholiday0
msgid "Set Holiday"
-msgstr ""
+msgstr "Definisci le Ferie"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_draft
msgid "My Draft Holidays Requests"
-msgstr ""
+msgstr "Le mie bozze di richiesta ferie"
#. module: hr_holidays
#: field:hr.holidays.per.user,max_leaves:0
msgid "Maximum Leaves Allowed"
-msgstr ""
+msgstr "Numero Massimo di permessi"
#. module: hr_holidays
#: field:hr.holidays,state:0
msgid "Status"
-msgstr ""
+msgstr "Stato"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Ivory"
-msgstr ""
+msgstr "Avorio"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday
msgid "My Holidays Request"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie"
#. module: hr_holidays
#: field:hr.holidays.status,color_name:0
msgid "Color of the status"
-msgstr ""
+msgstr "Colore dello Stato"
#. module: hr_holidays
#: selection:hr.holidays.summary,init,holiday_type:0
msgid "Both Validated and Confirmed"
-msgstr ""
+msgstr "Entrambe validate e confermate"
#. module: hr_holidays
#: field:hr.holidays.per.user,leaves_taken:0
msgid "Leaves Already Taken"
-msgstr ""
+msgstr "Permessi già fruiti"
#. module: hr_holidays
#: xsl:holidays.summary:0
msgid "holidays."
-msgstr ""
+msgstr "ferie."
#. module: hr_holidays
#: selection:hr.holidays,state:0
msgid "draft"
-msgstr ""
+msgstr "Bozza"
#. module: hr_holidays
#: field:hr.holidays.per.user,user_id:0
msgid "User"
-msgstr ""
+msgstr "Utente"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_employeedeclaration0
msgid "Document for employee"
-msgstr ""
+msgstr "Documento per il dipendente"
#. module: hr_holidays
#: field:hr.holidays.log,date:0
msgid "Date"
-msgstr ""
+msgstr "Data"
#. module: hr_holidays
#: model:process.transition.action,name:hr_holidays.process_transition_action_reufse0
msgid "Reufse"
-msgstr ""
+msgstr "Rifiuta"
#. module: hr_holidays
#: field:hr.holidays.status,section_id:0
msgid "Section"
-msgstr ""
+msgstr "Sezione"
#. module: hr_holidays
#: field:hr.holidays,manager_id:0
msgid "Holiday manager"
-msgstr ""
+msgstr "Responsabile Ferie"
#. module: hr_holidays
#: field:hr.holidays.per.user,active:0
#: field:hr.holidays.status,active:0
msgid "Active"
-msgstr ""
+msgstr "Attivo"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_draft
msgid "My Holidays Request Draft"
-msgstr ""
+msgstr "Le mie bozze di richiesta Ferie"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_approvedrequest0
msgid "Approved Request"
-msgstr ""
+msgstr "Richiesta approvata"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_holidaysrequest0
msgid "Holidays Request"
-msgstr ""
+msgstr "Richiesta ferie"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_holiday_waiting
msgid "Holidays Requests Awaiting for Validation"
-msgstr ""
+msgstr "Richieste di Ferie in attesa di convalida"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "General"
-msgstr ""
+msgstr "Generale"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
msgid "General Information"
-msgstr ""
+msgstr "Informazione Generale"
#. module: hr_holidays
#: view:hr.holidays:0
@@ -585,23 +619,23 @@ msgstr ""
#: wizard_button:hr.holidays.summary,init,end:0
#: wizard_button:hr.holidays.summary.employee,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_holidaysdefrequest0
msgid "Holidays def Request"
-msgstr ""
+msgstr "Definizione Richiesta di Ferie"
#. module: hr_holidays
#: selection:hr.holidays.summary,init,holiday_type:0
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Validated"
-msgstr ""
+msgstr "Convalidata"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_refuse
msgid "My Holidays Request Refused"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie Rifiutate"
#. module: hr_holidays
#: constraint:ir.model:0
@@ -615,23 +649,23 @@ msgstr ""
#: wizard_button:hr.holidays.summary,init,checkdept:0
#: wizard_button:hr.holidays.summary.employee,init,checkemp:0
msgid "Print"
-msgstr ""
+msgstr "Stampa"
#. module: hr_holidays
#: model:ir.actions.wizard,name:hr_holidays.holidays_summary
#: model:ir.ui.menu,name:hr_holidays.menu_holidays_summary
msgid "Print Summary of Holidays"
-msgstr ""
+msgstr "Stampa Riepilogo delle Ferie"
#. module: hr_holidays
#: wizard_field:hr.holidays.summary,init,depts:0
msgid "Department(s)"
-msgstr ""
+msgstr "Dipartimento/i"
#. module: hr_holidays
#: field:hr.holidays,name:0
msgid "Description"
-msgstr ""
+msgstr "Descrizione"
#. module: hr_holidays
#: selection:hr.holidays,state:0
@@ -642,85 +676,85 @@ msgstr "Rifiutato"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_approvedrequest0
msgid "Request is approved."
-msgstr ""
+msgstr "Richiesta approvata"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_holidaysdefinition0
msgid "Holidays Definition"
-msgstr ""
+msgstr "Definizione Ferie"
#. module: hr_holidays
#: wizard_field:hr.holidays.summary,init,holiday_type:0
#: wizard_field:hr.holidays.summary.employee,init,holiday_type:0
msgid "Select Holiday Type"
-msgstr ""
+msgstr "Seleziona Tipo Ferie"
#. module: hr_holidays
#: field:hr.holidays,case_id:0
msgid "Case"
-msgstr ""
+msgstr "Caso"
#. module: hr_holidays
#: field:hr.holidays,holiday_user_id:0
msgid "Holiday per user"
-msgstr ""
+msgstr "Ferie per Utente"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_holidays0
msgid "Encode number of available holidays"
-msgstr ""
+msgstr "Codificazione del numero di Ferie disponibili"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_legaldeclaration0
msgid "Secretariat Social"
-msgstr ""
+msgstr "Segretariato sociale"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Violet"
-msgstr ""
+msgstr "Violetto"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Red"
-msgstr ""
+msgstr "Rosso"
#. module: hr_holidays
#: model:ir.module.module,shortdesc:hr_holidays.module_meta_information
msgid "Human Resources: Holidays management"
-msgstr ""
+msgstr "Risorse Umane: Gestione Ferie"
#. module: hr_holidays
#: model:process.process,name:hr_holidays.process_process_holidaysprocess0
msgid "Holidays Process"
-msgstr ""
+msgstr "Processo di ferie"
#. module: hr_holidays
#: wizard_view:hr.holidays.summary,notify:0
msgid "You have to select at least 1 Department. Try again."
-msgstr ""
+msgstr "E' necessario selezionare almeno 1 Reparto. Riprova"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_validate
msgid "My Holidays Request Validated"
-msgstr ""
+msgstr "Le Mie Richieste di Ferie Convalidate"
#. module: hr_holidays
#: field:hr.holidays.log,holiday_req_id:0
msgid "Holiday Request ID"
-msgstr ""
+msgstr "ID Richiesta Ferie"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Yellow"
-msgstr ""
+msgstr "Giallo Chiaro"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Pink"
-msgstr ""
+msgstr "Rosa Chiaro"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_refused0
msgid "His manager refuses the request"
-msgstr ""
+msgstr "Il suo manager ha rifiutato la richiesta"
diff --git a/addons/hr_holidays/i18n/lt.po b/addons/hr_holidays/i18n/lt.po
index 9b162ce6e1f..5f701c3dec1 100644
--- a/addons/hr_holidays/i18n/lt.po
+++ b/addons/hr_holidays/i18n/lt.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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:22+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 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
diff --git a/addons/hr_holidays/i18n/tr.po b/addons/hr_holidays/i18n/tr.po
index d6ffdad1e6f..61e27ca0f9d 100644
--- a/addons/hr_holidays/i18n/tr.po
+++ b/addons/hr_holidays/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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10:00+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-12 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
diff --git a/addons/hr_holidays/i18n/zh_CN.po b/addons/hr_holidays/i18n/zh_CN.po
index 15d14f0f3e4..55c4cc13dea 100644
--- a/addons/hr_holidays/i18n/zh_CN.po
+++ b/addons/hr_holidays/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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 07:41+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-12 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py
index 5b14835349b..851defe7e73 100644
--- a/addons/hr_holidays/report/holidays_summary_report.py
+++ b/addons/hr_holidays/report/holidays_summary_report.py
@@ -94,13 +94,13 @@ class report_custom(report_rml):
emp_id={}
# done={}
- cr.execute("select name from res_company")
+ cr.execute("SELECT name FROM res_company")
res=cr.fetchone()[0]
date_xml=[]
date_today=time.strftime('%Y-%m-%d %H:%M:%S')
date_xml +=[' ' % (res,date_today)]
- cr.execute("select id,name,color_name from hr_holidays_status order by id")
+ cr.execute("SELECT id, name, color_name FROM hr_holidays_status ORDER BY id")
legend=cr.fetchall()
today=datetime.datetime.today()
@@ -221,27 +221,19 @@ class report_custom(report_rml):
elif data['model']=='ir.ui.menu':
for id in data['form']['depts']:
dept = obj_dept.browse(cr, uid, id, context=context)
-
- cr.execute("""select dept.manager_id from hr_department dept\
- where dept.id = %s""", (id,))
- result=cr.fetchall()
- if result==[]:
+ cr.execute("""SELECT id FROM hr_employee \
+ WHERE department_id = %s""", (id,))
+ emp_ids = [x[0] for x in cr.fetchall()]
+ if emp_ids==[]:
continue
dept_done=0
- for d in range(0,len(result)):
- emp_id[d] = obj_emp.search(cr, uid, [('user_id', '=', result[d][0])])
- items = obj_emp.read(cr, uid, emp_id[d], ['id', 'name'])
- for item in items:
-# if item['id'] in done:
-# continue
-# else:
- if dept_done==0:
- emp_xml += emp_create_xml(self, cr, uid, 1, holiday_type, row_id, dept.id, dept.name, som, eom)
- row_id = row_id +1
- dept_done=1
-# done[item['id']] = 1
- emp_xml += emp_create_xml(self, cr, uid, 0, holiday_type, row_id, item['id'], item['name'], som, eom)
+ for item in obj_emp.read(cr, uid, emp_ids, ['id', 'name']):
+ if dept_done==0:
+ emp_xml += emp_create_xml(self, cr, uid, 1, holiday_type, row_id, dept.id, dept.name, som, eom)
row_id = row_id +1
+ dept_done=1
+ emp_xml += emp_create_xml(self, cr, uid, 0, holiday_type, row_id, item['id'], item['name'], som, eom)
+ row_id = row_id +1
# Computing the xml
xml='''
diff --git a/addons/hr_holidays/security/ir.model.access.csv b/addons/hr_holidays/security/ir.model.access.csv
index eedc4a78336..38334165a76 100644
--- a/addons/hr_holidays/security/ir.model.access.csv
+++ b/addons/hr_holidays/security/ir.model.access.csv
@@ -1,10 +1,11 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_holydays_status_user","hr.holidays.status user","model_hr_holidays_status","base.group_hr_user",1,0,0,0
-"access_hr_holidays_user","hr holidays user","model_hr_holidays","base.group_hr_user",1,1,1,0
-"access_hr_holydays_status_manager","hr.holidays.status manager","model_hr_holidays_status","base.group_hr_manager",1,0,0,0
-"access_hr_holidays_manager","hr holidays manager","model_hr_holidays","base.group_hr_manager",1,0,0,0
-"access_hr_holidays_remain","hr holidays user","model_hr_holidays_remaining_leaves_user","base.group_hr_user",1,0,0,0
+"access_hr_holidays_user","hr.holidays.user","model_hr_holidays","base.group_hr_user",1,1,1,0
+"access_hr_holydays_status_manager","hr.holidays.status.manager","model_hr_holidays_status","base.group_hr_manager",1,0,0,0
+"access_hr_holidays_manager","hr.holidays.manager","model_hr_holidays","base.group_hr_manager",1,0,0,0
+"access_hr_holidays_remain_user","hr.holidays.ramain.user","model_hr_holidays_remaining_leaves_user","base.group_hr_user",1,0,0,0
"access_hr_holidays_report","hr.holidays.report","model_hr_holidays_report","base.group_hr_manager",1,0,0,0
-"access_hr_holidays_remaining_leaves_user","hr.hr.holidays.remaining.leaves.user","model_hr_holidays_remaining_leaves_user","base.group_hr_manager",1,0,0,0
+"access_hr_holidays_remaining_leaves_manager","hr.hr.holidays.remaining.leaves.manager","model_hr_holidays_remaining_leaves_user","base.group_hr_manager",1,0,0,0
"access_available_holidays_report","hr.available.holidays.report","model_available_holidays_report","base.group_hr_manager",1,0,0,0
-"access_hr_holydays_status","hr.holidays.status","model_hr_holidays_status","base.group_system",1,1,1,1
+"access_hr_holydays_status_system","hr.holidays.status.system","model_hr_holidays_status","base.group_system",1,1,1,1
+"access_hr_holidays_system","hr.holidays.system","model_hr_holidays","base.group_system",1,0,0,0
diff --git a/addons/hr_holidays/test/test_hr_holiday.yml b/addons/hr_holidays/test/test_hr_holiday.yml
index 720ca5e9e84..6a124be59c2 100644
--- a/addons/hr_holidays/test/test_hr_holiday.yml
+++ b/addons/hr_holidays/test/test_hr_holiday.yml
@@ -1,7 +1,7 @@
-
In order to test the hr_holiday module in OpenERP, I will Allocate leaves for Employee and manage leaves and leaves requests.
-
- I create new user "user1" to who makes leave request.
+ I create new user "user1" who will make leave request.
-
!record {model: res.users, id: res_users_user0}:
company_id: base.main_company
diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_department.py b/addons/hr_holidays/wizard/hr_holidays_summary_department.py
index a08354fd40d..9a99d9eff63 100644
--- a/addons/hr_holidays/wizard/hr_holidays_summary_department.py
+++ b/addons/hr_holidays/wizard/hr_holidays_summary_department.py
@@ -31,12 +31,12 @@ class hr_holidays_summary_dept(osv.osv_memory):
'date_from': fields.date('From', required=True),
'depts': fields.many2many('hr.department', 'summary_dept_rel', 'sum_id', 'dept_id', 'Department(s)'),
'holiday_type': fields.selection([('Validated','Validated'),('Confirmed','Confirmed'),('both','Both Validated and Confirmed')], 'Select Holiday Type', required=True)
- }
+ }
_defaults = {
- 'date_from': time.strftime('%Y-%m-%d'),
+ 'date_from': time.strftime('%Y-%m-01'),
'holiday_type': 'Validated'
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -48,7 +48,7 @@ class hr_holidays_summary_dept(osv.osv_memory):
'ids': [],
'model': 'ir.ui.menu',
'form': data
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'holidays.summary',
diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_employees.py b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
index ca9ccc83db7..0fa58b01581 100644
--- a/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
+++ b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py
@@ -30,12 +30,12 @@ class hr_holidays_summary_employee(osv.osv_memory):
'date_from': fields.date('From', required=True),
'emp': fields.many2many('hr.employee', 'summary_emp_rel', 'sum_id', 'emp_id', 'Employee(s)'),
'holiday_type': fields.selection([('Validated','Validated'),('Confirmed','Confirmed'),('both','Both Validated and Confirmed')], 'Select Holiday Type', required=True)
- }
+ }
_defaults = {
- 'date_from': time.strftime('%Y-%m-%d'),
+ 'date_from': time.strftime('%Y-%m-01'),
'holiday_type': 'Validated',
- }
+ }
def print_report(self, cr, uid, ids, context=None):
if context is None:
@@ -46,7 +46,7 @@ class hr_holidays_summary_employee(osv.osv_memory):
'ids': [],
'model': 'hr.employee',
'form': data
- }
+ }
return {
'type': 'ir.actions.report.xml',
'report_name': 'holidays.summary',
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index ba011442294..7a6eaf14b58 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -192,7 +192,6 @@ class payroll_register(osv.osv):
'journal_id': fields.many2one('account.journal', 'Expanse Journal', required=True),
'bank_journal_id': fields.many2one('account.journal', 'Bank Journal', required=True),
'active':fields.boolean('Active', required=False),
-# 'advice_ids':fields.one2many('hr.payroll.advice', 'register_id', 'Bank Advice'),
'company_id':fields.many2one('res.company', 'Company', required=False),
'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."),
'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 4)),
@@ -301,7 +300,6 @@ class payroll_register(osv.osv):
}
id = advice_line_pool.create(cr, uid, pline, context=context)
- #, 'advice_ids':[(6, 0, [pid])]
self.write(cr, uid, ids, {'state':'confirm'}, context=context)
return True
@@ -568,7 +566,6 @@ class company_contribution(osv.osv):
'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Heads', required=False),
'name':fields.char('Name', size=256, required=True, readonly=False),
'code':fields.char('Code', size=64, required=True, readonly=False),
-# 'include_in_salary':fields.boolean('Included in Salary ?', help='If company contribute on this deduction then should company contribution is also deducted from Employee Salary'),
'gratuity':fields.boolean('Use for Gratuity ?', required=False),
'line_ids':fields.one2many('company.contribution.line', 'contribution_id', 'Calculations', required=False),
'register_id':fields.property(
@@ -587,16 +584,6 @@ class company_contribution(osv.osv):
('func','Function Calculation'),
],'Amount Type', select=True),
'contribute_per':fields.float('Contribution', digits=(16, 4), help='Define Company contribution ratio 1.00=100% contribution, If Employee Contribute 5% then company will and here 0.50 defined then company will contribute 50% on employee 5% contribution'),
-# 'account_id':fields.property(
-# 'account.account',
-# type='many2one',
-# relation='account.account',
-# string="Account",
-# method=True,
-# view_load=True,
-# help="Expanse account where company expanse will be encoded",
-# required=False
-# ),
'company_id':fields.many2one('res.company', 'Company', required=False),
'active':fields.boolean('Active', required=False),
'note': fields.text('Description'),
@@ -730,8 +717,6 @@ class hr_payslip(osv.osv):
obj[cd] = amount
contrib = 0.0
-# if line.category_id.include_in_salary:
-# contrib = line.company_contrib
if line.type == 'allowance':
allow += amount
@@ -891,7 +876,6 @@ class hr_payslip(osv.osv):
contract = cr.dictfetchone()
contract = contract and contract or {}
-
return contract
def _get_leaves(self, cr, user, slip, employee, context=None):
@@ -1322,10 +1306,10 @@ class hr_employee(osv.osv):
_columns = {
'pan_no':fields.char('PAN No', size=64, required=False, readonly=False),
- 'esp_account':fields.char('EPS Account', size=64, required=False, readonly=False),
- 'pf_account':fields.char('PF Account', size=64, required=False, readonly=False),
+ 'esp_account':fields.char('EPS Account', size=64, required=False, readonly=False, help="EPS Account"),
+ 'pf_account':fields.char('PF Account', size=64, required=False, readonly=False, help="Providend Fund Account"),
'pg_joining': fields.date('PF Join Date'),
- 'esi_account':fields.char('ESI Account', size=64, required=False, readonly=False),
+ 'esi_account':fields.char('ESI Account', size=64, required=False, readonly=False, help="ESI Account"),
'hospital_id':fields.many2one('res.partner.address', 'ESI Hospital', required=False),
'passport_id':fields.many2one('hr.passport', 'Passport', required=False),
'otherid':fields.char('Other Id', size=64, required=False),
diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml
index d6f787dad22..fbfa2d1aad5 100644
--- a/addons/hr_payroll/hr_payroll_view.xml
+++ b/addons/hr_payroll/hr_payroll_view.xml
@@ -4,7 +4,7 @@
-
+
@@ -98,7 +98,7 @@
hr.employee
-
+
@@ -110,7 +110,7 @@
-
+
@@ -153,11 +153,10 @@
-
+
-
@@ -167,7 +166,6 @@
-
@@ -193,7 +191,7 @@
-
+
@@ -201,10 +199,10 @@
-
+
-
+
@@ -298,7 +296,7 @@
-
+
@@ -335,7 +333,7 @@
-
+
@@ -363,7 +361,7 @@
-
+
@@ -391,7 +389,7 @@
-
+
@@ -463,7 +461,7 @@
-
+
@@ -523,7 +521,8 @@
-
+
+
@@ -531,9 +530,12 @@
+
+
-
-
+
+
+
@@ -655,8 +657,6 @@
-
-
@@ -731,52 +731,6 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
hr.payroll.advice.tree
hr.payroll.advice
@@ -956,7 +910,7 @@
-
+
diff --git a/addons/hr_payroll/report/rml_parse.py b/addons/hr_payroll/report/rml_parse.py
index beeb6deae49..550c77c696d 100755
--- a/addons/hr_payroll/report/rml_parse.py
+++ b/addons/hr_payroll/report/rml_parse.py
@@ -41,7 +41,6 @@ class rml_parse(report_sxw.rml_parse):
})
def comma_me(self,amount):
- #print "#" + str(amount) + "#"
if not amount:
amount = 0.0
if type(amount) is float :
@@ -105,9 +104,8 @@ class rml_parse(report_sxw.rml_parse):
else:
return Stringer
return Stringer
-
+
def explode_this(self,chaine,length):
- #chaine = self.repair_string(chaine)
chaine = rstrip(chaine)
ast = list(chaine)
i = length
@@ -116,13 +114,12 @@ class rml_parse(report_sxw.rml_parse):
i = i + length
chaine = str("".join(ast))
return chaine
-
+
def repair_string(self,chaine):
ast = list(chaine)
UnicodeAst = []
_previouslyfound = False
i = 0
- #print str(ast)
while i < len(ast):
elem = ast[i]
try:
diff --git a/addons/hr_payroll/security/ir.model.access.csv b/addons/hr_payroll/security/ir.model.access.csv
index b887cae0651..c605e6f28c2 100644
--- a/addons/hr_payroll/security/ir.model.access.csv
+++ b/addons/hr_payroll/security/ir.model.access.csv
@@ -4,7 +4,7 @@
"aceess_hr_contract_wage_type","hr.contract.wage.type","model_hr_contract_wage_type","group_hr_payroll",1,1,1,1
"access_hr_passport","hr.passport","model_hr_passport","group_hr_payroll",1,1,1,1
"access_hr_payroll_structure","hr.payroll.structure","model_hr_payroll_structure","group_hr_payroll",1,1,1,1
-"access_hr_contract","hr.contract","model_hr_contract","group_hr_payroll",1,1,1,1
+"access_hr_contract","hr.contract","model_hr_contract","group_hr_payroll",1,0,0,0
"access_hr_payroll_register","hr.payroll.register","model_hr_payroll_register","group_hr_payroll",1,1,1,1
"access_hr_payroll_advice","hr.payroll.advice","model_hr_payroll_advice","group_hr_payroll",1,1,1,1
"access_hr_payroll_advice_line","hr.payroll.advice.line","model_hr_payroll_advice_line","group_hr_payroll",1,1,1,1
@@ -28,3 +28,7 @@
"access_hr_payroll_structure","hr.payroll.structure","model_hr_payroll_structure","base.group_system",1,1,1,1
"access_company_contribution","company.contribution","model_company_contribution","base.group_system",1,1,1,1
"access_hr_passport_sys","hr.passport","model_hr_passport","base.group_system",1,1,1,1
+"access_res_partner_payroll","res.partner.payroll","base.model_res_partner","group_hr_payroll",1,1,1,1
+"access_hr_contibution_register_system","hr.contibution.register.system","model_hr_contibution_register","base.group_system",1,1,1,1
+"access_hr_contibution_register_line_system","hr.contibution.register.line.system","model_hr_contibution_register_line","base.group_system",1,1,1,1
+"access_hr_allounce_deduction_category_system","hr.allounce.deduction.category.system","model_hr_allounce_deduction_categoty","base.group_system",1,1,1,1
diff --git a/addons/hr_payroll/wizard/hr_payroll_create_analytic.xml b/addons/hr_payroll/wizard/hr_payroll_create_analytic.xml
index bbbd263b2fe..8ef12aa586a 100644
--- a/addons/hr_payroll/wizard/hr_payroll_create_analytic.xml
+++ b/addons/hr_payroll/wizard/hr_payroll_create_analytic.xml
@@ -27,10 +27,6 @@
form
new
-
\ No newline at end of file
diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py
index f07a0493b4f..f5a6897bf1d 100644
--- a/addons/hr_payroll_account/hr_payroll_account.py
+++ b/addons/hr_payroll_account/hr_payroll_account.py
@@ -133,7 +133,6 @@ class hr_payslip(osv.osv):
ded_rec = {
'move_id':move_id,
'name': name,
- #'partner_id': partner_id,
'date': slip.date,
'account_id': slip.employee_id.property_bank_account.id,
'debit': 0.0,
@@ -293,7 +292,6 @@ class hr_payslip(osv.osv):
period_id = search_periods[0]
move = {
- #'name': slip.name,
'journal_id': slip.journal_id.id,
'period_id': period_id,
'date': slip.date,
@@ -409,140 +407,6 @@ class hr_payslip(osv.osv):
for contrub in line.category_id.contribute_ids:
print contrib.name, contrub.code, contrub.amount_type, contrib.contribute_per, line.total
-
-
-# if line.company_contrib > 0:
-# company_contrib = line.company_contrib
-## if line.category_id.amount_type == 'per':
-## company_contrib = (amount * line.category_id.contribute_per)
-
-# narration = """Company Contribution of %s Encode same as a Company Expanse @ %s""" % (line.name, company_contrib)
-# move = {
-# #'name': slip.name,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'date': slip.date,
-# 'ref':slip.number,
-# 'narration': narration
-# }
-# company_contrib_move_id = move_pool.create(cr, uid, move)
-# name = "[%s] - %s / %s - Company Contribution" % (line.code, line.name, slip.employee_id.name)
-# self.create_voucher(cr, uid, [slip.id], name, company_contrib_move_id)
-#
-# ded_deb = {
-# 'move_id':company_contrib_move_id,
-# 'name': name,
-# 'date': slip.date,
-# 'quantity':1,
-# 'account_id': line.category_id.account_id.id,
-# 'debit': company_contrib,
-# 'credit' : 0.0,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'ref':slip.number
-# }
-# line_ids += [movel_pool.create(cr, uid, ded_deb)]
-# ded_cre = {
-# 'move_id':company_contrib_move_id,
-# 'name': name,
-# 'date': slip.date,
-# 'quantity':1,
-# 'account_id': line.category_id.register_id.account_id.id,
-# 'debit': 0.0,
-# 'credit' : company_contrib,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'ref':slip.number
-# }
-# line_ids += [movel_pool.create(cr, uid, ded_cre)]
-#
-# if line.category_id.include_in_salary:
-# narration = """Company Contribution of %s Deducted from Employee %s""" % (line.name, company_contrib)
-# move = {
-# #'name': slip.name,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'date': slip.date,
-# 'ref':slip.number,
-# 'narration': narration
-# }
-# include_in_salary_move_id = move_pool.create(cr, uid, move)
-# self.create_voucher(cr, uid, [slip.id], narration, include_in_salary_move_id)
-#
-# total_deduct += company_contrib
-# ded_deb = {
-# 'move_id':include_in_salary_move_id,
-# 'name': name,
-# 'partner_id': partner_id,
-# 'date': slip.date,
-# 'quantity':1,
-# 'account_id': partner.property_account_receivable.id,
-# 'debit': company_contrib,
-# 'credit' : 0.0,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'ref':slip.number
-# }
-# line_ids += [movel_pool.create(cr, uid, ded_deb)]
-# ded_cre = {
-# 'move_id':include_in_salary_move_id,
-# 'name': name,
-# 'date': slip.date,
-# 'quantity':1,
-# 'account_id': line.category_id.account_id.id,
-# 'debit': 0.0,
-# 'credit' : company_contrib,
-# 'journal_id': slip.journal_id.id,
-# 'period_id': period_id,
-# 'ref':slip.number
-# }
-# line_ids += [movel_pool.create(cr, uid, ded_cre)]
-
- #make an entry line to contribution register
-# if line.category_id.register_id:
-# ctr = {
-# 'register_id':line.category_id.register_id.id,
-# 'name':line.name,
-# 'code':line.code,
-# 'employee_id':slip.employee_id.id,
-# 'period_id':period_id,
-# 'emp_deduction':amount,
-# }
-# if line.category_id.contribute:
-# ctr['comp_deduction'] = amount
-#
-# company = 0.0
-# employee = 0.0
-# if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'per':
-# new_amount = (amount * (line.category_id.contribute_per / (1+line.category_id.contribute_per)))
-# company = new_amount
-# employee = amount - company
-#
-# elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
-# company = line.category_id.contribute_per
-# employee = amount - company
-
-# elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func':
-# company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context)
-# employee = amount
-#
-# elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'per':
-# company = amount * line.category_id.contribute_per
-# employee = amount
-#
-# elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
-# company = line.category_id.contribute_per
-# employee = amount
-
-# elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'func':
-# company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context)
-# employee = amount
-#
-# ctr['emp_deduction'] = employee
-# ctr['comp_deduction'] = company
-#
-# self.pool.get('hr.contibution.register.line').create(cr, uid, ctr)
-
adj_move_id = False
if total_deduct > 0:
move = {
diff --git a/addons/hr_payroll_account/i18n/en_US.po b/addons/hr_payroll_account/i18n/en_US.po
new file mode 100644
index 00000000000..1e4e0f033e9
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/en_US.po
@@ -0,0 +1,481 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_payroll_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:19:23+0000\n"
+"PO-Revision-Date: 2010-08-20 06:19:23+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: hr_payroll_account
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr "Accounting Lines"
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_ids:0
+msgid "Accounting vouchers"
+msgstr "Accounting vouchers"
+
+#. module: hr_payroll_account
+#: 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: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" if not slip.employee_id.bank_account_id.partner_id:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr "Please defined bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" if not slip.employee_id.bank_account_id.partner_id:\n"
+" raise osv.except_osv(_('Integrity Error !"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr "Other Informations"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_account_move
+msgid "Account Move Link to Pay Slip"
+msgstr "Account Move Link to Pay Slip"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Description"
+msgstr "Description"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+" name = 'Payment of Salary to %s' % (slip.employee_id.name)\n"
+" move = {\n"
+" 'journal_id': slip.bank_journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'type':'bank_pay_voucher',\n"
+" 'ref':slip.number,\n"
+" 'narration': name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], name, move_id)\n"
+"\n"
+" name = \"To %s account\" % (slip.employee_id.name)\n"
+" ded_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" #'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.property_bank_account.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : slip.total_pay,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, ded_rec, context=context)]\n"
+" name = \"By %s account\" % (slip.employee_id.property_bank_account.name)\n"
+" cre_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': partner.property_account_payable.id,\n"
+" 'debit': slip.total_pay,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, cre_rec, context=context)]\n"
+"\n"
+" other_pay = slip.other_pay\n"
+" #Process all Reambuse Entries\n"
+" for line in slip.line_ids:\n"
+" if line.type == 'otherpay' and line.expanse_id.invoice_id:\n"
+" if not line.expanse_id.invoice_id.move_id:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+" name = 'Payment of Salary to %s' % (slip.employee_id.name)\n"
+" move = {\n"
+" 'journal_id': slip.bank_journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'type':'bank_pay_voucher',\n"
+" 'ref':slip.number,\n"
+" 'narration': name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], name, move_id)\n"
+"\n"
+" name = \"To %s account\" % (slip.employee_id.name)\n"
+" ded_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" #'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.property_bank_account.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : slip.total_pay,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, ded_rec, context=context)]\n"
+" name = \"By %s account\" % (slip.employee_id.property_bank_account.name)\n"
+" cre_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': partner.property_account_payable.id,\n"
+" 'debit': slip.total_pay,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, cre_rec, context=context)]\n"
+"\n"
+" other_pay = slip.other_pay\n"
+" #Process all Reambuse Entries\n"
+" for line in slip.line_ids:\n"
+" if line.type == 'otherpay' and line.expanse_id.invoice_id:\n"
+" if not line.expanse_id.invoice_id.move_id:\n"
+" raise osv.except_osv(_('Warning !"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr "Accounting Informations"
+
+#. module: hr_payroll_account
+#: model:ir.module.module,description:hr_payroll_account.module_meta_information
+msgid "Generic Payroll system Integrated with Accountings\n"
+" * Expanse Encoding\n"
+" * Payment Encoding\n"
+" * Comany Contribution Managemet\n"
+" "
+msgstr "Generic Payroll system Integrated with Accountings\n"
+" * Expanse Encoding\n"
+" * Payment Encoding\n"
+" * Comany Contribution Managemet\n"
+" "
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+"\n"
+" move = {\n"
+" #'name': slip.name,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'ref':slip.number,\n"
+" 'narration': slip.name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], slip.name, move_id)\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"By Basic Salary / \" + slip.employee_id.name,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.salary_account.id,\n"
+" 'debit': slip.basic,\n"
+" 'credit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'analytic_account_id': False,\n"
+" 'ref':slip.number\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Basic Salary\n"
+" if slip.employee_id.analytic_account:\n"
+" line['analytic_account_id'] = slip.employee_id.analytic_account.id\n"
+"\n"
+" move_line_id = movel_pool.create(cr, uid, line, context=context)\n"
+" line_ids += [move_line_id]\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"To Basic Paysble Salary / \" + slip.employee_id.name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.employee_account.id,\n"
+" 'debit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'credit': slip.basic,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, line, context=context)]\n"
+"\n"
+" for line in slip.line_ids:\n"
+" name = \"[%s] - %s / %s\" % (line.code, line.name, slip.employee_id.name)\n"
+" amount = line.total\n"
+"\n"
+" if line.type == 'leaves':\n"
+" continue\n"
+"\n"
+" rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'date': slip.date,\n"
+" 'account_id': line.account_id.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'analytic_account_id':False,\n"
+" 'ref':slip.number,\n"
+" 'quantity':1\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Salary Slip Lines\n"
+" if line.analytic_account_id:\n"
+" rec['analytic_account_id'] = line.analytic_account_id.id\n"
+" else:\n"
+" rec['analytic_account_id'] = slip.deg_id.account_id.id\n"
+"\n"
+" if line.type == 'allowance' or line.type == 'otherpay':\n"
+" rec['debit'] = amount\n"
+" if not partner.property_account_payable:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+"\n"
+" move = {\n"
+" #'name': slip.name,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'ref':slip.number,\n"
+" 'narration': slip.name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], slip.name, move_id)\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"By Basic Salary / \" + slip.employee_id.name,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.salary_account.id,\n"
+" 'debit': slip.basic,\n"
+" 'credit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'analytic_account_id': False,\n"
+" 'ref':slip.number\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Basic Salary\n"
+" if slip.employee_id.analytic_account:\n"
+" line['analytic_account_id'] = slip.employee_id.analytic_account.id\n"
+"\n"
+" move_line_id = movel_pool.create(cr, uid, line, context=context)\n"
+" line_ids += [move_line_id]\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"To Basic Paysble Salary / \" + slip.employee_id.name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.employee_account.id,\n"
+" 'debit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'credit': slip.basic,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, line, context=context)]\n"
+"\n"
+" for line in slip.line_ids:\n"
+" name = \"[%s] - %s / %s\" % (line.code, line.name, slip.employee_id.name)\n"
+" amount = line.total\n"
+"\n"
+" if line.type == 'leaves':\n"
+" continue\n"
+"\n"
+" rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'date': slip.date,\n"
+" 'account_id': line.account_id.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'analytic_account_id':False,\n"
+" 'ref':slip.number,\n"
+" 'quantity':1\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Salary Slip Lines\n"
+" if line.analytic_account_id:\n"
+" rec['analytic_account_id'] = line.analytic_account_id.id\n"
+" else:\n"
+" rec['analytic_account_id'] = slip.deg_id.account_id.id\n"
+"\n"
+" if line.type == 'allowance' or line.type == 'otherpay':\n"
+" rec['debit'] = amount\n"
+" if not partner.property_account_payable:\n"
+" raise osv.except_osv(_('Integrity Error !"
+
+#. module: hr_payroll_account
+#: model:ir.module.module,shortdesc:hr_payroll_account.module_meta_information
+msgid "Human Resource Payroll Accounting"
+msgstr "Human Resource Payroll Accounting"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr "Payment Lines"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please define fiscal year for perticular contract"
+msgstr "Please define fiscal year for perticular contract"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr "Pay Slip"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr "Account Lines"
+
+#. module: hr_payroll_account
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Vouchers"
+msgstr "Accounting Vouchers"
+
+#. module: hr_payroll_account
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr "Keep empty to use the period of the validation(Payslip) date."
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr, uid, [('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr, uid, [('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Warning !"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr "Please Confirm all Expanse Invoice appear for Reimbursement"
+
+#. module: hr_payroll_account
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr "Force Period"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Receivable Account!!"
+msgstr "Please Configure Partners Receivable Account!!"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined partner in bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" partner = slip.employee_id.bank_account_id.partner_id\n"
+" partner_id = slip.employee_id.bank_account_id.partner_id.id\n"
+"\n"
+" period_id = False\n"
+"\n"
+" if slip.period_id:\n"
+" period_id = slip.period_id.id\n"
+" else:\n"
+" fiscal_year_ids = fiscalyear_pool.search(cr, uid, [], context=context)\n"
+" if not fiscal_year_ids:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr "Please defined partner in bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" partner = slip.employee_id.bank_account_id.partner_id\n"
+" partner_id = slip.employee_id.bank_account_id.partner_id.id\n"
+"\n"
+" period_id = False\n"
+"\n"
+" if slip.period_id:\n"
+" period_id = slip.period_id.id\n"
+" else:\n"
+" fiscal_year_ids = fiscalyear_pool.search(cr, uid, [], context=context)\n"
+" if not fiscal_year_ids:\n"
+" raise osv.except_osv(_('Warning !"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr "Accounting Details"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Payable Account!!"
+msgstr "Please Configure Partners Payable Account!!"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr "Integrity Error !"
+
diff --git a/addons/hr_payroll_account/i18n/fr.po b/addons/hr_payroll_account/i18n/fr.po
new file mode 100644
index 00000000000..706c014acdb
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/fr.po
@@ -0,0 +1,328 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_payroll_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:11:22+0000\n"
+"PO-Revision-Date: 2010-08-20 06:11:22+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: hr_payroll_account
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_ids:0
+msgid "Accounting vouchers"
+msgstr ""
+
+#. module: hr_payroll_account
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" if not slip.employee_id.bank_account_id.partner_id:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_account_move
+msgid "Account Move Link to Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+" name = 'Payment of Salary to %s' % (slip.employee_id.name)\n"
+" move = {\n"
+" 'journal_id': slip.bank_journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'type':'bank_pay_voucher',\n"
+" 'ref':slip.number,\n"
+" 'narration': name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], name, move_id)\n"
+"\n"
+" name = \"To %s account\" % (slip.employee_id.name)\n"
+" ded_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" #'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.property_bank_account.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : slip.total_pay,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, ded_rec, context=context)]\n"
+" name = \"By %s account\" % (slip.employee_id.property_bank_account.name)\n"
+" cre_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': partner.property_account_payable.id,\n"
+" 'debit': slip.total_pay,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, cre_rec, context=context)]\n"
+"\n"
+" other_pay = slip.other_pay\n"
+" #Process all Reambuse Entries\n"
+" for line in slip.line_ids:\n"
+" if line.type == 'otherpay' and line.expanse_id.invoice_id:\n"
+" if not line.expanse_id.invoice_id.move_id:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,description:hr_payroll_account.module_meta_information
+msgid "Generic Payroll system Integrated with Accountings\n"
+" * Expanse Encoding\n"
+" * Payment Encoding\n"
+" * Comany Contribution Managemet\n"
+" "
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+"\n"
+" move = {\n"
+" #'name': slip.name,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'ref':slip.number,\n"
+" 'narration': slip.name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], slip.name, move_id)\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"By Basic Salary / \" + slip.employee_id.name,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.salary_account.id,\n"
+" 'debit': slip.basic,\n"
+" 'credit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'analytic_account_id': False,\n"
+" 'ref':slip.number\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Basic Salary\n"
+" if slip.employee_id.analytic_account:\n"
+" line['analytic_account_id'] = slip.employee_id.analytic_account.id\n"
+"\n"
+" move_line_id = movel_pool.create(cr, uid, line, context=context)\n"
+" line_ids += [move_line_id]\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"To Basic Paysble Salary / \" + slip.employee_id.name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.employee_account.id,\n"
+" 'debit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'credit': slip.basic,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, line, context=context)]\n"
+"\n"
+" for line in slip.line_ids:\n"
+" name = \"[%s] - %s / %s\" % (line.code, line.name, slip.employee_id.name)\n"
+" amount = line.total\n"
+"\n"
+" if line.type == 'leaves':\n"
+" continue\n"
+"\n"
+" rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'date': slip.date,\n"
+" 'account_id': line.account_id.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'analytic_account_id':False,\n"
+" 'ref':slip.number,\n"
+" 'quantity':1\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Salary Slip Lines\n"
+" if line.analytic_account_id:\n"
+" rec['analytic_account_id'] = line.analytic_account_id.id\n"
+" else:\n"
+" rec['analytic_account_id'] = slip.deg_id.account_id.id\n"
+"\n"
+" if line.type == 'allowance' or line.type == 'otherpay':\n"
+" rec['debit'] = amount\n"
+" if not partner.property_account_payable:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,shortdesc:hr_payroll_account.module_meta_information
+msgid "Human Resource Payroll Accounting"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please define fiscal year for perticular contract"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Vouchers"
+msgstr ""
+
+#. module: hr_payroll_account
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr, uid, [('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Receivable Account!!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined partner in bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" partner = slip.employee_id.bank_account_id.partner_id\n"
+" partner_id = slip.employee_id.bank_account_id.partner_id.id\n"
+"\n"
+" period_id = False\n"
+"\n"
+" if slip.period_id:\n"
+" period_id = slip.period_id.id\n"
+" else:\n"
+" fiscal_year_ids = fiscalyear_pool.search(cr, uid, [], context=context)\n"
+" if not fiscal_year_ids:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Payable Account!!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr ""
+
diff --git a/addons/hr_payroll_account/i18n/hr_payroll_account.pot b/addons/hr_payroll_account/i18n/hr_payroll_account.pot
new file mode 100644
index 00000000000..706c014acdb
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/hr_payroll_account.pot
@@ -0,0 +1,328 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_payroll_account
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:11:22+0000\n"
+"PO-Revision-Date: 2010-08-20 06:11:22+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: hr_payroll_account
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_ids:0
+msgid "Accounting vouchers"
+msgstr ""
+
+#. module: hr_payroll_account
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" if not slip.employee_id.bank_account_id.partner_id:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_account_move
+msgid "Account Move Link to Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+" name = 'Payment of Salary to %s' % (slip.employee_id.name)\n"
+" move = {\n"
+" 'journal_id': slip.bank_journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'type':'bank_pay_voucher',\n"
+" 'ref':slip.number,\n"
+" 'narration': name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], name, move_id)\n"
+"\n"
+" name = \"To %s account\" % (slip.employee_id.name)\n"
+" ded_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" #'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.property_bank_account.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : slip.total_pay,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, ded_rec, context=context)]\n"
+" name = \"By %s account\" % (slip.employee_id.property_bank_account.name)\n"
+" cre_rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': partner.property_account_payable.id,\n"
+" 'debit': slip.total_pay,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, cre_rec, context=context)]\n"
+"\n"
+" other_pay = slip.other_pay\n"
+" #Process all Reambuse Entries\n"
+" for line in slip.line_ids:\n"
+" if line.type == 'otherpay' and line.expanse_id.invoice_id:\n"
+" if not line.expanse_id.invoice_id.move_id:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,description:hr_payroll_account.module_meta_information
+msgid "Generic Payroll system Integrated with Accountings\n"
+" * Expanse Encoding\n"
+" * Payment Encoding\n"
+" * Comany Contribution Managemet\n"
+" "
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Period is not defined for slip date %s'%slip.date))\n"
+" period_id = search_periods[0]\n"
+"\n"
+" move = {\n"
+" #'name': slip.name,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'date': slip.date,\n"
+" 'ref':slip.number,\n"
+" 'narration': slip.name\n"
+" }\n"
+" move_id = move_pool.create(cr, uid, move, context=context)\n"
+" self.create_voucher(cr, uid, [slip.id], slip.name, move_id)\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"By Basic Salary / \" + slip.employee_id.name,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.salary_account.id,\n"
+" 'debit': slip.basic,\n"
+" 'credit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'analytic_account_id': False,\n"
+" 'ref':slip.number\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Basic Salary\n"
+" if slip.employee_id.analytic_account:\n"
+" line['analytic_account_id'] = slip.employee_id.analytic_account.id\n"
+"\n"
+" move_line_id = movel_pool.create(cr, uid, line, context=context)\n"
+" line_ids += [move_line_id]\n"
+"\n"
+" line = {\n"
+" 'move_id':move_id,\n"
+" 'name': \"To Basic Paysble Salary / \" + slip.employee_id.name,\n"
+" 'partner_id': partner_id,\n"
+" 'date': slip.date,\n"
+" 'account_id': slip.employee_id.employee_account.id,\n"
+" 'debit': 0.0,\n"
+" 'quantity':slip.working_days,\n"
+" 'credit': slip.basic,\n"
+" 'journal_id': slip.journal_id.id,\n"
+" 'period_id': period_id,\n"
+" 'ref':slip.number\n"
+" }\n"
+" line_ids += [movel_pool.create(cr, uid, line, context=context)]\n"
+"\n"
+" for line in slip.line_ids:\n"
+" name = \"[%s] - %s / %s\" % (line.code, line.name, slip.employee_id.name)\n"
+" amount = line.total\n"
+"\n"
+" if line.type == 'leaves':\n"
+" continue\n"
+"\n"
+" rec = {\n"
+" 'move_id':move_id,\n"
+" 'name': name,\n"
+" 'date': slip.date,\n"
+" 'account_id': line.account_id.id,\n"
+" 'debit': 0.0,\n"
+" 'credit' : 0.0,\n"
+" 'journal_id' : slip.journal_id.id,\n"
+" 'period_id' :period_id,\n"
+" 'analytic_account_id':False,\n"
+" 'ref':slip.number,\n"
+" 'quantity':1\n"
+" }\n"
+"\n"
+" #Setting Analysis Account for Salary Slip Lines\n"
+" if line.analytic_account_id:\n"
+" rec['analytic_account_id'] = line.analytic_account_id.id\n"
+" else:\n"
+" rec['analytic_account_id'] = slip.deg_id.account_id.id\n"
+"\n"
+" if line.type == 'allowance' or line.type == 'otherpay':\n"
+" rec['debit'] = amount\n"
+" if not partner.property_account_payable:\n"
+" raise osv.except_osv(_('Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,shortdesc:hr_payroll_account.module_meta_information
+msgid "Human Resource Payroll Accounting"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please define fiscal year for perticular contract"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr ""
+
+#. module: hr_payroll_account
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Vouchers"
+msgstr ""
+
+#. module: hr_payroll_account
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr, uid, [('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s'%slip.date))\n"
+" search_periods = period_pool.search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)], context=context)\n"
+" if not search_periods:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Receivable Account!!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please defined partner in bank account for %s !' % (slip.employee_id.name)))\n"
+"\n"
+" partner = slip.employee_id.bank_account_id.partner_id\n"
+" partner_id = slip.employee_id.bank_account_id.partner_id.id\n"
+"\n"
+" period_id = False\n"
+"\n"
+" if slip.period_id:\n"
+" period_id = slip.period_id.id\n"
+" else:\n"
+" fiscal_year_ids = fiscalyear_pool.search(cr, uid, [], context=context)\n"
+" if not fiscal_year_ids:\n"
+" raise osv.except_osv(_('Warning !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Please Configure Partners Payable Account!!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr ""
+
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index 084e81147a3..e740affd567 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -39,7 +39,6 @@ system to store and search in your CV base.
'wizard/hr_recruitment_create_partner_job_view.xml',
'hr_recruitment_view.xml',
'hr_recruitment_menu.xml',
-# 'report_hr_recruitment_view.xml',
'security/hr_recruitment_security.xml',
'security/ir.model.access.csv',
'board_hr_recruitment_statistical_view.xml',
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index fca26885ae9..1532c036677 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -75,7 +75,7 @@ class hr_recruitment_degree(osv.osv):
}
hr_recruitment_degree()
-class hr_applicant(osv.osv, crm.crm_case):
+class hr_applicant(crm.crm_case, osv.osv):
_name = "hr.applicant"
_description = "Applicant"
_order = "id desc"
@@ -174,7 +174,6 @@ class hr_applicant(osv.osv, crm.crm_case):
'active': lambda *a: 1,
'stage_id': _get_stage,
'user_id': lambda self, cr, uid, context: uid,
-# 'user_id': crm.crm_case._get_default_user,
'email_from': crm.crm_case. _get_default_email,
'state': lambda *a: 'draft',
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 5056a0c741e..ad7e293456a 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -96,8 +96,8 @@
-
-
+
+
@@ -106,7 +106,7 @@
+ icon="terp-mail-replied" type="action" attrs="{'readonly':[('partner_id','!=',False)]}"/>
@@ -143,13 +143,6 @@
-
-
-
-
@@ -200,6 +193,9 @@
name="%(crm.crm_lead_forward_to_partner_act)d"
icon="terp-mail-forward" type="action" />
+
+
+
@@ -244,7 +240,7 @@
help="Pending Jobs"
/>
-
@@ -262,18 +258,18 @@
-
+
-
-
+
+
-
+
diff --git a/addons/hr_recruitment/i18n/en_US.po b/addons/hr_recruitment/i18n/en_US.po
new file mode 100644
index 00000000000..e4065c4a94d
--- /dev/null
+++ b/addons/hr_recruitment/i18n/en_US.po
@@ -0,0 +1,1004 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_recruitment
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:51:08+0000\n"
+"PO-Revision-Date: 2010-08-20 06:51: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: hr_recruitment
+#: help:hr.applicant,active:0
+msgid "If the active field is set to false, it will allow you to hide the case without removing it."
+msgstr "If the active field is set to false, it will allow you to hide the case without removing it."
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: field:hr.recruitment.stage,requirements:0
+msgid "Requirements"
+msgstr "Requirements"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Open."
+msgstr "is Open."
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr "Avg. Delay to Open"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,nbr:0
+msgid "# of Cases"
+msgstr "# of Cases"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid " 7 Days "
+msgstr " 7 Days "
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,department_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,department_id:0
+#: field:hr.recruitment.stage,department_id:0
+msgid "Department"
+msgstr "Department"
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_action:0
+msgid "Next Action Date"
+msgstr "Next Action Date"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,opening_date:0
+msgid "Date of Opening"
+msgstr "Date of Opening"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Jobs"
+msgstr "Jobs"
+
+#. module: hr_recruitment
+#: field:hr.applicant,company_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_cc:0
+msgid "Watchers Emails"
+msgstr "Watchers Emails"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.partner.create,close:0
+msgid "Close job request"
+msgstr "Close job request"
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_open:0
+msgid "Days to Open"
+msgstr "Days to Open"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,note:0
+msgid "Goals"
+msgstr "Goals"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.partner.create:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
+msgid "Create Partner"
+msgstr "Create Partner"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,day:0
+msgid "Day"
+msgstr "Day"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contract Data"
+msgstr "Contract Data"
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_mobile:0
+msgid "Mobile"
+msgstr "Mobile"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "365 Days"
+msgstr "365 Days"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "30 Days"
+msgstr "30 Days"
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_ids:0
+msgid "Messages"
+msgstr "Messages"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next Actions"
+msgstr "Next Actions"
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job2
+msgid "Junior Developer"
+msgstr "Junior Developer"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: hr_recruitment
+#: field:hr.applicant,job_id:0
+#: field:hr.recruitment.report,job_id:0
+msgid "Applied Job"
+msgstr "Applied Job"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
+msgid "Graduate"
+msgstr "Graduate"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job1
+msgid "Initial Jobs Demand"
+msgstr "Initial Jobs Demand"
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Partner Contact"
+
+#. module: hr_recruitment
+#: field:hr.applicant,reference:0
+msgid "Reference"
+msgstr "Reference"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "My Recruitment"
+msgstr "My Recruitment"
+
+#. module: hr_recruitment
+#: field:hr.applicant,title_action:0
+msgid "Next Action"
+msgstr "Next Action"
+
+#. module: hr_recruitment
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_recruitment
+msgid "Recruitment"
+msgstr "Recruitment"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_prop:0
+msgid "Salary Proposed"
+msgstr "Salary Proposed"
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_expected:0
+msgid "Salary Expected by Applicant"
+msgstr "Salary Expected by Applicant"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.recruitment.report,available:0
+msgid "Availability"
+msgstr "Availability"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Previous"
+msgstr "Previous"
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_closed:0
+#: field:hr.recruitment.report,date_closed:0
+#: selection:hr.recruitment.report,state:0
+msgid "Closed"
+msgstr "Closed"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_phonecall.py:0
+#, python-format
+msgid "Phone Call"
+msgstr "Phone Call"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Convert To Partner"
+msgstr "Convert To Partner"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_report
+msgid "Recruitments Statistics"
+msgstr "Recruitments Statistics"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_done:0
+msgid "%Done"
+msgstr "%Done"
+
+#. module: hr_recruitment
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next"
+msgstr "Next"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_job
+msgid "Job Description"
+msgstr "Job Description"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Forward"
+msgstr "Forward"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Send New Email"
+msgstr "Send New Email"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule a Phone Call"
+msgstr "Schedule a Phone Call"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already defined on this job request."
+msgstr "A partner is already defined on this job request."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+msgid "New"
+msgstr "New"
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_from:0
+msgid "Email"
+msgstr "Email"
+
+#. module: hr_recruitment
+#: field:hr.applicant,availability:0
+msgid "Availability (Days)"
+msgstr "Availability (Days)"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr "Avg. Answers"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Available"
+msgstr "Available"
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Good"
+msgstr "Good"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "Error !"
+msgstr "Error !"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,create_date:0
+msgid "Creation Date"
+msgstr "Creation Date"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,deadline:0
+msgid "Planned Date"
+msgstr "Planned Date"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,priority:0
+#: field:hr.recruitment.report,priority:0
+msgid "Appreciation"
+msgstr "Appreciation"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job"
+msgstr "Job"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Print Interview"
+msgstr "Print Interview"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,stage_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,stage_id:0
+#: view:hr.recruitment.stage:0
+msgid "Stage"
+msgstr "Stage"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job3
+msgid "Second Interview"
+msgstr "Second Interview"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_exp:0
+msgid "Salary Expected"
+msgstr "Salary Expected"
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected:0
+msgid "Expected Salary"
+msgstr "Expected Salary"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "July"
+msgstr "July"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Subject"
+msgstr "Subject"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Job request for"
+msgstr "Job request for"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: model:ir.actions.act_window,name:hr_recruitment.crm_case_categ0_act_job
+#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ0_act_job
+msgid "Applicants"
+msgstr "Applicants"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "History Information"
+msgstr "History Information"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bac5
+msgid " > Bac +5"
+msgstr " > Bac +5"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_applicant
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_config_applicant
+msgid "Applicant"
+msgstr "Applicant"
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,sequence:0
+msgid "Gives the sequence order when displaying a list of stages."
+msgstr "Gives the sequence order when displaying a list of stages."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contact"
+msgstr "Contact"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Qualification"
+msgstr "Qualification"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "March"
+msgstr "March"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
+msgid "Stage of Recruitment"
+msgstr "Stage of Recruitment"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_job_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_stage
+msgid "Stages"
+msgstr "Stages"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_cancel:0
+msgid "%Cancel"
+msgstr "%Cancel"
+
+#. module: hr_recruitment
+#: field:hr.applicant,probability:0
+msgid "Probability"
+msgstr "Probability"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "September"
+msgstr "September"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "December"
+msgstr "December"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Applicant "
+msgstr "Applicant "
+
+#. module: hr_recruitment
+#: model:ir.module.module,shortdesc:hr_recruitment.module_meta_information
+msgid "HR - Recruitement"
+msgstr "HR - Recruitement"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job Info"
+msgstr "Job Info"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job2
+msgid "First Interview"
+msgstr "First Interview"
+
+#. module: hr_recruitment
+#: field:hr.applicant,write_date:0
+msgid "Update Date"
+msgstr "Update Date"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Interview Question"
+msgstr "Interview Question"
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed:0
+msgid "Proposed Salary"
+msgstr "Proposed Salary"
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job1
+msgid "Salesman"
+msgstr "Salesman"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Meeting"
+msgstr "Schedule Meeting"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Search Jobs"
+msgstr "Search Jobs"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,category_id:0
+msgid "Category"
+msgstr "Category"
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_name:0
+msgid "Applicant's Name"
+msgstr "Applicant's Name"
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Very Good"
+msgstr "Very Good"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "# Cases"
+msgstr "# Cases"
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_open:0
+msgid "Opened"
+msgstr "Opened"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Group By ..."
+msgstr "Group By ..."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "In Progress"
+msgstr "In Progress"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reset to New"
+msgstr "Reset to New"
+
+#. module: hr_recruitment
+#: help:hr.applicant,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: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: hr_recruitment
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+msgid "Stage Definition"
+msgstr "Stage Definition"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr "Avg. Delay to Close"
+
+#. module: hr_recruitment
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed:0
+msgid "Salary Proposed by the Organisation"
+msgstr "Salary Proposed by the Organisation"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+msgid "Pending"
+msgstr "Pending"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Status"
+msgstr "Status"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "August"
+msgstr "August"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,type_id:0
+#: view:hr.recruitment.degree:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,type_id:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_degree_action
+msgid "Degree"
+msgstr "Degree"
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_phone:0
+msgid "Phone"
+msgstr "Phone"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Global CC"
+msgstr "Global CC"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "June"
+msgstr "June"
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_stage_act
+msgid "Applicant Stages"
+msgstr "Applicant Stages"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job7
+msgid "Refused by Company"
+msgstr "Refused by Company"
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_close:0
+msgid "Days to Close"
+msgstr "Days to Close"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Excellent"
+msgstr "Excellent"
+
+#. module: hr_recruitment
+#: field:hr.applicant,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "November"
+msgstr "November"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Extended Filters..."
+msgstr "Extended Filters..."
+
+#. module: hr_recruitment
+#: field:hr.applicant,response:0
+msgid "Response"
+msgstr "Response"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_licenced
+msgid "Licenced"
+msgstr "Licenced"
+
+#. module: hr_recruitment
+#: model:ir.module.module,description:hr_recruitment.module_meta_information
+msgid "\n"
+"Manages job positions and the recruitement process. It's integrated with the\n"
+"survey module to allow you to define interview for different jobs.\n"
+"\n"
+"This module is integrated with the mail gateway to automatically tracks email\n"
+"sent to jobs@YOURCOMPANY.com. It's also integrated with the document management\n"
+"system to store and search in your CV base.\n"
+" "
+msgstr "\n"
+"Manages job positions and the recruitement process. It's integrated with the\n"
+"survey module to allow you to define interview for different jobs.\n"
+"\n"
+"This module is integrated with the mail gateway to automatically tracks email\n"
+"sent to jobs@YOURCOMPANY.com. It's also integrated with the document management\n"
+"system to store and search in your CV base.\n"
+" "
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_phonecall
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_job2phonecall
+msgid "Schedule Phone Call"
+msgstr "Schedule Phone Call"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "January"
+msgstr "January"
+
+#. module: hr_recruitment
+#: help:hr.applicant,email_from:0
+msgid "These people will receive email."
+msgstr "These people will receive email."
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Not Good"
+msgstr "Not Good"
+
+#. module: hr_recruitment
+#: field:hr.applicant,date:0
+#: field:hr.recruitment.report,date:0
+msgid "Date"
+msgstr "Date"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+msgid "Phone Call Description"
+msgstr "Phone Call Description"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Are you sure you want to create a partner based on this job request ?"
+msgstr "Are you sure you want to create a partner based on this job request ?"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Jobs - Recruitment Form"
+msgstr "Jobs - Recruitment Form"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,partner_address_id:0
+msgid "Partner Contact Name"
+msgstr "Partner Contact Name"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr "from Mailgate."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Attachments"
+msgstr "Attachments"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
+msgid "Contract Proposed"
+msgstr "Contract Proposed"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,state:0
+msgid "State"
+msgstr "State"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Communication history"
+msgstr "Communication history"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: view:hr.recruitment.partner.create:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_categ_action
+msgid "Applicant Categories"
+msgstr "Applicant Categories"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Open"
+msgstr "Open"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already existing with the same name."
+msgstr "A partner is already existing with the same name."
+
+#. module: hr_recruitment
+#: 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: hr_recruitment
+#: help:hr.recruitment.degree,sequence:0
+msgid "Gives the sequence order when displaying a list of degrees."
+msgstr "Gives the sequence order when displaying a list of degrees."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,user_id:0
+msgid "Responsible"
+msgstr "Responsible"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_report_all
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_report_all
+msgid "Recruitment Analysis"
+msgstr "Recruitment Analysis"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.report:0
+msgid "Current"
+msgstr "Current"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "A Job Request created"
+msgstr "A Job Request created"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "October"
+msgstr "October"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Details"
+msgstr "Details"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Cases By Stage and Estimates"
+msgstr "Cases By Stage and Estimates"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reply"
+msgstr "Reply"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Hired."
+msgstr "is Hired."
+
+#. module: hr_recruitment
+#: field:hr.applicant,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "May"
+msgstr "May"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job5
+msgid "Contract Signed"
+msgstr "Contract Signed"
+
+#. module: hr_recruitment
+#: constraint:crm.case.section:0
+msgid "Error ! You cannot create recursive Sales team."
+msgstr "Error ! You cannot create recursive Sales team."
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Refused"
+msgstr "Refused"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Hired"
+msgstr "Hired"
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job6
+msgid "Refused by Employee"
+msgstr "Refused by Employee"
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "On Average"
+msgstr "On Average"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
+msgid "Degree of Recruitment"
+msgstr "Degree of Recruitment"
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Emails"
+msgstr "Emails"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "February"
+msgstr "February"
+
+#. module: hr_recruitment
+#: field:hr.applicant,name:0
+#: field:hr.recruitment.degree,name:0
+#: field:hr.recruitment.stage,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
+msgid "Create Partner from job application"
+msgstr "Create Partner from job application"
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: hr_recruitment
+#: model:crm.case.section,name:hr_recruitment.section_hr_department
+msgid "HR Department"
+msgstr "HR Department"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.degree,sequence:0
+#: field:hr.recruitment.stage,sequence:0
+msgid "Sequence"
+msgstr "Sequence"
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,user_id:0
+msgid "Assign To"
+msgstr "Assign To"
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,year:0
+msgid "Year"
+msgstr "Year"
+
+#. module: hr_recruitment
+#: help:hr.recruitment.report,delay_close:0
+#: help:hr.recruitment.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr "Number of Days to close the project issue"
+
+#. module: hr_recruitment
+#: field:hr.applicant,survey:0
+#: field:hr.job,survey_id:0
+msgid "Survey"
+msgstr "Survey"
+
diff --git a/addons/hr_recruitment/i18n/fr.po b/addons/hr_recruitment/i18n/fr.po
new file mode 100644
index 00000000000..9ab2d5b02df
--- /dev/null
+++ b/addons/hr_recruitment/i18n/fr.po
@@ -0,0 +1,997 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_recruitment
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:21:30+0000\n"
+"PO-Revision-Date: 2010-08-20 06:21:30+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: hr_recruitment
+#: help:hr.applicant,active:0
+msgid "If the active field is set to false, it will allow you to hide the case without removing it."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: field:hr.recruitment.stage,requirements:0
+msgid "Requirements"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Open."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid " 7 Days "
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,department_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,department_id:0
+#: field:hr.recruitment.stage,department_id:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,company_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.partner.create,close:0
+msgid "Close job request"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,note:0
+msgid "Goals"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.partner.create:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
+msgid "Create Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contract Data"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "365 Days"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "30 Days"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next Actions"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job2
+msgid "Junior Developer"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Notes"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,job_id:0
+#: field:hr.recruitment.report,job_id:0
+msgid "Applied Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
+msgid "Graduate"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job1
+msgid "Initial Jobs Demand"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,reference:0
+msgid "Reference"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "My Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_recruitment
+msgid "Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_prop:0
+msgid "Salary Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_expected:0
+msgid "Salary Expected by Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.recruitment.report,available:0
+msgid "Availability"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Previous"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_closed:0
+#: field:hr.recruitment.report,date_closed:0
+#: selection:hr.recruitment.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_phonecall.py:0
+#, python-format
+msgid "Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Convert To Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_report
+msgid "Recruitments Statistics"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_done:0
+msgid "%Done"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_job
+msgid "Job Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Forward"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule a Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already defined on this job request."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+msgid "New"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,availability:0
+msgid "Availability (Days)"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Available"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,deadline:0
+msgid "Planned Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,priority:0
+#: field:hr.recruitment.report,priority:0
+msgid "Appreciation"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Print Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,stage_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,stage_id:0
+#: view:hr.recruitment.stage:0
+msgid "Stage"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job3
+msgid "Second Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_exp:0
+msgid "Salary Expected"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected:0
+msgid "Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Subject"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Job request for"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: model:ir.actions.act_window,name:hr_recruitment.crm_case_categ0_act_job
+#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ0_act_job
+msgid "Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "History Information"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Dates"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bac5
+msgid " > Bac +5"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_applicant
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_config_applicant
+msgid "Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,sequence:0
+msgid "Gives the sequence order when displaying a list of stages."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Qualification"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
+msgid "Stage of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_job_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_stage
+msgid "Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_cancel:0
+msgid "%Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,probability:0
+msgid "Probability"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Applicant "
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.module.module,shortdesc:hr_recruitment.module_meta_information
+msgid "HR - Recruitement"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job Info"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job2
+msgid "First Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Interview Question"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed:0
+msgid "Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job1
+msgid "Salesman"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Meeting"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Search Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_name:0
+msgid "Applicant's Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Very Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "# Cases"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Group By ..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reset to New"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,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: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+msgid "Stage Definition"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed:0
+msgid "Salary Proposed by the Organisation"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,type_id:0
+#: view:hr.recruitment.degree:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,type_id:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_degree_action
+msgid "Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Global CC"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_stage_act
+msgid "Applicant Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job7
+msgid "Refused by Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Excellent"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,response:0
+msgid "Response"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_licenced
+msgid "Licenced"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.module.module,description:hr_recruitment.module_meta_information
+msgid "\n"
+"Manages job positions and the recruitement process. It's integrated with the\n"
+"survey module to allow you to define interview for different jobs.\n"
+"\n"
+"This module is integrated with the mail gateway to automatically tracks email\n"
+"sent to jobs@YOURCOMPANY.com. It's also integrated with the document management\n"
+"system to store and search in your CV base.\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_phonecall
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_job2phonecall
+msgid "Schedule Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Not Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date:0
+#: field:hr.recruitment.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+msgid "Phone Call Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Are you sure you want to create a partner based on this job request ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Jobs - Recruitment Form"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,partner_address_id:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Attachments"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
+msgid "Contract Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Communication history"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: view:hr.recruitment.partner.create:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_categ_action
+msgid "Applicant Categories"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already existing with the same name."
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.degree,sequence:0
+msgid "Gives the sequence order when displaying a list of degrees."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_report_all
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_report_all
+msgid "Recruitment Analysis"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.report:0
+msgid "Current"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "A Job Request created"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Details"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reply"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Hired."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,description:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job5
+msgid "Contract Signed"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:crm.case.section:0
+msgid "Error ! You cannot create recursive Sales team."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job6
+msgid "Refused by Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "On Average"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
+msgid "Degree of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Emails"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,name:0
+#: field:hr.recruitment.degree,name:0
+#: field:hr.recruitment.stage,name:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
+msgid "Create Partner from job application"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.section,name:hr_recruitment.section_hr_department
+msgid "HR Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.degree,sequence:0
+#: field:hr.recruitment.stage,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,user_id:0
+msgid "Assign To"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.report,delay_close:0
+#: help:hr.recruitment.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,survey:0
+#: field:hr.job,survey_id:0
+msgid "Survey"
+msgstr ""
+
diff --git a/addons/hr_recruitment/i18n/hr_recruitment.pot b/addons/hr_recruitment/i18n/hr_recruitment.pot
new file mode 100644
index 00000000000..9ab2d5b02df
--- /dev/null
+++ b/addons/hr_recruitment/i18n/hr_recruitment.pot
@@ -0,0 +1,997 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * hr_recruitment
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:21:30+0000\n"
+"PO-Revision-Date: 2010-08-20 06:21:30+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: hr_recruitment
+#: help:hr.applicant,active:0
+msgid "If the active field is set to false, it will allow you to hide the case without removing it."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: field:hr.recruitment.stage,requirements:0
+msgid "Requirements"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Open."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid " 7 Days "
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,department_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,department_id:0
+#: field:hr.recruitment.stage,department_id:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,company_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.partner.create,close:0
+msgid "Close job request"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,note:0
+msgid "Goals"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.partner.create:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
+msgid "Create Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contract Data"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "365 Days"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "30 Days"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next Actions"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job2
+msgid "Junior Developer"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Notes"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,job_id:0
+#: field:hr.recruitment.report,job_id:0
+msgid "Applied Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
+msgid "Graduate"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job1
+msgid "Initial Jobs Demand"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_address_id:0
+msgid "Partner Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,reference:0
+msgid "Reference"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "My Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_recruitment
+msgid "Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_prop:0
+msgid "Salary Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_expected:0
+msgid "Salary Expected by Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.recruitment.report,available:0
+msgid "Availability"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Previous"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_closed:0
+#: field:hr.recruitment.report,date_closed:0
+#: selection:hr.recruitment.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_phonecall.py:0
+#, python-format
+msgid "Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Convert To Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_report
+msgid "Recruitments Statistics"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_done:0
+msgid "%Done"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_job
+msgid "Job Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Forward"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Send New Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule a Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already defined on this job request."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+msgid "New"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,availability:0
+msgid "Availability (Days)"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,avg_answers:0
+msgid "Avg. Answers"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Available"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,deadline:0
+msgid "Planned Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,priority:0
+#: field:hr.recruitment.report,priority:0
+msgid "Appreciation"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Print Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,stage_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,stage_id:0
+#: view:hr.recruitment.stage:0
+msgid "Stage"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job3
+msgid "Second Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,salary_exp:0
+msgid "Salary Expected"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected:0
+msgid "Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Subject"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Job request for"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: model:ir.actions.act_window,name:hr_recruitment.crm_case_categ0_act_job
+#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ0_act_job
+msgid "Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "History Information"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Dates"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bac5
+msgid " > Bac +5"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_applicant
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_config_applicant
+msgid "Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,sequence:0
+msgid "Gives the sequence order when displaying a list of stages."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Qualification"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
+msgid "Stage of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_job_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_stage
+msgid "Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,perc_cancel:0
+msgid "%Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,probability:0
+msgid "Probability"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "Applicant "
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.module.module,shortdesc:hr_recruitment.module_meta_information
+msgid "HR - Recruitement"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job Info"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job2
+msgid "First Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Interview Question"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed:0
+msgid "Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.categ,name:hr_recruitment.categ_job1
+msgid "Salesman"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Meeting"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Search Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_name:0
+msgid "Applicant's Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Very Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "# Cases"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Group By ..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reset to New"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,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: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+msgid "Stage Definition"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed:0
+msgid "Salary Proposed by the Organisation"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,type_id:0
+#: view:hr.recruitment.degree:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,type_id:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_degree_action
+msgid "Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Global CC"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_stage_act
+msgid "Applicant Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job7
+msgid "Refused by Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Excellent"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,response:0
+msgid "Response"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_licenced
+msgid "Licenced"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.module.module,description:hr_recruitment.module_meta_information
+msgid "\n"
+"Manages job positions and the recruitement process. It's integrated with the\n"
+"survey module to allow you to define interview for different jobs.\n"
+"\n"
+"This module is integrated with the mail gateway to automatically tracks email\n"
+"sent to jobs@YOURCOMPANY.com. It's also integrated with the document management\n"
+"system to store and search in your CV base.\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_phonecall
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_job2phonecall
+msgid "Schedule Phone Call"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Not Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date:0
+#: field:hr.recruitment.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+msgid "Phone Call Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Are you sure you want to create a partner based on this job request ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Jobs - Recruitment Form"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,partner_address_id:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "from Mailgate."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Attachments"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
+msgid "Contract Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Communication history"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.job2phonecall:0
+#: view:hr.recruitment.partner.create:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_categ_action
+msgid "Applicant Categories"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:0
+#, python-format
+msgid "A partner is already existing with the same name."
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.degree,sequence:0
+msgid "Gives the sequence order when displaying a list of degrees."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_report_all
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_report_all
+msgid "Recruitment Analysis"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: view:hr.recruitment.report:0
+msgid "Current"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "A Job Request created"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Details"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Reply"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:0
+#, python-format
+msgid "is Hired."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,description:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job5
+msgid "Contract Signed"
+msgstr ""
+
+#. module: hr_recruitment
+#: constraint:crm.case.section:0
+msgid "Error ! You cannot create recursive Sales team."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+msgid "Hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job6
+msgid "Refused by Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "On Average"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
+msgid "Degree of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Emails"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,name:0
+#: field:hr.recruitment.degree,name:0
+#: field:hr.recruitment.stage,name:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
+msgid "Create Partner from job application"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.case.section,name:hr_recruitment.section_hr_department
+msgid "HR Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.degree,sequence:0
+#: field:hr.recruitment.stage,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.job2phonecall,user_id:0
+msgid "Assign To"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.report,delay_close:0
+#: help:hr.recruitment.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,survey:0
+#: field:hr.job,survey_id:0
+msgid "Survey"
+msgstr ""
+
diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv
index e680fe8e6b9..bc7bc365b00 100644
--- a/addons/hr_recruitment/security/ir.model.access.csv
+++ b/addons/hr_recruitment/security/ir.model.access.csv
@@ -1,6 +1,9 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_applicant","hr.applicant","model_hr_applicant","base.group_hr_user",1,1,1,1
+"access_hr_applicant_user","hr.applicant.user","model_hr_applicant","base.group_hr_user",1,1,1,1
"access_hr_recruitment_report","hr.recruitment.report","model_hr_recruitment_report","base.group_hr_manager",1,0,0,0
-"access_hr_recruitment_stage","hr.recruitment.stage","model_hr_recruitment_stage","base.group_hr_user",1,1,1,1
+"access_hr_recruitment_stage_user","hr.recruitment.stage.user","model_hr_recruitment_stage","base.group_hr_user",1,1,1,1
"access_hr_recruitment_degree","hr.recruitment.degree","model_hr_recruitment_degree","base.group_hr_user",1,1,1,1
-"access_hr_recruitment_stage","hr.recruitment.stage","model_hr_recruitment_stage","base.group_system",1,1,1,1
+"access_hr_recruitment_stage_system","hr.recruitment.stage.system","model_hr_recruitment_stage","base.group_system",1,1,1,1
+"access_hr_applicant_manager","hr.applicant.manager","model_hr_applicant","base.group_hr_manager",1,0,0,0
+"access_hr_applicant_system","hr.applicant.system","model_hr_applicant","base.group_system",1,0,0,0
+"access_hr_recruitment_stage_manager","hr.recruitment.stage.manager","model_hr_recruitment_stage","base.group_hr_manager",1,0,0,0
diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
index 4d3917178d7..99d064a67e8 100644
--- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
+++ b/addons/hr_recruitment/wizard/hr_recruitment_phonecall.py
@@ -68,7 +68,6 @@ class job2phonecall(osv.osv_memory):
if context is None:
context = {}
form = self.read(cr, uid, ids, [], context=context)[0]
-# form = data['form']
result = mod_obj._get_id(cr, uid, 'crm', 'view_crm_case_phonecalls_filter')
res = mod_obj.read(cr, uid, result, ['res_id'], context=context)
# Select the view
@@ -88,7 +87,6 @@ class job2phonecall(osv.osv_memory):
'categ_id' : form['category_id'],
'description' : form['note'],
'date' : form['deadline'],
-# 'section_id' : form['section_id'],
'description':job.description,
'partner_id':job.partner_id.id,
'partner_address_id':job.partner_address_id.id,
@@ -99,8 +97,6 @@ class job2phonecall(osv.osv_memory):
}, context=context)
new_phonecall = phonecall_case_obj.browse(cr, uid, new_phonecall_id, context=context)
vals = {}
-# if not job.case_id:
-# vals.update({'phonecall_id' : new_phonecall.id})
job_case_obj.write(cr, uid, [job.id], vals, context=context)
job_case_obj.case_cancel(cr, uid, [job.id])
phonecall_case_obj.case_open(cr, uid, [new_phonecall_id])
diff --git a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml b/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml
index f7c162594d2..95fe9c83018 100644
--- a/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml
+++ b/addons/hr_recruitment/wizard/hr_recruitment_phonecall_view.xml
@@ -36,15 +36,5 @@
new
-
-
\ No newline at end of file
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index ec6fbc2d1fc..de448ced584 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -43,8 +43,8 @@ class hr_analytic_timesheet(osv.osv):
_inherits = {'account.analytic.line': 'line_id'}
_order = "id desc"
_columns = {
- 'line_id' : fields.many2one('account.analytic.line', 'Analytic line', ondelete='cascade'),
- 'partner_id': fields.related('account_id', 'partner_id', type='many2one', string='Partner Id', relation='account.analytic.account', store=True),
+ 'line_id' : fields.many2one('account.analytic.line', 'Analytic line', ondelete='cascade', required=True),
+ 'partner_id': fields.related('account_id', 'partner_id', type='many2one', string='Partner Id', relation='res.partner', store=True),
}
def unlink(self, cr, uid, ids, context=None):
@@ -60,11 +60,18 @@ class hr_analytic_timesheet(osv.osv):
def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount, unit, context=None):
if context is None:
context = {}
- res = {}
+ res = {'value':{}}
if prod_id and unit_amount:
# find company
company_id = self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=context)
res = self.pool.get('account.analytic.line').on_change_unit_amount(cr, uid, id, prod_id, unit_amount, company_id, unit, context=context)
+ # update unit of measurement
+ if prod_id:
+ uom = self.pool.get('product.product').browse(cr, uid, prod_id, context=context)
+ if uom.uom_id:
+ res['value'].update({'product_uom_id': uom.uom_id.id})
+ else:
+ res['value'].update({'product_uom_id': False})
return res
def _getEmployeeProduct(self, cr, uid, context=None):
@@ -73,7 +80,7 @@ class hr_analytic_timesheet(osv.osv):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
if emp_id:
- emp=emp_obj.browse(cr, uid, emp_id[0], context=context)
+ emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if emp.product_id:
return emp.product_id.id
return False
@@ -84,7 +91,7 @@ class hr_analytic_timesheet(osv.osv):
context = {}
emp_id = emp_obj.search(cr, uid, [('user_id', '=', context.get('user_id', uid))], context=context)
if emp_id:
- emp=emp_obj.browse(cr, uid, emp_id[0], context=context)
+ emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if emp.product_id:
return emp.product_id.uom_id.id
return False
@@ -97,7 +104,7 @@ class hr_analytic_timesheet(osv.osv):
if emp_id:
emp = emp_obj.browse(cr, uid, emp_id[0], context=context)
if bool(emp.product_id):
- a = emp.product_id.product_tmpl_id.property_account_expense.id
+ a = emp.product_id.product_tmpl_id.property_account_expense.id
if not a:
a = emp.product_id.categ_id.property_account_expense_categ.id
if a:
@@ -152,12 +159,14 @@ class hr_analytic_timesheet(osv.osv):
def on_change_user_id(self, cr, uid, ids, user_id):
if not user_id:
return {}
+ context = {'user_id': user_id}
return {'value' : {
- 'product_id' : self._getEmployeeProduct(cr,user_id, context= {}),
- 'product_uom_id' : self._getEmployeeUnit(cr, user_id, context= {}),
- 'general_account_id' :self. _getGeneralAccount(cr, user_id, context= {}),
- 'journal_id' : self._getAnalyticJournal(cr, user_id, context= {}),
+ 'product_id' : self._getEmployeeProduct(cr, uid, context),
+ 'product_uom_id' : self._getEmployeeUnit(cr, uid, context),
+ 'general_account_id' :self._getGeneralAccount(cr, uid, context),
+ 'journal_id' : self._getAnalyticJournal(cr, uid, context),
}}
+
hr_analytic_timesheet()
-# 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/hr_timesheet/hr_timesheet_demo.xml b/addons/hr_timesheet/hr_timesheet_demo.xml
index e64f3628491..f344b60c83e 100644
--- a/addons/hr_timesheet/hr_timesheet_demo.xml
+++ b/addons/hr_timesheet/hr_timesheet_demo.xml
@@ -22,8 +22,8 @@
-
- Working Hours For OpenERP SA
+
+ Requirements analysis and specification
@@ -35,5 +35,58 @@
+
+ Design and specification
+
+
+
+
+
+
+
+
+
+
+
+
+ Coding and module testing
+
+
+
+
+
+
+
+
+
+
+
+
+ Integration and system testing
+
+
+
+
+
+
+
+
+
+
+
+
+ Delivery and maintenance
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_timesheet/hr_timesheet_report.xml b/addons/hr_timesheet/hr_timesheet_report.xml
index 081972582b0..3e5f6c26619 100644
--- a/addons/hr_timesheet/hr_timesheet_report.xml
+++ b/addons/hr_timesheet/hr_timesheet_report.xml
@@ -13,32 +13,8 @@
sequence="5" />
-
-
-
-
-
-
-
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 34be022bb0f..d40d1b8733e 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -1,7 +1,11 @@
-
+
+
+
+
hr.analytic.timesheet.tree
hr.analytic.timesheet
@@ -34,7 +38,7 @@
-
+
@@ -49,6 +53,10 @@
+
+
@@ -60,8 +68,6 @@
-
-
My Working Hours
ir.actions.act_window
@@ -70,7 +76,7 @@
tree,form
[('user_id','=',uid)]
- {"search_default_user_id":uid}
+ {"search_default_user_id":uid, "search_default_my": 1}
@@ -82,6 +88,7 @@
tree,form
{"search_default_user_id":uid}
+ This functionality gives you a list of work done by user, product and analytic account (or project). A search tool allows you to make fine-grained analysis.
@@ -92,12 +99,12 @@
hr.employee
-
+
-
+
diff --git a/addons/hr_timesheet/hr_timesheet_wizard.xml b/addons/hr_timesheet/hr_timesheet_wizard.xml
index fa36c03ae10..ebc084668b7 100644
--- a/addons/hr_timesheet/hr_timesheet_wizard.xml
+++ b/addons/hr_timesheet/hr_timesheet_wizard.xml
@@ -1,8 +1,5 @@
-
+
diff --git a/addons/hr_timesheet/i18n/de.po b/addons/hr_timesheet/i18n/de.po
index 36fac2ca8bc..19a498b3a6c 100644
--- a/addons/hr_timesheet/i18n/de.po
+++ b/addons/hr_timesheet/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 06:49+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:57+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet
@@ -56,8 +56,8 @@ msgstr "(frei lassen um aktuelle Zeiteinstellung zu verwenden)"
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: hr_timesheet
#: wizard_view:hr_timesheet.si_so,sign_in:0
@@ -243,7 +243,9 @@ msgstr "Analyt. Zeitpositionen"
#. module: hr_timesheet
#: 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: hr_timesheet
#: wizard_view:hr.analytical.timesheet_users,init:0
diff --git a/addons/hr_timesheet/i18n/tr.po b/addons/hr_timesheet/i18n/tr.po
index 45b27666ba2..22d713a1c58 100644
--- a/addons/hr_timesheet/i18n/tr.po
+++ b/addons/hr_timesheet/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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09: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-12 03:57+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet
diff --git a/addons/hr_timesheet/process/hr_timesheet_process.xml b/addons/hr_timesheet/process/hr_timesheet_process.xml
index 1bb7aeeea60..9b9efa3d19e 100644
--- a/addons/hr_timesheet/process/hr_timesheet_process.xml
+++ b/addons/hr_timesheet/process/hr_timesheet_process.xml
@@ -1,10 +1,6 @@
-
-
-
+
\ No newline at end of file
diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv
index ad3583bfab9..cab38e5b519 100644
--- a/addons/hr_timesheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet/security/ir.model.access.csv
@@ -5,3 +5,5 @@
"access_product_product_user","product.product user","product.model_product_product","base.group_hr_user",1,0,0,0
"access_product_template_hr_timesheet","product.template.hr.timesheet","product.model_product_template","base.group_hr_user",1,0,0,0
"access_product_uom_hr_timesheet","product.uom.hr.timesheet","product.model_product_uom","base.group_hr_user",1,0,0,0
+"access_hr_analytic_timesheet_manager","hr.analytic.timesheet.manager","model_hr_analytic_timesheet","base.group_hr_manager",1,0,0,0
+"access_hr_analytic_timesheet_system","hr.analytic.timesheet.system","model_hr_analytic_timesheet","base.group_system",1,0,0,0
diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml
index 98c48e3e124..3b110b52f1d 100644
--- a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml
+++ b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml
@@ -69,10 +69,5 @@
new
-
-
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 730adebe049..cc6137313b1 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -28,8 +28,8 @@ class hr_timesheet_invoice_factor(osv.osv):
_description = "Invoice Rate"
_columns = {
'name': fields.char('Internal name', size=128, required=True),
- 'customer_name': fields.char('Name', size=128),
- 'factor': fields.float('Discount (%)', required=True),
+ 'customer_name': fields.char('Name', size=128, help="Name of the customer"),
+ 'factor': fields.float('Discount (%)', required=True, help="Discount in percentage"),
}
_defaults = {
'factor': lambda *a: 0.0,
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml
index eed0e97ecf7..3463dc92bd8 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml
@@ -6,15 +6,8 @@
name="Reporting"
parent="hr.menu_hr_root"
sequence="10" />
-
-
-
-
-
-
-
-
-
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_wizard.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_wizard.xml
index 50ca292d39d..30816750035 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_wizard.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_wizard.xml
@@ -1,8 +1,6 @@
-
-
diff --git a/addons/hr_timesheet_invoice/i18n/tr.po b/addons/hr_timesheet_invoice/i18n/tr.po
index 2d68d94969d..3c7a5dc4b8e 100644
--- a/addons/hr_timesheet_invoice/i18n/tr.po
+++ b/addons/hr_timesheet_invoice/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-11 04:42+0000\n"
+"PO-Revision-Date: 2010-08-29 09:39+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-12 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet_invoice
diff --git a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
index cabf51546c2..163e641582c 100644
--- a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
+++ b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml
@@ -47,26 +47,26 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -98,7 +98,6 @@
{'search_default_month':1,'search_default_User':1,'search_default_user_id':uid,'group_by_no_leaf':1,'group_by':[]}
-
@@ -184,7 +183,6 @@
{"search_default_user_id":uid}
-
@@ -250,7 +248,6 @@
{"search_default_user_id":uid}
-
@@ -324,7 +321,6 @@
{"search_default_user_id":uid}
-
@@ -398,7 +394,6 @@
graph,tree
-
@@ -417,7 +412,7 @@
tree
-
+
@@ -435,7 +430,7 @@
-
+
random.timesheet.lines.search
random.timesheet.lines
search
@@ -444,8 +439,8 @@
-
-
+
+
@@ -453,7 +448,7 @@
-
+
@@ -470,7 +465,7 @@
-
+
@@ -489,29 +484,5 @@
-
-
-
diff --git a/addons/hr_timesheet_invoice/report/report_analytic_view.xml b/addons/hr_timesheet_invoice/report/report_analytic_view.xml
index de46463bb12..32129287470 100644
--- a/addons/hr_timesheet_invoice/report/report_analytic_view.xml
+++ b/addons/hr_timesheet_invoice/report/report_analytic_view.xml
@@ -57,7 +57,6 @@
tree,graph
[('state','=','open')]
-
report.account.analytic.line.to.invoice
@@ -134,7 +133,6 @@
tree,graph
-
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_analytic_cost_ledger_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_analytic_cost_ledger_view.xml
index cf23ae129cd..71706d9cdfe 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_analytic_cost_ledger_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_analytic_cost_ledger_view.xml
@@ -30,15 +30,5 @@
new
-
-
\ No newline at end of file
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
index 57a1e4aaaa2..4e1926fe069 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
@@ -182,8 +182,6 @@ class hr_timesheet_invoice_create(osv.osv_memory):
details.append("%s" % (line['unit_amount'], ))
if data['name']:
details.append(line['name'])
- #if data['price']:
- # details.append(abs(line['amount']))
note.append(u' - '.join(map(lambda x: unicode(x) or '',details)))
curr_line['note'] = "\n".join(map(lambda x: unicode(x) or '',note))
@@ -202,18 +200,6 @@ class hr_timesheet_invoice_create(osv.osv_memory):
act_win['name'] = _('Invoices')
return act_win
-# return {
-# 'domain': "[('id','in', ["+','.join(map(str,invoices))+"])]",
-# 'name': _('Invoices'),
-# 'view_type': 'form',
-# 'view_mode': 'tree,form',
-# 'res_model': 'account.invoice',
-# 'view_id': False,
-# 'context': "{'type':'out_invoice'}",
-# 'type': 'ir.actions.act_window',
-# 'search_view_id': res['res_id']
-# }
-
hr_timesheet_invoice_create()
diff --git a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
index 0c69af2616b..70d36184980 100644
--- a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
+++ b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml
@@ -48,24 +48,5 @@
-
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
index c0e0d1db620..250120c5a45 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_demo.xml
@@ -8,73 +8,12 @@
-
+
Sheet 1
-
-
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index f04e9253b7a..e4c4fde9cc9 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -39,7 +39,7 @@
-
+
@@ -53,43 +53,13 @@
-
+
-
hr.timesheet.sheet.form
hr_timesheet_sheet.sheet
@@ -227,15 +197,14 @@
-
-
-
+ sequence="1"/>
-
diff --git a/addons/hr_timesheet_sheet/i18n/ca.po b/addons/hr_timesheet_sheet/i18n/ca.po
index d86ccf50346..3b662465a4c 100644
--- a/addons/hr_timesheet_sheet/i18n/ca.po
+++ b/addons/hr_timesheet_sheet/i18n/ca.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-17 07:01+0000\n"
+"PO-Revision-Date: 2010-08-13 11:17+0000\n"
"Last-Translator: Raimon Esteve (Zikzakmedia) \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:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet_sheet
diff --git a/addons/hr_timesheet_sheet/i18n/lt.po b/addons/hr_timesheet_sheet/i18n/lt.po
index d6ed693227a..2879dec5533 100644
--- a/addons/hr_timesheet_sheet/i18n/lt.po
+++ b/addons/hr_timesheet_sheet/i18n/lt.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-11 05:14+0000\n"
+"PO-Revision-Date: 2010-08-29 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-12 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet_sheet
diff --git a/addons/hr_timesheet_sheet/i18n/tr.po b/addons/hr_timesheet_sheet/i18n/tr.po
index ece4ed23b47..a4e4fa59082 100644
--- a/addons/hr_timesheet_sheet/i18n/tr.po
+++ b/addons/hr_timesheet_sheet/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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 07:31+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-12 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet_sheet
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
index cff67ddca5e..a786a123529 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
@@ -122,6 +122,6 @@
+ parent="hr_timesheet.menu_hr_reporting_timesheet" sequence="1" groups="base.group_hr_manager"/>
diff --git a/addons/hr_timesheet_sheet/security/ir.model.access.csv b/addons/hr_timesheet_sheet/security/ir.model.access.csv
index 9411a2db6a2..9c477432e79 100644
--- a/addons/hr_timesheet_sheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet_sheet/security/ir.model.access.csv
@@ -1,5 +1,8 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_hr_timesheet_sheet_sheet","hr_timesheet_sheet.sheet","model_hr_timesheet_sheet_sheet","base.group_hr_user",1,1,1,1
+"access_hr_timesheet_sheet_sheet_user","hr_timesheet_sheet.sheet.user","model_hr_timesheet_sheet_sheet","base.group_hr_user",1,1,1,1
"access_hr_timesheet_sheet_sheet_day","hr_timesheet_sheet.sheet.day","model_hr_timesheet_sheet_sheet_day","base.group_hr_user",1,1,1,1
"access_hr_timesheet_sheet_sheet_account","hr_timesheet_sheet.sheet.account","model_hr_timesheet_sheet_sheet_account","base.group_hr_user",1,1,1,1
-"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","base.group_hr_manager",1,0,0,0
+"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","base.group_hr_manager",1,1,1,1
+"access_hr_timesheet_sheet_sheet_manager","hr_timesheet_sheet.sheet.manager","model_hr_timesheet_sheet_sheet","base.group_hr_manager",1,0,0,0
+"access_hr_timesheet_sheet_sheet_system","hr_timesheet_sheet.sheet.system","model_hr_timesheet_sheet_sheet","base.group_system",1,0,0,0
+"access_timesheet_report_manager","timesheet.report.manager","model_timesheet_report","base.group_hr_manager",1,1,1,1
diff --git a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
index 1486d7f9bb4..d75968f5f16 100644
--- a/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
+++ b/addons/hr_timesheet_sheet/test/test_hr_timesheet_sheet.yml
@@ -9,6 +9,15 @@
partner_id: base.res_partner_desertic_hispafuentes
timesheet_max_difference: 1.0
+-
+ I assign this company to Admin user
+-
+ !record {model: res.users, id: base.user_root}:
+ company_id: res_company_openERP
+ company_ids:
+ - base.main_company
+ - res_company_openERP
+
-
I create a new employee “Mark Johnson”.
-
@@ -81,7 +90,7 @@
I create Timesheet Entry for time spend on today work.
-
- !record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet.sheet1}:
+ !record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_deddk0}:
timesheet_ids:
- account_id: account.analytic_sednacom
date: '05/26/2010'
@@ -98,20 +107,21 @@
if the difference between timesheet hour and attendance hour is more than 1 hour it will give message.
-
!python {model: hr_timesheet_sheet.sheet}: |
- uid = ref('base.user_root')
- import netsvc
- for sheet in self.browse(cr, uid, [ref('hr_timesheet_sheet_sheet_deddk0')]):
- di = sheet.user_id.company_id.timesheet_max_difference
- if (abs(sheet.total_difference) < di) or not di:
- wf_service = netsvc.LocalService("workflow")
- wf_service.trg_validate(uid, 'hr_timesheet_sheet.sheet', sheet.id, 'confirm', cr)
- else:
- print "Please verify that the total difference of the sheet is lower than %.2f" %di
+ uid = ref('base.user_root')
+ import netsvc
+ try:
+ self.button_confirm(cr, uid, [ref('hr_timesheet_sheet_sheet_deddk0')], {"lang": 'en_US', "active_ids":
+ [ref("hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form")], "tz": False, "active_model":
+ "ir.ui.menu", "department_id": False, "section_id": False, "search_default_my_timesheet":
+ 1, "search_default_user_id": 1, "project_id": False, "active_id": ref("hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form"),
+ })
+ except:
+ pass
-
- I Modified the timesheet record.
+ I Modified the timesheet record and make the difference less than 1 hour.
-
- !record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet.sheet1}:
+ !record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_deddk0}:
timesheet_ids:
- account_id: account.analytic_sednacom
date: '05/26/2010'
diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py
index 28ab76e8d5e..e7621ff278d 100644
--- a/addons/idea/__openerp__.py
+++ b/addons/idea/__openerp__.py
@@ -36,12 +36,12 @@
'depends': ['base'],
'init_xml': [],
'update_xml': [
+ 'security/idea_security.xml',
+ 'security/ir.model.access.csv',
'wizard/idea_post_vote_view.xml',
'idea_view.xml',
'idea_workflow.xml',
'report/report_vote_view.xml',
- 'security/idea_security.xml',
- 'security/ir.model.access.csv',
],
'demo_xml': [
"idea_data.xml"
diff --git a/addons/idea/i18n/lt.po b/addons/idea/i18n/lt.po
index f06b7e37221..817242a322c 100644
--- a/addons/idea/i18n/lt.po
+++ b/addons/idea/i18n/lt.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:47+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:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
diff --git a/addons/idea/i18n/zh_CN.po b/addons/idea/i18n/zh_CN.po
index ac81db0e36f..ac5469cd4fa 100644
--- a/addons/idea/i18n/zh_CN.po
+++ b/addons/idea/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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 10:08+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-12 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml
index 1020e2d03c1..97f48e5b6f6 100644
--- a/addons/idea/idea_view.xml
+++ b/addons/idea/idea_view.xml
@@ -383,7 +383,7 @@
+ id="menu_idea_vote_stat" action="action_idea_vote_stat" groups="base.group_tool_manager,base.group_tool_user,base.group_system"/>
diff --git a/addons/idea/report/report_vote_view.xml b/addons/idea/report/report_vote_view.xml
index b78c8c0648c..5b82cb4e396 100644
--- a/addons/idea/report/report_vote_view.xml
+++ b/addons/idea/report/report_vote_view.xml
@@ -79,12 +79,12 @@
Idea Vote Analysis
report.vote
form
- tree,graph
+ tree,form
{'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}
-
+
diff --git a/addons/idea/security/idea_security.xml b/addons/idea/security/idea_security.xml
index 29afc0c875f..ef377c799c9 100644
--- a/addons/idea/security/idea_security.xml
+++ b/addons/idea/security/idea_security.xml
@@ -1,22 +1,15 @@
-
-
-
-
-
-
-
Sales / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/idea/security/ir.model.access.csv b/addons/idea/security/ir.model.access.csv
index cd6f56cf60e..dae5127cc90 100644
--- a/addons/idea/security/ir.model.access.csv
+++ b/addons/idea/security/ir.model.access.csv
@@ -9,14 +9,17 @@
"access_report_vote","report.vote","model_report_vote","base.group_user",1,1,1,1
"access_idea_idea_sale_salesman","idea.idea.sale","model_idea_idea","base.group_sale_salesman",1,1,1,1
"access_idea_vote_sale_salesman","idea.vote.sale","model_idea_vote","base.group_sale_salesman",1,1,1,1
-"access_idea_category_user","idea.category user","model_idea_category","base.group_survey_user",1,1,1,1
-"access_idea_idea_user","idea.idea user","model_idea_idea","base.group_survey_user",1,1,1,1
-"access_idea_vote_user","idea.vote user","model_idea_vote","base.group_survey_user",1,1,1,1
-"access_idea_category_manager","idea.category manager","model_idea_category","base.group_survey_manager",1,0,0,0
-"access_idea_idea_manager","idea.idea manager","model_idea_idea","base.group_survey_manager",1,0,0,0
-"access_idea_vote_manager","idea.vote manager","model_idea_vote","base.group_survey_manager",1,0,0,0
-"access_idea_vote_stat_user","idea.vote.stat user","model_idea_vote_stat","base.group_survey_user",1,1,1,1
-"access_idea_comment_user","idea.comment user","model_idea_comment","base.group_survey_user",1,1,1,1
-"access_report_vote_manager","report.vote manager","model_report_vote","base.group_survey_manager",1,1,1,1
+"access_idea_category_user","idea.category user","model_idea_category","base.group_tool_user",1,1,1,1
+"access_idea_idea_user","idea.idea user","model_idea_idea","base.group_tool_user",1,1,1,1
+"access_idea_vote_user","idea.vote user","model_idea_vote","base.group_tool_user",1,1,1,1
+"access_idea_category_manager","idea.category manager","model_idea_category","base.group_tool_manager",1,0,0,0
+"access_idea_idea_manager","idea.idea manager","model_idea_idea","base.group_tool_manager",1,0,0,0
+"access_idea_vote_manager","idea.vote manager","model_idea_vote","base.group_tool_manager",1,0,0,0
+"access_idea_vote_stat_user","idea.vote.stat user","model_idea_vote_stat","base.group_tool_user",1,1,1,1
+"access_idea_comment_user","idea.comment user","model_idea_comment","base.group_tool_user",1,1,1,1
+"access_report_vote_manager","report.vote manager","model_report_vote","base.group_tool_manager",1,1,1,1
"access_idea_idea_system","idea.idea system","model_idea_idea","base.group_system",1,0,0,0
"access_idea_vote_system","idea.vote system","model_idea_vote","base.group_system",1,0,0,0
+"access_report_vote_system","report.vote system","model_report_vote","base.group_system",1,0,0,0
+"access_idea_vote_stat_manager","idea.vote.stat manager","model_idea_vote_stat","base.group_tool_manager",1,1,1,1
+"access_idea_vote_stat_system","idea.vote.stat system","model_idea_vote_stat","base.group_system",1,1,1,1
diff --git a/addons/knowledge/i18n/en_US.po b/addons/knowledge/i18n/en_US.po
new file mode 100644
index 00000000000..6927db4ced1
--- /dev/null
+++ b/addons/knowledge/i18n/en_US.po
@@ -0,0 +1,149 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * knowledge
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:00:40+0000\n"
+"PO-Revision-Date: 2010-08-20 07:00:40+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: knowledge
+#: 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: knowledge
+#: field:knowledge.installer,wiki:0
+msgid "Collaborative Content (Wiki)"
+msgstr "Collaborative Content (Wiki)"
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_quality_manual:0
+msgid "Creates an example skeleton for a standard quality manual."
+msgstr "Creates an example skeleton for a standard quality manual."
+
+#. module: knowledge
+#: field:knowledge.installer,document_ftp:0
+msgid "Shared Repositories (FTP)"
+msgstr "Shared Repositories (FTP)"
+
+#. module: knowledge
+#: model:ir.module.module,shortdesc:knowledge.module_meta_information
+msgid "Knowledge Management System"
+msgstr "Knowledge Management System"
+
+#. module: knowledge
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: knowledge
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document
+msgid "Knowledge"
+msgstr "Knowledge"
+
+#. module: knowledge
+#: help:knowledge.installer,document_webdav:0
+msgid "Provides a WebDAV access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through your standard file browser."
+msgstr "Provides a WebDAV access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through your standard file browser."
+
+#. module: knowledge
+#: field:knowledge.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Configuration Progress"
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "title"
+msgstr "title"
+
+#. module: knowledge
+#: help:knowledge.installer,document_ftp:0
+msgid "Provides an FTP access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through a standard FTP client."
+msgstr "Provides an FTP access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through a standard FTP client."
+
+#. module: knowledge
+#: model:ir.module.module,description:knowledge.module_meta_information
+msgid "Installer for knowledge-based tools\n"
+" "
+msgstr "Installer for knowledge-based tools\n"
+" "
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document_configuration
+msgid "Configuration"
+msgstr "Configuration"
+
+#. module: knowledge
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: knowledge
+#: model:ir.actions.act_window,name:knowledge.action_knowledge_installer
+msgid "Knowledge Modules Installation"
+msgstr "Knowledge Modules Installation"
+
+#. module: knowledge
+#: view:ir.actions.todo:0
+msgid "Launch"
+msgstr "Launch"
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_quality_manual:0
+msgid "Quality Manual"
+msgstr "Quality Manual"
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "Templates of Content"
+msgstr "Templates of Content"
+
+#. module: knowledge
+#: field:knowledge.installer,document_webdav:0
+msgid "Shared Repositories (WebDAV)"
+msgstr "Shared Repositories (WebDAV)"
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_faq:0
+msgid "Creates a skeleton internal FAQ pre-filled with documentation about OpenERP's Document Management System."
+msgstr "Creates a skeleton internal FAQ pre-filled with documentation about OpenERP's Document Management System."
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_faq:0
+msgid "Internal FAQ"
+msgstr "Internal FAQ"
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document2
+msgid "Collaborative Content"
+msgstr "Collaborative Content"
+
+#. module: knowledge
+#: field:knowledge.installer,config_logo:0
+msgid "Image"
+msgstr "Image"
+
+#. module: knowledge
+#: model:ir.model,name:knowledge.model_knowledge_installer
+msgid "knowledge.installer"
+msgstr "knowledge.installer"
+
+#. module: knowledge
+#: help:knowledge.installer,wiki:0
+msgid "Lets you create wiki pages and page groups in order to keep track of business knowledge and share it with and between your employees."
+msgstr "Lets you create wiki pages and page groups in order to keep track of business knowledge and share it with and between your employees."
+
diff --git a/addons/knowledge/i18n/fr.po b/addons/knowledge/i18n/fr.po
new file mode 100644
index 00000000000..1def8c74b0d
--- /dev/null
+++ b/addons/knowledge/i18n/fr.po
@@ -0,0 +1,148 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * knowledge
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:56:26+0000\n"
+"PO-Revision-Date: 2010-08-20 06:56:26+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: knowledge
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki:0
+msgid "Collaborative Content (Wiki)"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_quality_manual:0
+msgid "Creates an example skeleton for a standard quality manual."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,document_ftp:0
+msgid "Shared Repositories (FTP)"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.module.module,shortdesc:knowledge.module_meta_information
+msgid "Knowledge Management System"
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document
+msgid "Knowledge"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,document_webdav:0
+msgid "Provides a WebDAV access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through your standard file browser."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "title"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,document_ftp:0
+msgid "Provides an FTP access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through a standard FTP client."
+msgstr ""
+
+#. module: knowledge
+#: model:ir.module.module,description:knowledge.module_meta_information
+msgid "Installer for knowledge-based tools\n"
+" "
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.actions.act_window,name:knowledge.action_knowledge_installer
+msgid "Knowledge Modules Installation"
+msgstr ""
+
+#. module: knowledge
+#: view:ir.actions.todo:0
+msgid "Launch"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_quality_manual:0
+msgid "Quality Manual"
+msgstr ""
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "Templates of Content"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,document_webdav:0
+msgid "Shared Repositories (WebDAV)"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_faq:0
+msgid "Creates a skeleton internal FAQ pre-filled with documentation about OpenERP's Document Management System."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_faq:0
+msgid "Internal FAQ"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document2
+msgid "Collaborative Content"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.model,name:knowledge.model_knowledge_installer
+msgid "knowledge.installer"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki:0
+msgid "Lets you create wiki pages and page groups in order to keep track of business knowledge and share it with and between your employees."
+msgstr ""
+
diff --git a/addons/knowledge/i18n/knowledge.pot b/addons/knowledge/i18n/knowledge.pot
new file mode 100644
index 00000000000..1def8c74b0d
--- /dev/null
+++ b/addons/knowledge/i18n/knowledge.pot
@@ -0,0 +1,148 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * knowledge
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 06:56:26+0000\n"
+"PO-Revision-Date: 2010-08-20 06:56:26+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: knowledge
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki:0
+msgid "Collaborative Content (Wiki)"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_quality_manual:0
+msgid "Creates an example skeleton for a standard quality manual."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,document_ftp:0
+msgid "Shared Repositories (FTP)"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.module.module,shortdesc:knowledge.module_meta_information
+msgid "Knowledge Management System"
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document
+msgid "Knowledge"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,document_webdav:0
+msgid "Provides a WebDAV access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through your standard file browser."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "title"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,document_ftp:0
+msgid "Provides an FTP access to your OpenERP's Document Management System. Lets you access attachments and virtual documents through a standard FTP client."
+msgstr ""
+
+#. module: knowledge
+#: model:ir.module.module,description:knowledge.module_meta_information
+msgid "Installer for knowledge-based tools\n"
+" "
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: knowledge
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.actions.act_window,name:knowledge.action_knowledge_installer
+msgid "Knowledge Modules Installation"
+msgstr ""
+
+#. module: knowledge
+#: view:ir.actions.todo:0
+msgid "Launch"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_quality_manual:0
+msgid "Quality Manual"
+msgstr ""
+
+#. module: knowledge
+#: view:knowledge.installer:0
+msgid "Templates of Content"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,document_webdav:0
+msgid "Shared Repositories (WebDAV)"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki_faq:0
+msgid "Creates a skeleton internal FAQ pre-filled with documentation about OpenERP's Document Management System."
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,wiki_faq:0
+msgid "Internal FAQ"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.ui.menu,name:knowledge.menu_document2
+msgid "Collaborative Content"
+msgstr ""
+
+#. module: knowledge
+#: field:knowledge.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: knowledge
+#: model:ir.model,name:knowledge.model_knowledge_installer
+msgid "knowledge.installer"
+msgstr ""
+
+#. module: knowledge
+#: help:knowledge.installer,wiki:0
+msgid "Lets you create wiki pages and page groups in order to keep track of business knowledge and share it with and between your employees."
+msgstr ""
+
diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml
index db7948ccb99..dc6c86fc9fa 100644
--- a/addons/l10n_be/account_pcmn_belgium.xml
+++ b/addons/l10n_be/account_pcmn_belgium.xml
@@ -29,7 +29,6 @@
Tiers
tiers
-
balance
@@ -47,13 +46,11 @@
Tax
tax
-
unreconciled
Financier
financier
-
balance
@@ -7082,7 +7079,7 @@
sale
-
+
TVA 0% ABC Intracommunautaire
V-INTRA-ABC 0
diff --git a/addons/l10n_be/i18n/ca.po b/addons/l10n_be/i18n/ca.po
index ee2d187ff44..131fc6821d6 100644
--- a/addons/l10n_be/i18n/ca.po
+++ b/addons/l10n_be/i18n/ca.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 12:47+0000\n"
+"PO-Revision-Date: 2010-08-13 10:00+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-12 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_be
diff --git a/addons/l10n_be/i18n/tr.po b/addons/l10n_be/i18n/tr.po
index b56ba97cc79..1aada5456b4 100644
--- a/addons/l10n_be/i18n/tr.po
+++ b/addons/l10n_be/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-11 05:45+0000\n"
+"PO-Revision-Date: 2010-08-29 09:16+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:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_be
diff --git a/addons/l10n_be/wizard/l10_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10_be_partner_vat_listing.py
index 415db0ba067..133d12511a3 100644
--- a/addons/l10n_be/wizard/l10_be_partner_vat_listing.py
+++ b/addons/l10n_be/wizard/l10_be_partner_vat_listing.py
@@ -1,6 +1,3 @@
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
-
# -*- coding: utf-8 -*-
##############################################################################
#
@@ -25,7 +22,6 @@ import time
import base64
from tools.translate import _
-import tools
from osv import fields, osv
class vat_listing_clients(osv.osv_memory):
@@ -90,20 +86,6 @@ class partner_vat(osv.osv_memory):
#it seems that this listing is only for belgian customers
record['country'] = 'BE'
- #...deprecated...
- #~addr = pool.get('res.partner').address_get(cr, uid, [obj_partner.id], ['invoice'])
-
- #~ if addr.get('invoice',False):
- #~ads=pool.get('res.partner.address').browse(cr, uid, [addr['invoice']])[0]
-
- #~ if ads.country_id:
- #~ record.append(ads.country_id.code)
- #~ else:
- #~ error_message.append('Data Insufficient! : '+ 'The Partner "'+obj_partner.name + '"'' has no country associated with its Invoice address!')
-
- #~ if len(record)<2:
- #~ record.append('')
- #~ error_message.append('Data Insufficient! : '+ 'The Partner "'+obj_partner.name + '"'' has no Invoice address!')
record['amount'] = 0
record['turnover'] = 0
@@ -120,7 +102,6 @@ class partner_vat(osv.osv_memory):
model_data_ids = obj_model_data.search(cursor, user, [('model','=','ir.ui.view'), ('name','=','view_vat_listing')])
resource_id = obj_model_data.read(cursor, user, model_data_ids, fields=['res_id'])[0]['res_id']
return {
-# 'domain': "[('id','in', ["+','.join(map(str,data['form']['invoice_ids']))+"])]",
'name': 'Vat Listing',
'view_type': 'form',
'view_mode': 'form',
@@ -158,7 +139,7 @@ class partner_vat_list(osv.osv_memory):
}
def create_xml(self, cursor, user, ids, context={}):
- datas=[]
+ datas = []
obj_sequence = self.pool.get('ir.sequence')
obj_users = self.pool.get('res.users')
obj_partner = self.pool.get('res.partner')
@@ -193,16 +174,16 @@ class partner_vat_list(osv.osv_memory):
country = ads.country_id.code
sender_date = time.strftime('%Y-%m-%d')
-
+ comp_name = obj_cmpny.name
data_file = '\n'
- data_file += '\n\n\t\n\t\t'+str(company_vat)+' \n\t\t'+tools.ustr(obj_cmpny.name)+' \n\t\t'+ tools.ustr(street) +' \n\t\t'+ tools.ustr(zip_city) +' '
- data_file += '\n\t\t'+ tools.ustr(country) +' \n\t \n '
- data_comp = '\n\n\t'+str(company_vat)+' \n\t'+tools.ustr(obj_cmpny.name)+' \n\t'+ tools.ustr(street) +' \n\t'+ tools.ustr(zip_city) +' \n\t'+ tools.ustr(country) +' \n '
- data_period = '\n'+ tools.ustr(obj_year.date_stop[:4]) +' '
+ data_file += '\n\n\t\n\t\t'+str(company_vat)+' \n\t\t'+ comp_name +' \n\t\t'+ street +' \n\t\t'+ zip_city +' '
+ data_file += '\n\t\t'+ country +' \n\t \n '
+ data_comp = '\n\n\t'+str(company_vat)+' \n\t'+ comp_name +' \n\t'+ street +' \n\t'+ zip_city +' \n\t'+ country +' \n '
+ data_period = '\n'+ obj_year.date_stop[:4] +' '
error_message = []
data = self.read(cursor, user, ids)[0]
for partner in data['partner_ids']:
@@ -222,13 +203,13 @@ class partner_vat_list(osv.osv_memory):
continue
if line['turnover'] < context['limit_amount']:
continue
- seq +=1
- sum_tax +=line['amount']
- sum_turnover +=line['turnover']
- data_clientinfo +='\n\n\t\n\t\t'+line['vat'] +' \n\t\t'+tools.ustr(line['country']) +' \n\t \n\t'+str(int(line['amount'] * 100)) +' \n\t'+str(int(line['turnover'] * 100)) +' \n '
+ seq += 1
+ sum_tax += line['amount']
+ sum_turnover += line['turnover']
+ data_clientinfo += '\n\n\t\n\t\t'+line['vat'] +' \n\t\t' + line['country'] +' \n\t \n\t'+str(int(line['amount'] * 100)) +' \n\t'+str(int(line['turnover'] * 100)) +' \n '
data_decl ='\n '
- data_file += tools.ustr(data_decl) + tools.ustr(data_comp) + tools.ustr(data_period) + tools.ustr(data_clientinfo) + '\n '
+ data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n'
msg = 'Save the File with '".xml"' extension.'
file_save = base64.encodestring(data_file.encode('utf8'))
self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context)
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
index 155e40b256b..ae23bf926e9 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration.py
@@ -30,7 +30,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
def _get_xml_data(self, cr, uid, context=None):
if context.get('file_save', False):
- return base64.encodestring(context['file_save'])
+ return base64.encodestring(context['file_save'].encode('utf8'))
return ''
_columns = {
@@ -47,21 +47,19 @@ class l10n_be_vat_declaration(osv.osv_memory):
'msg': 'Save the File with '".xml"' extension.',
'file_save': _get_xml_data,
'name': 'vat_declaration.xml',
- }
+ }
def create_xml(self, cr, uid, ids, context=None):
obj_fyear = self.pool.get('account.fiscalyear')
obj_tax_code = self.pool.get('account.tax.code')
obj_acc_period = self.pool.get('account.period')
obj_user = self.pool.get('res.users')
- obj_comp = self.pool.get('res.company')
- obj_data = self.pool.get('ir.model.data')
mod_obj = self.pool.get('ir.model.data')
if context is None:
context = {}
- list_of_tags=['00','01','02','03','44','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','88','91']
+ list_of_tags = ['00','01','02','03','44','45','46','47','48','49','54','55','56','57','59','61','62','63','64','71','81','82','83','84','85','86','87','88','91']
data_tax = self.browse(cr, uid, ids[0])
if data_tax.tax_code_id:
obj_company = data_tax.tax_code_id.company_id
@@ -70,8 +68,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
user_cmpny = obj_company.name
vat_no = obj_company.partner_id.vat
if not vat_no:
- raise osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
-
+ raise osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
ctx = context.copy()
@@ -80,15 +77,15 @@ class l10n_be_vat_declaration(osv.osv_memory):
tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
address = post_code = city = country_code = ''
- city, post_code, address, country_code =self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
+ city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
year_id = obj_fyear.find(cr, uid)
account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
period_code = account_period.code
send_ref = str(obj_company.partner_id.id) + str(account_period.date_start[5:7]) + str(account_period.date_stop[:4])
- data_of_file='\n'
- data_of_file +='\n\t\n\t\t'+str(vat_no)+' \n\t\t'+str(obj_company.name)+' \n\t\t'+address+' '
+ data_of_file = '\n'
+ data_of_file +='\n\t\n\t\t'+str(vat_no)+' \n\t\t'+ obj_company.name +' \n\t\t'+address+' '
data_of_file +='\n\t\t'+post_code+' \n\t\t'+city+' \n\t\t'+country_code+' \n\t\t'+send_ref+' \n\t '
data_of_file +='\n\t\n\t\t1 \n\t\t'+((vat_no and str(vat_no[2:])) or '')+' \n\t\t\n\t\t\t'
@@ -115,7 +112,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
if item['code'] in list_of_tags:
data_of_file +='\n\t\t\t\t' + str(abs(int(item['sum_period']*100))) + ' '
- data_of_file +='\n\t\t\t\n\t\t \n\t\n'
+ data_of_file += '\n\t\t\t\n\t\t\n\t\n'
model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','view_vat_save')], context=context)
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
context['file_save'] = data_of_file
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
index f3af9f7368e..f7f9ff9ed32 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
@@ -38,7 +38,7 @@
form
-
+
diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml
index e0227f1a8a0..19ec96e8023 100644
--- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml
+++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml
@@ -66,7 +66,7 @@
-
+
diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra.py b/addons/l10n_be/wizard/l10n_be_vat_intra.py
index de497d151d8..d3f4e8781a7 100644
--- a/addons/l10n_be/wizard/l10n_be_vat_intra.py
+++ b/addons/l10n_be/wizard/l10n_be_vat_intra.py
@@ -33,7 +33,7 @@ class partner_vat_intra(osv.osv_memory):
def _get_xml_data(self, cr, uid, context=None):
if context.get('file_save', False):
- return base64.encodestring(context['file_save'])
+ return base64.encodestring(context['file_save'].encode('utf8'))
return ''
def _get_europe_country(self, cursor, user, context=None):
@@ -64,7 +64,7 @@ class partner_vat_intra(osv.osv_memory):
'country_ids': _get_europe_country,
'file_save': _get_xml_data,
'name': 'vat_Intra.xml',
- }
+ }
def create_xml(self, cursor, user, ids, context=None):
obj_user = self.pool.get('res.users')
@@ -72,7 +72,6 @@ class partner_vat_intra(osv.osv_memory):
obj_sequence = self.pool.get('ir.sequence')
obj_partner = self.pool.get('res.partner')
obj_partner_add = self.pool.get('res.partner.address')
- obj_country = self.pool.get('res.country')
mod_obj = self.pool.get('ir.model.data')
street = zip_city = country = p_list = data_clientinfo = ''
error_message = list_partner = []
@@ -111,13 +110,14 @@ class partner_vat_intra(osv.osv_memory):
if ads.country_id:
country = ads.country_id.code
+ comp_name = data_cmpny.name
sender_date = time.strftime('%Y-%m-%d')
data_file = '\n'
- data_file +='\n\t\n\t\t\n\t\t\t' + str(company_vat)+' \n\t\t\t'+str(data_cmpny.name)+' \n\t\t\t'+ str(street) +' \n\t\t\t'+ str(zip_city) +' '
- data_file +='\n\t\t\t' + str(country) +' \n\t\t \n\t '
- data_comp ='\n\t\t\n\t\t\t'+str(company_vat[2:])+' \n\t\t\t'+str(data_cmpny.name)+' \n\t\t\t'+ str(street) +' \n\t\t\t'+ str(zip_city) +' \n\t\t\t'+ str(country) +' \n\t\t '
+ data_file += '\n\t\n\t\t\n\t\t\t' + str(company_vat)+' \n\t\t\t'+ comp_name +' \n\t\t\t'+ street +' \n\t\t\t'+ zip_city +' '
+ data_file += '\n\t\t\t' + country +' \n\t\t \n\t '
+ data_comp = '\n\t\t\n\t\t\t'+str(company_vat[2:])+' \n\t\t\t'+ comp_name +' \n\t\t\t'+ street +' \n\t\t\t'+ zip_city +' \n\t\t\t'+ country +' \n\t\t '
data_period = '\n\t\t'+ data['period_code'] +' ' #trimester
p_id_list = obj_partner.search(cursor, user, [('vat','!=',False)])
if not p_id_list:
@@ -144,7 +144,7 @@ class partner_vat_intra(osv.osv_memory):
data_clientinfo +='\n\t\t\n\t\t\t\n\t\t\t\t'+row['vat'][2:] +' \n\t\t\t\t'+row['vat'][:2] +' \n\t\t\t \n\t\t\t'+str(amt) +' \n\t\t\t'+str(intra_code) +'\n\t\t '
amount_sum = int(amount_sum)
data_decl = '\n\t'
- data_file += str(data_decl) + str(data_comp) + str(data_period) + str(data_clientinfo) + '\n\t \n '
+ data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n\t\n'
model_data_ids = mod_obj.search(cursor, user,[('model','=','ir.ui.view'),('name','=','view_vat_intra_save')], context=context)
resource_id = mod_obj.read(cursor, user, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
context['file_save'] = data_file
diff --git a/addons/l10n_ch/__init__.py b/addons/l10n_ch/__init__.py
index 91ddfdb9f3d..bb4312cf3f3 100644
--- a/addons/l10n_ch/__init__.py
+++ b/addons/l10n_ch/__init__.py
@@ -41,4 +41,5 @@ import payment
import report
import bank
import account_move_line
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py
index 7de9b5eb77e..de378528b33 100644
--- a/addons/l10n_ch/__openerp__.py
+++ b/addons/l10n_ch/__openerp__.py
@@ -43,19 +43,19 @@ You can also add with this module one of the following account plan:
- l10n_ch_c2c_pcg
-
+
------------------------------------------------------------------------
-
-Module incluant la localisation Suisse de TinyERP revu et corrigé par Camptocamp. Cette nouvelle version
-comprend la gestion et l'émissionde BVR, le paiement électronique via DTA (pour les banques, le système postal est en développement)
-et l'import du relevé de compte depuis la banque de manière automatisée.
+
+Module incluant la localisation Suisse de TinyERP revu et corrigé par Camptocamp. Cette nouvelle version
+comprend la gestion et l'émissionde BVR, le paiement électronique via DTA (pour les banques, le système postal est en développement)
+et l'import du relevé de compte depuis la banque de manière automatisée.
De plus, nous avons intégré la définition de toutes les banques Suisses(adresse, swift et clearing).
Par ailleurs, conjointement à ce module, nous proposons 1 plan comptables issus de l'USAM :
- l10n_ch_c2c_pcg
-
+
--------------------------------------------------------------------------
TODO :
- Implement bvr import partial reconciliation
@@ -70,11 +70,9 @@ TODO :
"author" : "Camptocamp SA",
"category" : "Localisation/Europe",
"website": "http://www.camptocamp.com",
-
+
"depends" : [
- "base",
- "account",
- "base_vat",
+ "base_vat",
"base_iban",
"account_payment",
],
@@ -87,10 +85,9 @@ TODO :
],
"update_xml" : [
"dta_view.xml",
- "dta_wizard.xml",
- "bvr_report.xml",
- "bvr_wizard.xml",
- "bvr_view.xml",
+ "wizard/bvr_import_view.xml",
+ "wizard/bvr_report_view.xml",
+ "wizard/create_dta_view.xml",
"company_view.xml",
"account_invoice.xml",
"bank_view.xml",
diff --git a/addons/l10n_ch/account_move_line.py b/addons/l10n_ch/account_move_line.py
index d326a98b611..ab35fdd8107 100644
--- a/addons/l10n_ch/account_move_line.py
+++ b/addons/l10n_ch/account_move_line.py
@@ -34,8 +34,8 @@
from osv import fields, osv
class AccountMoveLine(osv.osv):
- """ Inherit account.move.line in order to add a custom link
- between supplier invoice line and bank. The original link
+ """ Inherit account.move.line in order to add a custom link
+ between supplier invoice line and bank. The original link
was defined in account_payment between line """
_inherit = 'account.move.line'
@@ -43,12 +43,13 @@ class AccountMoveLine(osv.osv):
## @param self The object pointer.
## @param cr a psycopg cursor
## @param uid res.user.id that is currently loged
- ## @param payment_type manual
- ## @parma context a standard dict
+ ## @param payment_type manual
+ ## @parma context a standard dict
## @return a dict who has the account move line id as key and the bank id as value
+
def line2bank(self, cr, uid, ids, payment_type='manual', context=None):
- """add a link to account.move.line in order to link
- supplier invoice line and bank. The original link
+ """add a link to account.move.line in order to link
+ supplier invoice line and bank. The original link
was defined in account_payment"""
payment_mode_obj = self.pool.get('payment.mode')
line2bank = {}
@@ -69,4 +70,5 @@ class AccountMoveLine(osv.osv):
return line2bank
AccountMoveLine()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/bank.py b/addons/l10n_ch/bank.py
index 18aac869b77..a23c6ae185d 100644
--- a/addons/l10n_ch/bank.py
+++ b/addons/l10n_ch/bank.py
@@ -31,7 +31,6 @@
from osv import fields, osv
-
class Bank(osv.osv):
"""Inherit res.bank class in order to add swiss specific field"""
_inherit = 'res.bank'
@@ -47,9 +46,12 @@ Bank()
class bvr_checkbox(osv.osv):
""" Add function to generate function """
_inherit = "res.partner.bank"
+
_columns = {
'print_bank' : fields.boolean('Print Bank on BVR'),
'print_account' : fields.boolean('Print Account Number on BVR'),
}
+
bvr_checkbox()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/bvr_report.xml b/addons/l10n_ch/bvr_report.xml
deleted file mode 100644
index 13b5e3ee8bc..00000000000
--- a/addons/l10n_ch/bvr_report.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
diff --git a/addons/l10n_ch/bvr_view.xml b/addons/l10n_ch/bvr_view.xml
deleted file mode 100644
index c91571a2257..00000000000
--- a/addons/l10n_ch/bvr_view.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- account.bank.statement.form.inherit
- account.bank.statement
- form
-
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_ch/bvr_wizard.xml b/addons/l10n_ch/bvr_wizard.xml
deleted file mode 100644
index 497b6fa6f4f..00000000000
--- a/addons/l10n_ch/bvr_wizard.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_ch/company.py b/addons/l10n_ch/company.py
index 4d9a1069771..04b9dda7a6c 100644
--- a/addons/l10n_ch/company.py
+++ b/addons/l10n_ch/company.py
@@ -31,12 +31,13 @@
#
##############################################################################
-import netsvc
from osv import fields, osv
+
class res_company(osv.osv):
- """override company in order to add bvr vertical and
+ """override company in order to add bvr vertical and
Horizontal print delta"""
_inherit = "res.company"
+
_columns = {
### horiz. delta in mm 1.2 will print the bvz 1.2mm lefter
'bvr_delta_horz': fields.float('BVR Horz. Delta (mm)',
@@ -45,6 +46,7 @@ class res_company(osv.osv):
'bvr_delta_vert': fields.float('BVR Vert. Delta (mm)',
help='vert. delta in mm 1.2 will print the bvz 1.2mm lefter'),
}
+
res_company()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/dta.py b/addons/l10n_ch/dta.py
index 25b16222b19..c60ae0f43db 100644
--- a/addons/l10n_ch/dta.py
+++ b/addons/l10n_ch/dta.py
@@ -31,25 +31,25 @@
##############################################################################
import time
-from osv import osv,fields
+from osv import osv, fields
class account_dta(osv.osv):
- """class that implements bank DTA File format,
+ """class that implements bank DTA File format,
used to transfert bulk batch payment instruction to a bank"""
_name = "account.dta"
_description = "DTA History"
_columns = {
- ### name of the file
+ ### name of the file
'name': fields.binary('DTA file', readonly=True),
### list of dta line linked to the dta order
- 'dta_line_ids': fields.one2many('account.dta.line','dta_id','DTA lines', readonly=True),
+ 'dta_line_ids': fields.one2many('account.dta.line','dta_id','DTA lines', readonly=True),
## textual notes
- 'note': fields.text('Creation log', readonly=True,
+ 'note': fields.text('Creation log', readonly=True,
help="Displays the problem during dta generation"),
### bank how will execute DTA order
'bank': fields.many2one('res.partner.bank','Bank', readonly=True,select=True,
help="Bank how will execute DTA order"),
- ### date of DTA order generation
+ ### date of DTA order generation
'date': fields.date('Creation Date', readonly=True,select=True,
help="Date of DTA order generation"),
### user how generate the DTA order
@@ -58,12 +58,12 @@ class account_dta(osv.osv):
account_dta()
class account_dta_line(osv.osv):
- """Class that represent a DTA order line,
+ """Class that represent a DTA order line,
each line corressponds to a payment instruction"""
_name = "account.dta.line"
_description = "DTA line"
_columns = {
- ### name of the line
+ ### name of the line
'name' : fields.many2one('account.invoice','Invoice', required=True, size=256),
### partner how will receive payments
'partner_id' : fields.many2one('res.partner','Partner',
@@ -74,13 +74,13 @@ class account_dta_line(osv.osv):
'invoice_date' : fields.date('Invoice date'),
### cash discount date
'cashdisc_date' : fields.date('Cash Discount date'),
- ### amount effectively paied on this line
- 'amount_to_pay' : fields.float('Amount to pay',
+ ### amount effectively paied on this line
+ 'amount_to_pay' : fields.float('Amount to pay',
help="Amount effectively paid"),
### amount that was on the supplier invoice
'amount_invoice': fields.float('Invoiced Amount',
help="Amount to pay base on the supplier invoice"),
- ### Cash discount amount
+ ### Cash discount amount
'amount_cashdisc': fields.float('Cash Discount Amount'),
### Linke to the main dta order
'dta_id': fields.many2one('account.dta','Associated DTA', required=True, ondelete='cascade'),
@@ -90,7 +90,7 @@ class account_dta_line(osv.osv):
_defaults = {
'state' : lambda *a :'draft',
}
+
account_dta_line()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_ch/dta_wizard.xml b/addons/l10n_ch/dta_wizard.xml
deleted file mode 100644
index 7fb083d51bd..00000000000
--- a/addons/l10n_ch/dta_wizard.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
diff --git a/addons/l10n_ch/i18n/it.po b/addons/l10n_ch/i18n/it.po
index f89e7b6f2d3..d04d9b4fd4b 100644
--- a/addons/l10n_ch/i18n/it.po
+++ b/addons/l10n_ch/i18n/it.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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:06+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_ch
diff --git a/addons/l10n_ch/i18n/tr.po b/addons/l10n_ch/i18n/tr.po
index 6390fdb9f71..93fcdd02fc0 100644
--- a/addons/l10n_ch/i18n/tr.po
+++ b/addons/l10n_ch/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-11 04:41+0000\n"
+"PO-Revision-Date: 2010-08-29 09:46+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-12 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_ch
diff --git a/addons/l10n_ch/invoice.py b/addons/l10n_ch/invoice.py
index afdd93c703d..1057fc379fd 100644
--- a/addons/l10n_ch/invoice.py
+++ b/addons/l10n_ch/invoice.py
@@ -30,11 +30,10 @@
#
##############################################################################
-import time
-from osv import fields, osv
-from tools import mod10r
from mx import DateTime
+from osv import fields, osv
+from tools import mod10r
class account_invoice(osv.osv):
"""Inherit account.invoice in order to add bvr
@@ -207,6 +206,7 @@ class account_tax_code(osv.osv):
### The case code of the taxt code
'code': fields.char('Case Code', size=512),
}
+
account_tax_code()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_ch/partner.py b/addons/l10n_ch/partner.py
index 2c244eb7fd2..1e90ac68e46 100644
--- a/addons/l10n_ch/partner.py
+++ b/addons/l10n_ch/partner.py
@@ -30,7 +30,6 @@
#
##############################################################################
-import netsvc
from osv import fields, osv
class res_partner(osv.osv):
@@ -40,13 +39,9 @@ class res_partner(osv.osv):
'ref_companies': fields.one2many('res.company', 'partner_id',
'Companies that refers to partner'),
}
-
-
res_partner()
-
-
class res_partner_bank(osv.osv):
_inherit = "res.partner.bank"
_columns = {
@@ -56,25 +51,7 @@ class res_partner_bank(osv.osv):
'bvr_adherent_num': fields.char('BVR adherent number', size=11),
'dta_code': fields.char('DTA code', size=5),
}
-
-# def _default_value(self, cursor, user, field, context=None):
-# if field in ('country_id', 'state_id'):
-# value = False
-# else:
-# value = ''
-# if not context.get('address', False):
-# return value
-# for ham, spam, address in context['address']:
-# if 'type' in address.keys() :
-# if address['type'] == 'default':
-# return address[field]
-# elif not address['type']:
-# value = address[field]
-# else :
-# value = False
-# return value
-
-
+
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
@@ -89,9 +66,11 @@ class res_partner_bank(osv.osv):
for r in self.read(cr, uid, ids, ['name','state'], context):
res.append((r['id'], r['name']+' : '+bank_type_names[r['state']]))
return res
-
+
_sql_constraints = [
('bvr_adherent_uniq', 'unique (bvr_adherent_num)', 'The BVR adherent number must be unique !')
]
+
res_partner_bank()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_ch/payment.py b/addons/l10n_ch/payment.py
index f1a85adaf1c..73a262ae2d0 100644
--- a/addons/l10n_ch/payment.py
+++ b/addons/l10n_ch/payment.py
@@ -30,7 +30,6 @@
#
##############################################################################
-from osv import fields
from osv import osv
class payment_order(osv.osv):
@@ -38,7 +37,10 @@ class payment_order(osv.osv):
def get_wizard(self,mode):
if mode == 'dta':
- return 'l10n_ch','wizard_account_dta_create'
+ return 'l10n_ch', 'action_dta_create'
+
return super(payment_order,self).get_wizard(mode)
+
payment_order()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/report/__init__.py b/addons/l10n_ch/report/__init__.py
index ee83c9c6f12..a3484e4c2cb 100644
--- a/addons/l10n_ch/report/__init__.py
+++ b/addons/l10n_ch/report/__init__.py
@@ -30,5 +30,6 @@
#
##############################################################################
-import bvr
+import bvr_report
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/report/invoice.rml b/addons/l10n_ch/report/bvr_invoice_report.rml
similarity index 99%
rename from addons/l10n_ch/report/invoice.rml
rename to addons/l10n_ch/report/bvr_invoice_report.rml
index bbc7c9dfdc4..7c8b2185ee9 100755
--- a/addons/l10n_ch/report/invoice.rml
+++ b/addons/l10n_ch/report/bvr_invoice_report.rml
@@ -5,7 +5,7 @@
-
+
diff --git a/addons/l10n_ch/report/bvr.py b/addons/l10n_ch/report/bvr_report.py
similarity index 97%
rename from addons/l10n_ch/report/bvr.py
rename to addons/l10n_ch/report/bvr_report.py
index ce97ac1a1a7..646806b202f 100644
--- a/addons/l10n_ch/report/bvr.py
+++ b/addons/l10n_ch/report/bvr_report.py
@@ -30,15 +30,16 @@
#
##############################################################################
-import time
-from report import report_sxw
-from tools import mod10r
import re
import os
import sys
import shutil
+import time
from mx.DateTime import *
+from report import report_sxw
+from tools import mod10r
+
class account_invoice_bvr(report_sxw.rml_parse):
"""Report class that Allows to print BVR payement vector"""
def __init__(self, cr, uid, name, context):
@@ -111,14 +112,14 @@ class account_invoice_bvr(report_sxw.rml_parse):
report_sxw.report_sxw(
'report.l10n_ch.bvr',
'account.invoice',
- 'addons/l10n_ch/report/bvr.rml',
+ 'addons/l10n_ch/report/bvr_report.rml',
parser=account_invoice_bvr,
header=False)
report_sxw.report_sxw(
'report.l10n_ch.invoice.bvr',
'account.invoice',
- 'addons/l10n_ch/report/invoice.rml',
+ 'addons/l10n_ch/report/bvr_invoice_report.rml',
parser=account_invoice_bvr,
header=False)
diff --git a/addons/l10n_ch/report/bvr.rml b/addons/l10n_ch/report/bvr_report.rml
similarity index 99%
rename from addons/l10n_ch/report/bvr.rml
rename to addons/l10n_ch/report/bvr_report.rml
index b7e3388973a..b38266b560e 100755
--- a/addons/l10n_ch/report/bvr.rml
+++ b/addons/l10n_ch/report/bvr_report.rml
@@ -3,7 +3,7 @@
-
+
diff --git a/addons/l10n_ch/wizard/__init__.py b/addons/l10n_ch/wizard/__init__.py
index ecc5c6a07ba..99fd86f18cc 100644
--- a/addons/l10n_ch/wizard/__init__.py
+++ b/addons/l10n_ch/wizard/__init__.py
@@ -30,8 +30,9 @@
#
##############################################################################
-import dta_wizard
-import wizard_bvr
+import create_dta
+import bvr_report
import bvr_import
import journal_config
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/wizard/bvr_import.py b/addons/l10n_ch/wizard/bvr_import.py
index 12e8012f643..50eb6864381 100644
--- a/addons/l10n_ch/wizard/bvr_import.py
+++ b/addons/l10n_ch/wizard/bvr_import.py
@@ -29,33 +29,22 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
-import wizard
-import pooler
+
import base64
import time
-from tools import mod10r
import re
+
from tools.translate import _
+from osv import osv, fields
+from tools import mod10r
+import pooler
-ASK_FORM = """
-
-
- """
-
-ASK_FIELDS = {
- 'file': {
- 'string': 'BVR file',
- 'type': 'binary',
- 'required': True,
- },
-}
-
-def _reconstruct_invoice_ref(cursor, user, reference, context):
+def _reconstruct_invoice_ref(cursor, user, reference, context=None):
###
id_invoice = False
# On fait d'abord une recherche sur toutes les factures
# we now searhc for company
- user_obj=pooler.get_pool(cursor.dbname).get('res.users')
+ user_obj = pooler.get_pool(cursor.dbname).get('res.users')
user_current=user_obj.browse(cursor, user, user)
##
@@ -79,7 +68,8 @@ def _reconstruct_invoice_ref(cursor, user, reference, context):
else:
return []
return True
-def _import(obj, cursor, user, data, context):
+
+def _import(obj, cursor, user, data, context=None):
pool = pooler.get_pool(cursor.dbname)
statement_line_obj = pool.get('account.bank.statement.line')
@@ -90,12 +80,13 @@ def _import(obj, cursor, user, data, context):
attachment_obj = pool.get('ir.attachment')
file = data['form']['file']
statement_id = data['id']
-
records = []
total_amount = 0
total_cost = 0
find_total = False
+ if context is None:
+ context = {}
for lines in base64.decodestring(file).split("\n"):
# Manage files without carriage return
while lines:
@@ -104,11 +95,11 @@ def _import(obj, cursor, user, data, context):
if line[0:3] in ('999', '995'):
if find_total:
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('Too much total record found!'))
find_total = True
if lines:
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('Record found after total record!'))
amount = float(line[39:49]) + (float(line[49:51]) / 100)
cost = float(line[69:76]) + (float(line[76:78]) / 100)
@@ -118,10 +109,10 @@ def _import(obj, cursor, user, data, context):
if round(amount - total_amount, 2) >= 0.01 \
or round(cost - total_cost, 2) >= 0.01:
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('Total record different from the computed!'))
if int(line[51:63]) != len(records):
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('Number record different from the computed!'))
else:
record = {
@@ -133,7 +124,7 @@ def _import(obj, cursor, user, data, context):
}
if record['reference'] != mod10r(record['reference'][:-1]):
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('Recursive mod10 is invalid for reference: %s') % \
record['reference'])
@@ -179,7 +170,7 @@ def _import(obj, cursor, user, data, context):
('account_id.type', 'in', ['receivable', 'payable']),
], order='date desc', context=context)
if not line_ids:
- line_ids = _reconstruct_invoice_ref(cursor,user,reference,None)
+ line_ids = _reconstruct_invoice_ref(cursor, user, reference, None)
line2reconcile = False
partner_id = False
@@ -203,7 +194,7 @@ def _import(obj, cursor, user, data, context):
else:
account_id = account_payable
if not account_id :
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('The properties account payable account receivable'))
values['account_id'] = account_id
values['partner_id'] = partner_id
@@ -221,32 +212,31 @@ def _import(obj, cursor, user, data, context):
'res_model': 'account.bank.statement',
'res_id': statement_id,
}, context=context)
+
return {}
-
-class BVRImport(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'arch': ASK_FORM,
- 'fields': ASK_FIELDS,
- 'state': [
- ('end', 'Cancel', 'gtk-cancel'),
- ('import', 'Import', 'gtk-ok', True),
- ],
- },
- },
- 'import': {
- 'actions': [],
- 'result': {
- 'type': 'action',
- 'action': _import,
- 'state': 'end',
- },
- },
+class bvr_import_wizard(osv.osv_memory):
+ _name = 'bvr.import.wizard'
+ _columns = {
+ 'file':fields.binary('BVR File', required=True)
}
-BVRImport('l10n_ch.bvr_import')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ def import_bvr(self, cr, uid, ids, context=None):
+ data = {}
+ if context is None:
+ context = {}
+ active_ids = context.get('active_ids', [])
+ active_id = context.get('active_id', False)
+ data['form'] = {}
+ data['ids'] = active_ids
+ data['id'] = active_id
+ data['form']['file'] = ''
+ res = self.read(cr, uid, ids[0], ['file'])
+ if res:
+ data['form']['file'] = res['file']
+ _import(self, cr, uid, data, context=context)
+ return {}
+
+bvr_import_wizard()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_ch/wizard/bvr_import_view.xml b/addons/l10n_ch/wizard/bvr_import_view.xml
new file mode 100644
index 00000000000..7ac2e15c7f0
--- /dev/null
+++ b/addons/l10n_ch/wizard/bvr_import_view.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ BVR Import Wizard
+ bvr.import.wizard
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BVR Import
+ ir.actions.act_window
+ bvr.import.wizard
+ form
+ form
+
+ new
+
+
+
+ account.bank.statement.form.inherit
+ account.bank.statement
+ form
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_ch/wizard/wizard_bvr.py b/addons/l10n_ch/wizard/bvr_report.py
similarity index 59%
rename from addons/l10n_ch/wizard/wizard_bvr.py
rename to addons/l10n_ch/wizard/bvr_report.py
index 9d7d74b1bc1..54002b1113a 100644
--- a/addons/l10n_ch/wizard/wizard_bvr.py
+++ b/addons/l10n_ch/wizard/bvr_report.py
@@ -30,23 +30,26 @@
#
##############################################################################
-import wizard
-import pooler
import re
+
+import pooler
+from osv import osv, fields
from tools.translate import _
-def _check(self, cr, uid, data, context):
+def _validate_bank_values(self, cr, uid, data, context=None):
+ if context is None:
+ context = {}
pool = pooler.get_pool(cr.dbname)
invoice_obj = pool.get('account.invoice')
- for invoice in invoice_obj.browse(cr, uid, data['ids'], context):
+ for invoice in invoice_obj.browse(cr, uid, data['ids'], context=context):
if not invoice.partner_bank_id:
- raise wizard.except_wizard(_('UserError'),
+ raise osv.except_osv(_('UserError'),
_('No bank specified on invoice:\n%s') % \
invoice_obj.name_get(cr, uid, [invoice.id], context=context)[0][1])
if not re.compile('[0-9][0-9]-[0-9]{3,6}-[0-9]').match(
invoice.partner_bank_id.bvr_number or ''):
- raise wizard.except_wizard(_('UserError'),
+ raise osv.except_osv(_('UserError'),
_('Your bank BVR number should be of the form 0X-XXX-X!\n' \
'Please check your company ' \
'information for the invoice:\n%s') % \
@@ -55,29 +58,65 @@ def _check(self, cr, uid, data, context):
if invoice.partner_bank_id.bvr_adherent_num \
and not re.compile('[0-9]*$').match(
invoice.partner_bank_id.bvr_adherent_num):
- raise wizard.except_wizard(_('UserError'),
- _('Your bank BVR adherent number must contain exactly seven' \
+ raise osv.except_osv(_('UserError'),
+ _('Your bank BVR adherent number must contain exactly seven ' \
'digits!\nPlease check your company ' \
'information for the invoice:\n%s') % \
invoice_obj.name_get(cr, uid, [invoice.id], context=context)[0][1])
return {}
-class wizard_report(wizard.interface):
- states = {
- 'init': {
- 'actions': [_check],
- 'result': {'type':'print', 'report':'l10n_ch.bvr', 'state':'end'}
- }
+class bvr_report(osv.osv_memory):
+ _name = "bvr.report"
+ _columns = {
+ 'name':fields.char('Name', size=16)
}
-wizard_report('l10n_ch.bvr.check')
-class ReportInvoiceBVRCheck(wizard.interface):
- states = {
- 'init': {
- 'actions': [_check],
- 'result': {'type':'print', 'report':'l10n_ch.invoice.bvr', 'state':'end'}
- }
+ def view_init(self, cr, uid, fields_list, context=None):
+ if context is None:
+ context = {}
+ data = {}
+ active_ids = context.get('active_ids', [])
+ data['form'] = {}
+ data['ids'] = active_ids
+ _validate_bank_values(self, cr, uid, data, context)
+ pass
+
+ def print_bvr_report(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ data = {}
+ active_ids = context.get('active_ids', [])
+ data['form'] = {}
+ data['ids'] = active_ids
+ return {'type': 'ir.actions.report.xml', 'report_name': 'l10n_ch.bvr', 'datas': data}
+
+bvr_report()
+
+class bvr_invoices_report(osv.osv_memory):
+ _name = "bvr.invoices.report"
+ _columns = {
+ 'name':fields.char('Name', size=16)
}
-ReportInvoiceBVRCheck('l10n_ch.invoice.bvr.check')
+
+ def view_init(self, cr, uid, fields_list, context=None):
+ if context is None:
+ context = {}
+ data={}
+ active_ids = context.get('active_ids', [])
+ data['form'] = {}
+ data['ids'] = active_ids
+ _validate_bank_values(self, cr, uid, data, context)
+ pass
+
+ def print_bvr_invoices_report(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ data = {}
+ active_ids = context.get('active_ids', [])
+ data['form'] = {}
+ data['ids'] = active_ids
+ return {'type': 'ir.actions.report.xml', 'report_name': 'l10n_ch.invoice.bvr', 'datas': data}
+
+bvr_invoices_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_ch/wizard/bvr_report_view.xml b/addons/l10n_ch/wizard/bvr_report_view.xml
new file mode 100644
index 00000000000..51450341a7d
--- /dev/null
+++ b/addons/l10n_ch/wizard/bvr_report_view.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ bvr Report
+ bvr.report
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+ BVR
+ ir.actions.act_window
+ bvr.report
+ form
+ form
+
+ new
+
+
+
+
+
+ BVR
+ client_print_multi
+
+ action
+ account.invoice
+
+
+
+
+ BVR Invoices Report
+ bvr.invoices.report
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+ Invoices BVR
+ ir.actions.act_window
+ bvr.invoices.report
+ form
+ form
+
+ new
+
+
+
+
+
+ Invoices BVR
+ client_print_multi
+
+ action
+ account.invoice
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_ch/wizard/dta_wizard.py b/addons/l10n_ch/wizard/create_dta.py
similarity index 85%
rename from addons/l10n_ch/wizard/dta_wizard.py
rename to addons/l10n_ch/wizard/create_dta.py
index 1f8e55c0bc4..b9f4078def7 100644
--- a/addons/l10n_ch/wizard/dta_wizard.py
+++ b/addons/l10n_ch/wizard/create_dta.py
@@ -29,29 +29,15 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
-import pooler
-import wizard
-import base64
+
import time
-import pooler
import mx.DateTime
+import base64
+
+from osv import osv, fields
+import pooler
from tools.translate import _
-
-FORM = """
-
-
-
- """
-
-FIELDS = {
- 'dta': {
- 'string': 'DTA File',
- 'type': 'binary',
- 'readonly': True,
- },
-}
-
TRANS=[
(u'é','e'),
(u'è','e'),
@@ -79,7 +65,6 @@ def tr(string_in):
class record:
-
def __init__(self, global_context_dict):
for i in global_context_dict:
global_context_dict[i] = global_context_dict[i] \
@@ -117,7 +102,6 @@ class record:
value = self.post[field[0]]
else :
pass
- #raise Exception(field[0]+' not found !')
try:
res = res + c_ljust(value, field[1])
except :
@@ -354,36 +338,37 @@ def c_ljust(s, size):
s = s.decode('utf-8').encode('latin1','replace').ljust(size)
return s
-def _create_dta(obj, cr, uid, data, context):
- v={}
+def _create_dta(obj, cr, uid, data, context=None):
+ v = {}
v['uid'] = str(uid)
- v['creation_date']= time.strftime('%y%m%d')
- dta=''
+ v['creation_date'] = time.strftime('%y%m%d')
+ dta = ''
pool = pooler.get_pool(cr.dbname)
payment_obj = pool.get('payment.order')
attachment_obj = pool.get('ir.attachment')
-
+ if context is None:
+ context = {}
payment = payment_obj.browse(cr, uid, data['id'], context=context)
if not payment.mode or payment.mode.type.code != 'dta':
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('No payment mode or payment type code invalid.'))
bank = payment.mode.bank_id
if not bank:
- raise wizard.except_wizard(_('Error'), _('No bank account for the company.'))
+ raise osv.except_osv(_('Error'), _('No bank account for the company.'))
v['comp_bank_name']= bank.bank and bank.bank.name or False
v['comp_bank_clearing'] = bank.bank.clearing
if not v['comp_bank_clearing']:
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('You must provide a Clearing Number for your bank account.'))
user = pool.get('res.users').browse(cr,uid,[uid])[0]
- company= user.company_id
+ company = user.company_id
#XXX dirty code use get_addr
- co_addr= company.partner_id.address[0]
+ co_addr = company.partner_id.address[0]
v['comp_country'] = co_addr.country_id and co_addr.country_id.name or ''
v['comp_street'] = co_addr.street or ''
v['comp_zip'] = co_addr.zip
@@ -391,29 +376,28 @@ def _create_dta(obj, cr, uid, data, context):
v['comp_name'] = co_addr.name
v['comp_dta'] = bank.dta_code or '' #XXX not mandatory in pratice
-
v['comp_bank_number'] = bank.acc_number or ''
if bank.iban:
v['comp_bank_iban'] = bank.iban.replace(' ','') or ''
else:
v['comp_bank_iban'] = ''
if not v['comp_bank_iban']:
- raise wizard.except_wizard(_('Error'),
+ raise osv.except_osv(_('Error'),
_('No IBAN for the company bank account.'))
dta_line_obj = pool.get('account.dta.line')
res_partner_bank_obj = pool.get('res.partner.bank')
- seq= 1
+ seq = 1
amount_tot = 0
amount_currency_tot = 0
for pline in payment.line_ids:
if not pline.bank_id:
- raise wizard.except_wizard(_('Error'), _('No bank account defined\n' \
+ raise osv.except_osv(_('Error'), _('No bank account defined\n' \
'on line: %s') % pline.name)
if not pline.bank_id.bank:
- raise wizard.except_wizard(_('Error'), _('No bank defined\n' \
+ raise osv.except_osv(_('Error'), _('No bank defined\n' \
'for the bank account: %s\n' \
'on the partner: %s\n' \
'on line: %s') + (pline.bank_id.state, pline.partner_id.name, pline.name))
@@ -426,13 +410,13 @@ def _create_dta(obj, cr, uid, data, context):
v['partner_bank_name'] = pline.bank_id.bank.name or False
v['partner_bank_clearing'] = pline.bank_id.bank.clearing or False
if not v['partner_bank_name'] :
- raise wizard.except_wizard(_('Error'), _('No bank name defined\n' \
+ raise osv.except_osv(_('Error'), _('No bank name defined\n' \
'for the bank account: %s\n' \
'on the partner: %s\n' \
'on line: %s') % (pline.bank_id.state, pline.partner_id.name, pline.name))
- v['partner_bank_iban']= pline.bank_id.iban or False
- v['partner_bank_number']= pline.bank_id.acc_number \
+ v['partner_bank_iban'] = pline.bank_id.iban or False
+ v['partner_bank_number'] = pline.bank_id.acc_number \
and pline.bank_id.acc_number.replace('.','').replace('-','') \
or False
v['partner_post_number']= pline.bank_id.post_number \
@@ -459,12 +443,12 @@ def _create_dta(obj, cr, uid, data, context):
v['partner_name'] = pline.bank_id.owner_name
else:
v['partner_name'] = pline.partner_id and pline.partner_id.name or ''
-
+
if pline.partner_id and pline.partner_id.address \
and pline.partner_id.address[0]:
v['partner_street'] = pline.partner_id.address[0].street
- v['partner_city']= pline.partner_id.address[0].city
- v['partner_zip']= pline.partner_id.address[0].zip
+ v['partner_city'] = pline.partner_id.address[0].city
+ v['partner_zip'] = pline.partner_id.address[0].zip
# If iban => country=country code for space reason
elec_pay = pline.bank_id.state #Bank type
if elec_pay == 'iban':
@@ -480,28 +464,28 @@ def _create_dta(obj, cr, uid, data, context):
v['partner_city']= ''
v['partner_zip']= ''
v['partner_country']= ''
- raise wizard.except_wizard('Error', 'No address defined \n' \
+ raise osv.except_osv('Error', 'No address defined \n' \
'for the partner: ' + pline.partner_id.name + '\n' \
'on line: ' + pline.name)
- if pline.order_id.date_planned :
+ if pline.order_id.date_planned:
date_value = mx.DateTime.strptime(pline.order_id.date_planned, '%Y-%m-%d')
- elif pline.date :
+ elif pline.date:
date_value = mx.DateTime.strptime(pline.date, '%Y-%m-%d')
- else :
+ else:
date_value = mx.DateTime.now()
v['date_value'] = date_value.strftime("%y%m%d")
# si compte iban -> iban (836)
# si payment structure -> bvr (826)
- # si non -> (827)
+ # si non -> (827)
if elec_pay == 'dta_iban':
# If iban => country=country code for space reason
v['comp_country'] = co_addr.country_id and co_addr.country_id.code+'-' or ''
record_type = record_gt836
if not v['partner_bank_iban']:
- raise wizard.except_wizard(_('Error'), _('No IBAN defined \n' \
+ raise osv.except_osv(_('Error'), _('No IBAN defined \n' \
'for the bank account: %s\n' + \
'on line: %s') % (res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1] , pline.name))
@@ -517,7 +501,7 @@ def _create_dta(obj, cr, uid, data, context):
+ ' ' + v['partner_bank_city'] \
+ ' ' + v['partner_bank_country']
else:
- raise wizard.except_wizard(_('Error'), _('You must provide the bank city '
+ raise osv.except_osv(_('Error'), _('You must provide the bank city '
'or the bic code for the partner bank: \n %d\n' + \
'on line: %s') %(res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1], pline.name))
@@ -529,11 +513,11 @@ def _create_dta(obj, cr, uid, data, context):
if not v['reference'] \
or (mod10r(v['reference'][:-1]) != v['reference'] and \
not len(v['reference']) == 15):
- raise wizard.except_wizard(_('Error'), _('You must provide ' \
+ raise osv.except_osv(_('Error'), _('You must provide ' \
'a valid BVR reference number \n' \
'for the line: %s') % pline.name)
if not v['partner_bvr']:
- raise wizard.except_wizard(_('Error'), _('You must provide a BVR number\n'
+ raise osv.except_osv(_('Error'), _('You must provide a BVR number\n'
'for the bank account: %s' \
'on line: %s') % (res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id],context)[0][1] ,pline.name))
record_type = record_gt826
@@ -541,14 +525,14 @@ def _create_dta(obj, cr, uid, data, context):
elif elec_pay == 'bvbank':
if not v['partner_bank_number'] :
if v['partner_bank_iban'] :
- v['partner_bank_number']= v['partner_bank_iban']
+ v['partner_bank_number']= v['partner_bank_iban']
else:
- raise wizard.except_wizard(_('Error'), _('You must provide ' \
+ raise osv.except_osv(_('Error'), _('You must provide ' \
'a bank number \n' \
'for the partner bank: %s\n' \
'on line: %s') % (res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1] , pline.name))
if not v['partner_bank_clearing']:
- raise wizard.except_wizard(_('Error'), _('You must provide ' \
+ raise osv.except_osv(_('Error'), _('You must provide ' \
'a Clearing Number\n' \
'for the partner bank: %s\n' \
'on line %s') % (res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1] , pline.name))
@@ -556,7 +540,7 @@ def _create_dta(obj, cr, uid, data, context):
record_type = record_gt827
elif elec_pay == 'bvpost':
if not v['partner_post_number']:
- raise wizard.except_wizard(_('Error'), _('You must provide ' \
+ raise osv.except_osv(_('Error'), _('You must provide ' \
'a post number \n' \
'for the partner bank: %s\n' \
'on line: %s') % (res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1] ,pline.name))
@@ -564,7 +548,7 @@ def _create_dta(obj, cr, uid, data, context):
v['partner_bank_number'] = '/C/'+v['partner_post_number']
record_type = record_gt827
else:
- raise wizard.except_wizard(_('Error'), _('The Bank type %s of the bank account: %s is not supported') \
+ raise osv.except_osv(_('Error'), _('The Bank type %s of the bank account: %s is not supported') \
% (elec_pay, res_partner_bank_obj.name_get(cr, uid, [pline.bank_id.id], context)[0][1],))
dta_line = record_type(v).generate()
@@ -576,11 +560,11 @@ def _create_dta(obj, cr, uid, data, context):
# segment total
v['amount_total'] = str(amount_currency_tot).replace('.',',')
- v['sequence'] = str(seq).rjust(5).replace(' ','0')
+ v['sequence'] = str(seq).rjust(5).replace(' ','0')
if dta :
dta = dta + record_gt890(v).generate()
- dta_data= base64.encodestring(dta)
+ dta_data = base64.encodestring(dta)
payment_obj.set_done(cr, uid, data['id'], context)
attachment_obj.create(cr, uid, {
'name': 'DTA',
@@ -591,18 +575,42 @@ def _create_dta(obj, cr, uid, data, context):
}, context=context)
return {'dta': dta_data}
+class create_dta_wizard(osv.osv_memory):
+ _name="create.dta.wizard"
-class wizard_dta_create(wizard.interface):
- states = {
- 'init' : {
- 'actions' : [_create_dta],
- 'result' : {'type' : 'form',
- 'arch' : FORM,
- 'fields' : FIELDS,
- 'state' : [('end', 'OK', 'gtk-ok', True)]
- }
- },
+ _columns={
+ 'dta_file':fields.binary('DTA File', readonly=True)
}
+ def create_dta(self, cr, uid, ids, context=None):
+ if not context:
+ context = {}
+ data = {}
+ active_ids = context.get('active_ids', [])
+ active_id = context.get('active_id', [])
+ data['form'] = {}
+ data['ids'] = active_ids
+ data['id'] = active_id
+ dta_file = _create_dta(self, cr, uid, data, context)
+ context.update({'dta_file':dta_file})
+ return self.save_dta(cr, uid, ids, context)
-wizard_dta_create('account.dta_create')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ def save_dta(self, cr, uid, ids, context=None):
+ obj_model = self.pool.get('ir.model.data')
+ if context is None:
+ context = {}
+ model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'), ('name','=','dta_save_view')])
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id']
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'create.dta.wizard',
+ 'views': [(resource_id, 'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context': context,
+ }
+
+
+create_dta_wizard()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_ch/wizard/create_dta_view.xml b/addons/l10n_ch/wizard/create_dta_view.xml
new file mode 100644
index 00000000000..80be9209b2d
--- /dev/null
+++ b/addons/l10n_ch/wizard/create_dta_view.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ Create DTA
+ create.dta.wizard
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create DTA
+ ir.actions.act_window
+ create.dta.wizard
+ form
+ form
+
+ new
+
+
+
+
+
+ Create DTA
+ client_action_multi
+
+ action
+ payment.order
+
+
+
+
+ Save DTA
+ create.dta.wizard
+ form
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_ch_chart_c2c_pcg/account.xml b/addons/l10n_ch_chart_c2c_pcg/account.xml
index fad81d6ab11..c79e189793a 100644
--- a/addons/l10n_ch_chart_c2c_pcg/account.xml
+++ b/addons/l10n_ch_chart_c2c_pcg/account.xml
@@ -46,19 +46,16 @@
Autre : Cloture
closing
-
none
PP : Amortissement
depreciation
-
none
PP : Resultat financier
financial_result
-
none
@@ -92,7 +89,6 @@
Bilan : Dettes hors exploitation
non_ope_debts
-
balance
@@ -123,7 +119,6 @@
PP : Resultat activites annexes
non_oper_result
-
none
@@ -150,20 +145,17 @@
Bilan : Provisions et reserves
provision_reserve
-
balance
PP : Achat de marchandise
purchase
-
none
Bilan : Resultat reporte
report_result
-
balance
@@ -184,21 +176,18 @@
Autre : Consolidation
consolidation
-
none
Autre : Other
other
-
none
Autre : Closed
closed
-
none
diff --git a/addons/l10n_ch_chart_c2c_pcg/i18n/tr.po b/addons/l10n_ch_chart_c2c_pcg/i18n/tr.po
index 01abc1c6fe9..d0dc9ea14e5 100644
--- a/addons/l10n_ch_chart_c2c_pcg/i18n/tr.po
+++ b/addons/l10n_ch_chart_c2c_pcg/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:17+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-12 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_ch_chart_c2c_pcg
diff --git a/addons/l10n_chart_uk_minimal/__openerp__.py b/addons/l10n_chart_uk_minimal/__openerp__.py
index 67258688f6b..f8df66de02b 100644
--- a/addons/l10n_chart_uk_minimal/__openerp__.py
+++ b/addons/l10n_chart_uk_minimal/__openerp__.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 .
#
##############################################################################
@@ -57,7 +57,6 @@
# - COGS account type fixed
#
-
{
'name': 'United Kingdom - minimal',
'version': '1.1',
@@ -65,16 +64,17 @@
'description': """This is the base module to manage the accounting chart for United Kingdom in OpenERP.""",
'author': 'Seath Solutions Ltd',
'website': 'http://www.seathsolutions.com',
- 'depends': ['base', 'account', 'base_iban', 'base_vat', 'account_chart'],
+ 'depends': ['base_iban', 'base_vat', 'account_chart'],
'init_xml': [],
'update_xml': [
- 'account_types.xml',
- 'account_chart.xml',
- 'account_tax.xml',
+ 'l10n_uk_types.xml',
+ 'l10n_uk_chart.xml',
+ 'l10n_uk_tax.xml',
'l10n_uk_wizard.xml'
],
'demo_xml': [],
'installable': True,
+ 'active': False,
'certificate': '0064392144797',
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_chart_uk_minimal/account_chart.xml b/addons/l10n_chart_uk_minimal/account_chart.xml
deleted file mode 100644
index 17eae399ef8..00000000000
--- a/addons/l10n_chart_uk_minimal/account_chart.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
-
-
-
- 0
- Account Chart UK
-
- view
-
-
-
-
-
-
- 1
- Balance Sheet
-
- view
-
-
-
-
- Assets
- 10
- view
-
-
-
-
-
-
- Liabilities
- 11
- view
-
-
-
-
-
-
- 100
- Fixed Assets
-
- view
-
-
-
-
- 1000
- Fixed Asset Account
-
- other
-
-
-
-
- 101
- Net Current Assets
-
- view
-
-
-
-
- 1100
- Current Assets
-
- view
-
-
-
-
- 11001
- Purchased Stocks
-
- other
-
-
-
-
- 11002
- Debtors
-
- receivable
-
-
-
-
-
-
-
- 11003
- Output VAT
-
- other
-
-
-
-
- 11004
- Bank Current Account
-
- other
-
-
-
-
- 11005
- Cash
-
- other
-
-
-
-
- 110
- Current Liabilities
-
- view
-
-
-
-
- 1111
- Creditors
-
- payable
-
-
-
-
-
-
-
- 1112
- Input VAT
-
- other
-
-
-
-
-
-
- 2
- Profit and Loss
-
- view
-
-
-
-
- Income
- 20
- view
-
-
-
-
-
-
- Foreign Exchange Gain
- X201
- other
-
-
-
-
-
-
- Expense
- 21
- view
-
-
-
-
-
-
- 200
- Revenue
-
- view
-
-
-
-
- 2001
- Product Sales
-
- other
-
-
-
-
-
-
- 210
- Cost of Sales
-
- view
-
-
-
-
- 2100
- Cost of Goods Sold
-
- other
-
-
-
-
- 211
- Overheads
-
- view
-
-
-
-
- 2110
- Expenses
-
- other
-
-
-
-
- Foreign Exchange Loss - (test)
- X2111
- other
-
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_chart_uk_minimal/i18n/it.po b/addons/l10n_chart_uk_minimal/i18n/it.po
index d4f9418d2b9..33101217121 100644
--- a/addons/l10n_chart_uk_minimal/i18n/it.po
+++ b/addons/l10n_chart_uk_minimal/i18n/it.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-09 17:51+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-18 10:16+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 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_chart_uk_minimal
@@ -27,11 +27,13 @@ msgid ""
"This is the base module to manage the accounting chart for United Kingdom in "
"Open ERP."
msgstr ""
+"Questo è il modulo base per gestire il piano dei conti per il Regno Unito in "
+"Open ERP."
#. module: l10n_chart_uk_minimal
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
-msgstr ""
+msgstr "Errore! Non puoi creare un modello di conto ricorsivo"
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_income
@@ -59,6 +61,14 @@ msgid ""
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
"Chart of Accounts from a Chart Template."
msgstr ""
+"Genera il Piano dei Conti da un Modello. Ti verrà richiesto di passare il "
+"nome della Compagnia, il modello da seguire, il numero di decimali per "
+"generare il codice dei tuoi conti e, per il conto della Banca, la valuta per "
+"creare il Libro Giornale. Così, una copia vergine del Piano dei Conti "
+"derivata dal modello è generata.\n"
+"\tQuesto è la stessa procedura automatica che viene lanciata da: Gestione "
+"Finanziaria / Configurazione / Contabilità / Conti finanziari / Genera il "
+"Piano dei conti da un modello."
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_payable
@@ -68,7 +78,7 @@ msgstr "Debiti"
#. module: l10n_chart_uk_minimal
#: model:ir.module.module,shortdesc:l10n_chart_uk_minimal.module_meta_information
msgid "United Kingdom - minimal"
-msgstr ""
+msgstr "Regno Unito - minimale"
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_equity
@@ -78,7 +88,7 @@ msgstr "Capitale"
#. module: l10n_chart_uk_minimal
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
-msgstr ""
+msgstr "Errore! Non puoi creare un Codice di Tassa ricorsivo"
#. module: l10n_chart_uk_minimal
#: model:account.account.type,name:l10n_chart_uk_minimal.account_type_expense
diff --git a/addons/l10n_chart_uk_minimal/i18n/tr.po b/addons/l10n_chart_uk_minimal/i18n/tr.po
index 5ffff55373f..1897239e229 100644
--- a/addons/l10n_chart_uk_minimal/i18n/tr.po
+++ b/addons/l10n_chart_uk_minimal/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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10:14+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 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_chart_uk_minimal
diff --git a/addons/l10n_chart_uk_minimal/l10n_uk_chart.xml b/addons/l10n_chart_uk_minimal/l10n_uk_chart.xml
new file mode 100644
index 00000000000..75f0cd89d2e
--- /dev/null
+++ b/addons/l10n_chart_uk_minimal/l10n_uk_chart.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+ 0
+ Account Chart UK
+
+ view
+
+
+
+
+
+
+ 1
+ Balance Sheet
+
+ view
+
+
+
+
+ Liabilities
+ 11
+ view
+
+
+
+
+
+
+ 110
+ Current Liabilities
+
+ view
+
+
+
+
+ 1111
+ Creditors
+
+ payable
+
+
+
+
+
+ 1112
+ Input VAT
+
+ other
+
+
+
+
+ 1113
+ Reserve and Surplus Account
+
+ payable
+
+
+
+
+ Assets
+ 10
+ view
+
+
+
+
+
+
+ 100
+ Fixed Assets
+
+ view
+
+
+
+
+ 1000
+ Fixed Asset Account
+
+ other
+
+
+
+
+ 101
+ Net Current Assets
+
+ view
+
+
+
+
+ 1100
+ Current Assets
+
+ view
+
+
+
+
+ 11001
+ Purchased Stocks
+
+ other
+
+
+
+
+ 11002
+ Debtors
+
+ receivable
+
+
+
+
+
+ 11003
+ Output VAT
+
+ other
+
+
+
+
+ 11004
+ Bank Current Account
+
+ other
+
+
+
+
+ 11005
+ Cash
+
+ other
+
+
+
+
+
+
+
+ 2
+ Profit and Loss
+
+ view
+
+
+
+
+ Income
+ 20
+ view
+
+
+
+
+
+
+ Foreign Exchange Gain
+ X201
+ other
+
+
+
+
+
+
+ 200
+ Revenue
+
+ view
+
+
+
+
+ 2001
+ Product Sales
+
+ other
+
+
+
+
+ Expense
+ 21
+ view
+
+
+
+
+
+
+ 210
+ Cost of Sales
+
+ view
+
+
+
+
+ 2100
+ Cost of Goods Sold
+
+ other
+
+
+
+
+ 211
+ Overheads
+
+ view
+
+
+
+
+ 2110
+ Expenses
+
+ other
+
+
+
+
+ Foreign Exchange Loss
+ 2111
+ other
+
+
+
+
+
+
+ 2112
+ Salary Expenses
+
+ other
+
+
+
+
+
diff --git a/addons/l10n_chart_uk_minimal/account_tax.xml b/addons/l10n_chart_uk_minimal/l10n_uk_tax.xml
similarity index 98%
rename from addons/l10n_chart_uk_minimal/account_tax.xml
rename to addons/l10n_chart_uk_minimal/l10n_uk_tax.xml
index 502cea9b0d2..6f02fc22f5f 100644
--- a/addons/l10n_chart_uk_minimal/account_tax.xml
+++ b/addons/l10n_chart_uk_minimal/l10n_uk_tax.xml
@@ -132,6 +132,7 @@
+
@@ -154,7 +155,7 @@
IVAT R
-
+
percent
@@ -214,7 +215,7 @@
OVAT R
-
+
percent
diff --git a/addons/l10n_chart_uk_minimal/account_types.xml b/addons/l10n_chart_uk_minimal/l10n_uk_types.xml
similarity index 65%
rename from addons/l10n_chart_uk_minimal/account_types.xml
rename to addons/l10n_chart_uk_minimal/l10n_uk_types.xml
index 180cf3a9b4a..d9bfb5344ad 100644
--- a/addons/l10n_chart_uk_minimal/account_types.xml
+++ b/addons/l10n_chart_uk_minimal/l10n_uk_types.xml
@@ -5,14 +5,14 @@
Receivable
receivable
- asset
+ income
unreconciled
Payable
payable
- liability
+ expense
unreconciled
@@ -22,26 +22,30 @@
none
-
- Income View
- view
- income
-
-
- Expense View
- expense
- expense
-
-
- Asset View
- asset
- asset
-
-
- Liability View
- liability
- liability
-
+
+ Income View
+ view
+ income
+
+
+
+ Expense View
+ expense
+ expense
+
+
+
+ Asset View
+ asset
+ asset
+
+
+
+ Liability View
+ liability
+ liability
+
+
Income
income
@@ -59,6 +63,7 @@
Tax
tax
+ liability
unreconciled
@@ -69,6 +74,13 @@
balance
+
+ Liability
+ liability
+ balance
+ liability
+
+
Asset
asset
diff --git a/addons/l10n_fr/__init__.py b/addons/l10n_fr/__init__.py
index 4319b838c0c..8d5728e334e 100644
--- a/addons/l10n_fr/__init__.py
+++ b/addons/l10n_fr/__init__.py
@@ -29,5 +29,6 @@
import l10n_fr
import report
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr/__openerp__.py b/addons/l10n_fr/__openerp__.py
index faaa963d4f1..f96945a8bc8 100644
--- a/addons/l10n_fr/__openerp__.py
+++ b/addons/l10n_fr/__openerp__.py
@@ -36,19 +36,19 @@
Credits: Sistheo Zeekom CrysaLEAD
""",
"depends" : ['base', 'account', 'account_chart', 'account_report', 'base_vat'],
- "init_xml" : [
- ],
+ "init_xml" : [],
"update_xml" : [
- "report.xml",
- "pcg.xml",
- "l10n_fr_pcg_taxes.xml",
- "tax.xml",
- "fiscal_templates_fr.xml",
- "l10n_fr_pcg_account_report.xml",
- "l10n_fr_pcg_report.xml",
- "l10n_fr_pcg_wizard.xml",
- "l10n_fr_pcg_view.xml",
+ "fr_report_demo.xml",
+ "plan_comptable_general_demo.xml",
+ "l10n_fr_wizard.xml",
+ "fr_pcg_taxes_demo.xml",
+ "fr_tax_demo.xml",
+ "fr_fiscal_templates_demo.xml",
+ "fr_pcg_account_report_demo.xml",
"security/ir.model.access.csv",
+ "wizard/fr_report_bilan_view.xml",
+ "wizard/fr_report_compute_resultant_view.xml",
+
],
"demo_xml" : [],
"certificate" : "00435321693876313629",
diff --git a/addons/l10n_fr/fiscal_templates_fr.xml b/addons/l10n_fr/fr_fiscal_templates_demo.xml
similarity index 100%
rename from addons/l10n_fr/fiscal_templates_fr.xml
rename to addons/l10n_fr/fr_fiscal_templates_demo.xml
diff --git a/addons/l10n_fr/l10n_fr_pcg_account_report.xml b/addons/l10n_fr/fr_pcg_account_report_demo.xml
similarity index 100%
rename from addons/l10n_fr/l10n_fr_pcg_account_report.xml
rename to addons/l10n_fr/fr_pcg_account_report_demo.xml
diff --git a/addons/l10n_fr/l10n_fr_pcg_taxes.xml b/addons/l10n_fr/fr_pcg_taxes_demo.xml
similarity index 100%
rename from addons/l10n_fr/l10n_fr_pcg_taxes.xml
rename to addons/l10n_fr/fr_pcg_taxes_demo.xml
diff --git a/addons/l10n_fr/report.xml b/addons/l10n_fr/fr_report_demo.xml
similarity index 99%
rename from addons/l10n_fr/report.xml
rename to addons/l10n_fr/fr_report_demo.xml
index ba91389ea1b..eb7792a542f 100644
--- a/addons/l10n_fr/report.xml
+++ b/addons/l10n_fr/fr_report_demo.xml
@@ -504,9 +504,6 @@
Capitaux propres : Résultat de l'exercice
-
{'load':['-:7:S','-:6:S'], 'except':[]}
bpvar10
diff --git a/addons/l10n_fr/tax.xml b/addons/l10n_fr/fr_tax_demo.xml
similarity index 100%
rename from addons/l10n_fr/tax.xml
rename to addons/l10n_fr/fr_tax_demo.xml
diff --git a/addons/l10n_fr/i18n/et.po b/addons/l10n_fr/i18n/et.po
index 18b7357d3aa..8abb5e9b48b 100644
--- a/addons/l10n_fr/i18n/et.po
+++ b/addons/l10n_fr/i18n/et.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-09 17:53+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-17 09:54+0000\n"
+"Last-Translator: lyyser \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:50+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_fr
@@ -47,6 +47,13 @@ msgid ""
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
"Chart of Accounts from a Chart Template."
msgstr ""
+"Genereeri kontoplaan plaanimallist. Sul palutakse valida ettevõte, "
+"plaanimall, numbrite arv sinu kontode ja pangakontode koodide "
+"genereerimiseks, valuuta päevikute loomiseks. Nii genereeritakse puhas "
+"koopia plaanimallist.\n"
+"\tSee on sama nõustaja mis käivitub asukohast "
+"Finantsjuhtimine/Seadistus/Finantsraamatupidamine/Mallid/Tekita kontoplaan "
+"kasutades plaani malli."
#. module: l10n_fr
#: rml:l10n.fr.bilan:0
diff --git a/addons/l10n_fr/i18n/tr.po b/addons/l10n_fr/i18n/tr.po
index 0f1a361097a..07e86305427 100644
--- a/addons/l10n_fr/i18n/tr.po
+++ b/addons/l10n_fr/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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 07:46+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-12 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_fr
diff --git a/addons/l10n_fr/l10n_fr.py b/addons/l10n_fr/l10n_fr.py
index 3b514ba416d..573f4f7519e 100644
--- a/addons/l10n_fr/l10n_fr.py
+++ b/addons/l10n_fr/l10n_fr.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,16 +15,11 @@
# 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 .
#
##############################################################################
-from mx import DateTime
-import time
-
from osv import fields, osv
-import pooler
-
class l10n_fr_report(osv.osv):
_name = 'l10n.fr.report'
@@ -34,9 +29,11 @@ class l10n_fr_report(osv.osv):
'name': fields.char('Name', size=128),
'line_ids': fields.one2many('l10n.fr.line', 'report_id', 'Lines'),
}
+
_sql_constraints = [
- ('code_uniq', 'unique (code)','The code report must be unique !')
- ]
+ ('code_uniq', 'unique (code)','The code report must be unique !')
+ ]
+
l10n_fr_report()
class l10n_fr_line(osv.osv):
@@ -49,8 +46,9 @@ class l10n_fr_line(osv.osv):
'report_id': fields.many2one('l10n.fr.report', 'Report'),
}
_sql_constraints = [
- ('code_uniq', 'unique (code)', 'The variable name must be unique !')
+ ('code_uniq', 'unique (code)', 'The variable name must be unique !')
]
+
l10n_fr_line()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_fr/l10n_fr_pcg_report.xml b/addons/l10n_fr/l10n_fr_pcg_report.xml
deleted file mode 100644
index d5277265cfc..00000000000
--- a/addons/l10n_fr/l10n_fr_pcg_report.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
diff --git a/addons/l10n_fr/l10n_fr_pcg_view.xml b/addons/l10n_fr/l10n_fr_pcg_view.xml
deleted file mode 100644
index ae8c823c474..00000000000
--- a/addons/l10n_fr/l10n_fr_pcg_view.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_fr/l10n_fr_pcg_wizard.xml b/addons/l10n_fr/l10n_fr_pcg_wizard.xml
deleted file mode 100644
index 3fe6f946717..00000000000
--- a/addons/l10n_fr/l10n_fr_pcg_wizard.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
-This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- onskip
-
-
-
diff --git a/addons/l10n_fr/l10n_fr_wizard.xml b/addons/l10n_fr/l10n_fr_wizard.xml
new file mode 100644
index 00000000000..985c3b81195
--- /dev/null
+++ b/addons/l10n_fr/l10n_fr_wizard.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ onskip
+
+
+
+
diff --git a/addons/l10n_fr/pcg.xml b/addons/l10n_fr/plan_comptable_general_demo.xml
similarity index 99%
rename from addons/l10n_fr/pcg.xml
rename to addons/l10n_fr/plan_comptable_general_demo.xml
index 77fae821f3c..dc17a39abd8 100644
--- a/addons/l10n_fr/pcg.xml
+++ b/addons/l10n_fr/plan_comptable_general_demo.xml
@@ -14,7 +14,6 @@
Dettes long terme
dettes
-
balance
@@ -35,7 +34,6 @@
Cloture
cloture
-
balance
@@ -76,7 +74,6 @@
Tax
tax
-
unreconciled
@@ -104,14 +101,12 @@
Provisions
provision
-
balance
Engagements
commitment
-
balance
@@ -125,7 +120,6 @@
Comptes spéciaux
special
-
none
@@ -9255,49 +9249,5 @@
-
-
diff --git a/addons/l10n_fr/report/__init__.py b/addons/l10n_fr/report/__init__.py
index 558b90865b9..9907a2f5765 100644
--- a/addons/l10n_fr/report/__init__.py
+++ b/addons/l10n_fr/report/__init__.py
@@ -27,7 +27,8 @@
##############################################################################
import base_report
-import bilan
-import cdr
+import bilan_report
+import compute_resultant_report
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr/report/base_report.py b/addons/l10n_fr/report/base_report.py
index 03ebce690fd..f1b00896159 100644
--- a/addons/l10n_fr/report/base_report.py
+++ b/addons/l10n_fr/report/base_report.py
@@ -27,12 +27,13 @@
##############################################################################
import time
+
from report import report_sxw
class base_report(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
+ def __init__(self, cr, uid, name, context=None):
super(base_report, self).__init__(cr, uid, name, context=context)
- self.localcontext.update( {
+ self.localcontext.update({
'time': time,
'_load': self._load,
'_get_variable': self._get_variable,
@@ -40,49 +41,46 @@ class base_report(report_sxw.rml_parse):
})
self.context = context
- def _load(self,name,form):
- fiscalyear=self.pool.get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear'])
+ def _load(self, name, form):
+ fiscalyear = self.pool.get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear'])
+ period_query_cond=self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id', '=', form['fiscalyear'])])
- period_query_cond=self.pool.get('account.period').search(self.cr, self.uid,[('fiscalyear_id','=',form['fiscalyear'])])
-
- self.cr.execute("SELECT MIN(date_start) AS date_start, MAX(date_stop) AS date_stop FROM account_period WHERE id IN %s",(tuple(period_query_cond),))
- dates =self.cr.dictfetchall()
+ self.cr.execute("SELECT MIN(date_start) AS date_start, MAX(date_stop) AS date_stop FROM account_period WHERE id IN %s", (tuple(period_query_cond),))
+ dates = self.cr.dictfetchall()
self._set_variable('date_start', dates[0]['date_start'])
self._set_variable('date_stop', dates[0]['date_stop'])
self.cr.execute("SELECT l10n_fr_line.code,definition FROM l10n_fr_line LEFT JOIN l10n_fr_report ON l10n_fr_report.id=report_id WHERE l10n_fr_report.code=%s",(name,))
- datas =self.cr.dictfetchall()
+ datas = self.cr.dictfetchall()
for line in datas:
self._load_accounts(form,line['code'],eval(line['definition']),fiscalyear,period_query_cond)
- def _set_variable(self,variable,valeur):
- self.localcontext.update({variable:valeur})
+ def _set_variable(self, variable, valeur):
+ self.localcontext.update({variable: valeur})
- def _get_variable(self,variable):
+ def _get_variable(self, variable):
return self.localcontext[variable]
def _load_accounts(self,form,code,definition,fiscalyear,period_query_cond):
- #self.context.copy()
- accounts={}
+ accounts = {}
for x in definition['load']:
- p=x.split(":")
- accounts[p[1]]=[p[0],p[2]]
- sum=0.0
-
- if fiscalyear.state!='done' or not code.startswith('bpcheck'):
- query_cond="("
+ p = x.split(":")
+ accounts[p[1]] = [p[0],p[2]]
+ sum = 0.0
+ if fiscalyear.state != 'done' or not code.startswith('bpcheck'):
+ query_cond = "("
for account in accounts:
- query_cond += "aa.code LIKE '"+account+"%' OR "
+ query_cond += "aa.code LIKE '" + account + "%' OR "
query_cond = query_cond[:-4]+")"
- if len(definition['except'])>0:
+ if len(definition['except']) > 0:
query_cond = query_cond+" and ("
for account in definition['except']:
query_cond += "aa.code NOT LIKE '"+account+"%' AND "
query_cond = query_cond[:-5]+")"
- closed_cond=""
- if fiscalyear.state=='done':
+ closed_cond = ""
+ if fiscalyear.state == 'done':
closed_cond=" AND (aml.move_id NOT IN (SELECT account_move.id as move_id FROM account_move WHERE period_id IN "+str(tuple(period_query_cond))+" AND journal_id=(SELECT res_id FROM ir_model_data WHERE name='closing_journal' AND module='l10n_fr')) OR (aa.type != 'income' AND aa.type !='expense'))"
query = "SELECT aa.code AS code, SUM(debit) as debit, SUM(credit) as credit FROM account_move_line aml LEFT JOIN account_account aa ON aa.id=aml.account_id WHERE "+query_cond+closed_cond+" AND aml.state='valid' AND aml.period_id IN "+str(tuple(period_query_cond))+" GROUP BY code"
@@ -95,19 +93,19 @@ class base_report(report_sxw.rml_parse):
operator=accounts[account][0]
type=accounts[account][1]
value=0.0
- if(type=="S"):
+ if(type == "S"):
value=line["debit"]-line["credit"]
- elif(type=="D"):
+ elif(type == "D"):
value=line["debit"]-line["credit"]
if(value<0.001): value=0.0
- elif(type=="C"):
+ elif(type == "C"):
value=line["credit"]-line["debit"]
if(value<0.001): value=0.0
- if(operator=='+'):
- sum+=value
+ if(operator == '+'):
+ sum += value
else:
- sum-=value
+ sum -= value
break
self._set_variable(code, sum)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_fr/report/bilan.rml b/addons/l10n_fr/report/bilan.rml
deleted file mode 100644
index a462f61404e..00000000000
--- a/addons/l10n_fr/report/bilan.rml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-[[ _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)]] [[ company.name ]] au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]] Bilan Imprimé le : [[ time.strftime('%d-%m-%Y') ]] Tenue de Compte : [[ company.currency_id.name ]] ACTIF Brut Amortissements et dépréciations Net C apital souscrit - non appelé [[bavar1]] [[bavar1]] ACTIF IMMOBILISÉ IMMOBILISATIONS INCORPORELLES Frais d'établissement[[bavar2]] [[-bavar2b]] [[bavar2+bavar2b]] Frais de recherche et de développement[[bavar3]] [[-bavar3b]] [[bavar3+bavar3b]] 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 T errains[[bavar9]] [[-bavar9b]] [[bavar9+bavar9b]] C onstructions[[bavar10]] [[-bavar10b]] [[bavar10+bavar10b]] I nstallations techniques,matériel et outillage[[bavar11]] [[-bavar11b]] [[bavar11+bavar11b]] A utres [[bavar12]] [[-bavar12b]] [[bavar12+bavar12b]] I mmobilisations corporelles en cours[[bavar13]] [[-bavar13b]] [[bavar13+bavar13b]] A vances et acomptes[[bavar14]] [[bavar14]] IMMOBILISATIONS FINANCIÉRES P articipations[[bavar15]] [[-bavar15b]] [[bavar15+bavar15b]] C réances rattachées à des participations[[bavar16]] [[-bavar16b]] [[bavar16+bavar16b]] T itres immobilisés de l'activité de portefeuille[[bavar17]] [[-bavar17b]] [[bavar17+bavar17b]] A utres titres immobilisés[[bavar18]] [[-bavar18b]] [[bavar18+bavar18b]] P rêts[[bavar19]] [[-bavar19b]] [[bavar19+bavar19b]] A utres[[bavar20]] [[-bavar20b]] [[bavar20+bavar20b]] TOTAL I [[at1a]] [[-at1b]] [[at1]] ACTIF CIRCULANT STOCK EN COURS M atières premières et autres approvisionnements[[bavar21]] [[-bavar21b]] [[bavar21+bavar21b]] E n-cours de production [biens et services][[bavar22]] [[-bavar22b]] [[bavar22+bavar22b]] P roduits intermédiaires et finis[[bavar23]] [[-bavar23b]] [[bavar23+bavar23b]] M archandises[[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]] D isponibilité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/bilan.py b/addons/l10n_fr/report/bilan_report.py
similarity index 95%
rename from addons/l10n_fr/report/bilan.py
rename to addons/l10n_fr/report/bilan_report.py
index 96d269893d8..fafacd8f6ea 100644
--- a/addons/l10n_fr/report/bilan.py
+++ b/addons/l10n_fr/report/bilan_report.py
@@ -33,7 +33,7 @@ class bilan(base_report.base_report):
def __init__(self, cr, uid, name, context):
super(bilan, self).__init__(cr, uid, name, context)
-report_sxw.report_sxw('report.l10n.fr.bilan', 'account.move.line','addons/l10n_fr/report/bilan.rml', parser=bilan, header=False)
+report_sxw.report_sxw('report.l10n.fr.bilan', 'account.move.line','addons/l10n_fr/report/bilan_report.rml', parser=bilan, header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr/report/bilan_report.rml b/addons/l10n_fr/report/bilan_report.rml
new file mode 100644
index 00000000000..e93a63aec86
--- /dev/null
+++ b/addons/l10n_fr/report/bilan_report.rml
@@ -0,0 +1,3 @@
+
+[[ _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)]] [[ company.name ]] au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]] Bilan Imprimé le : [[ time.strftime('%d-%m-%Y') ]] Tenue de Compte : [[ company.currency_id.name ]] ACTIF Brut Amortissements et dépréciations Net C apital souscrit - non appelé [[bavar1]] [[bavar1]] ACTIF IMMOBILISÉ IMMOBILISATIONS INCORPORELLES Frais d'établissement[[bavar2]] [[-bavar2b]] [[bavar2+bavar2b]] Frais de recherche et de développement[[bavar3]] [[-bavar3b]] [[bavar3+bavar3b]] 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 T errains[[bavar9]] [[-bavar9b]] [[bavar9+bavar9b]] C onstructions[[bavar10]] [[-bavar10b]] [[bavar10+bavar10b]] I nstallations techniques,matériel et outillage[[bavar11]] [[-bavar11b]] [[bavar11+bavar11b]] A utres [[bavar12]] [[-bavar12b]] [[bavar12+bavar12b]] I mmobilisations corporelles en cours[[bavar13]] [[-bavar13b]] [[bavar13+bavar13b]] A vances et acomptes[[bavar14]] [[bavar14]] IMMOBILISATIONS FINANCIÉRES P articipations[[bavar15]] [[-bavar15b]] [[bavar15+bavar15b]] C réances rattachées à des participations[[bavar16]] [[-bavar16b]] [[bavar16+bavar16b]] T itres immobilisés de l'activité de portefeuille[[bavar17]] [[-bavar17b]] [[bavar17+bavar17b]] A utres titres immobilisés[[bavar18]] [[-bavar18b]] [[bavar18+bavar18b]] P rêts[[bavar19]] [[-bavar19b]] [[bavar19+bavar19b]] A utres[[bavar20]] [[-bavar20b]] [[bavar20+bavar20b]] TOTAL I [[at1a]] [[-at1b]] [[at1]] ACTIF CIRCULANT STOCK EN COURS M atières premières et autres approvisionnements[[bavar21]] [[-bavar21b]] [[bavar21+bavar21b]] E n-cours de production [biens et services][[bavar22]] [[-bavar22b]] [[bavar22+bavar22b]] P roduits intermédiaires et finis[[bavar23]] [[-bavar23b]] [[bavar23+bavar23b]] M archandises[[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]] D isponibilité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/cdr.rml b/addons/l10n_fr/report/cdr.rml
deleted file mode 100644
index 7ac220a62be..00000000000
--- a/addons/l10n_fr/report/cdr.rml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-[[ _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 [[cdrp17]] TOTAL IV [[pt4]] TOTAL DES PRODUITS ( I + II + III + IV ) [[produits]] PRODUITS - CHARGES [[produits-charges]]
-
diff --git a/addons/l10n_fr/report/cdr.py b/addons/l10n_fr/report/compute_resultant_report.py
similarity index 90%
rename from addons/l10n_fr/report/cdr.py
rename to addons/l10n_fr/report/compute_resultant_report.py
index 6e763087f5e..e91f9fc839e 100644
--- a/addons/l10n_fr/report/cdr.py
+++ b/addons/l10n_fr/report/compute_resultant_report.py
@@ -33,7 +33,7 @@ class cdr(base_report.base_report):
def __init__(self, cr, uid, name, context):
super(cdr, self).__init__(cr, uid, name, context)
-report_sxw.report_sxw('report.l10n.fr.cdr', 'account.move.line','addons/l10n_fr/report/cdr.rml', parser=cdr, header=False)
+report_sxw.report_sxw('report.l10n.fr.compute_resultant', 'account.move.line','addons/l10n_fr/report/compute_resultant_report.rml', parser=cdr, header=False)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr/report/compute_resultant_report.rml b/addons/l10n_fr/report/compute_resultant_report.rml
new file mode 100644
index 00000000000..9d3693f0b52
--- /dev/null
+++ b/addons/l10n_fr/report/compute_resultant_report.rml
@@ -0,0 +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 [[cdrp17]] TOTAL IV [[pt4]] TOTAL DES PRODUITS ( I + II + III + IV ) [[produits]] PRODUITS - CHARGES [[produits-charges]]
+
diff --git a/addons/l10n_fr/wizard/__init__.py b/addons/l10n_fr/wizard/__init__.py
index 11db3887d1f..6e29471a975 100644
--- a/addons/l10n_fr/wizard/__init__.py
+++ b/addons/l10n_fr/wizard/__init__.py
@@ -26,7 +26,8 @@
#
##############################################################################
-import bilan
-import cdr
+import fr_report_bilan
+import fr_report_compute_resultant
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_fr/wizard/bilan.py b/addons/l10n_fr/wizard/fr_report_bilan.py
similarity index 60%
rename from addons/l10n_fr/wizard/bilan.py
rename to addons/l10n_fr/wizard/fr_report_bilan.py
index 2a0e3c1855e..cec2e513a6a 100644
--- a/addons/l10n_fr/wizard/bilan.py
+++ b/addons/l10n_fr/wizard/fr_report_bilan.py
@@ -26,35 +26,32 @@
#
##############################################################################
-import wizard
-import pooler
+from osv import osv, fields
-dates_form = '''
-
-
- '''
+class account_bilan_report(osv.osv_memory):
+ _name = 'account.bilan.report'
+ _description = 'Account Bilan Report'
-dates_fields = {
- 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True}
-}
+ def _get_default_fiscalyear(self, cr, uid, context=None):
+ fiscalyear_id = self.pool.get('account.fiscalyear').find(cr, uid)
+ return fiscalyear_id
-class wizard_report(wizard.interface):
- def _get_defaults(self, cr, uid, data, context):
- fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
- data['form']['fiscalyear'] =fiscalyear_obj.find(cr, uid)
- return data['form']
-
- states = {
- 'init': {
- 'actions': [_get_defaults],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
- },
- 'report': {
- 'actions': [],
- 'result': {'type':'print', 'report':'l10n.fr.bilan', 'state':'end'}
- }
+ _columns = {
+ 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True),
}
-wizard_report('l10n.fr.bilan.report')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ _defaults = {
+ 'fiscalyear_id':_get_default_fiscalyear
+ }
+ def print_bilan_report(self, cr, uid, ids, context=None):
+ active_ids = context.get('active_ids', [])
+ data = {}
+ data['form'] = {}
+ data['ids'] = active_ids
+ data['form']['fiscalyear'] = self.browse(cr, uid, ids)[0].fiscalyear_id.id
+ return {'type': 'ir.actions.report.xml', 'report_name': 'l10n.fr.bilan', 'datas': data}
+
+account_bilan_report()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_fr/wizard/fr_report_bilan_view.xml b/addons/l10n_fr/wizard/fr_report_bilan_view.xml
new file mode 100644
index 00000000000..e8615935b8c
--- /dev/null
+++ b/addons/l10n_fr/wizard/fr_report_bilan_view.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ Bilan Report
+ account.bilan.report
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bilan Report
+ ir.actions.act_window
+ account.bilan.report
+ form
+ form
+
+ new
+
+
+
+
+
+ Bilan Report
+ client_print_multi
+
+ action
+ account.move.line
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_fr/wizard/cdr.py b/addons/l10n_fr/wizard/fr_report_compute_resultant.py
similarity index 60%
rename from addons/l10n_fr/wizard/cdr.py
rename to addons/l10n_fr/wizard/fr_report_compute_resultant.py
index 57216754366..d90466ea6c4 100644
--- a/addons/l10n_fr/wizard/cdr.py
+++ b/addons/l10n_fr/wizard/fr_report_compute_resultant.py
@@ -26,35 +26,32 @@
#
##############################################################################
-import wizard
-import pooler
+from osv import osv, fields
-dates_form = '''
-
-
- '''
+class account_cdr_report(osv.osv_memory):
+ _name = 'account.cdr.report'
+ _description = 'Account CDR Report'
-dates_fields = {
- 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True}
-}
+ def _get_defaults(self, cr, uid, context=None):
+ fiscalyear_id = self.pool.get('account.fiscalyear').find(cr, uid)
+ return fiscalyear_id
-class wizard_report(wizard.interface):
- def _get_defaults(self, cr, uid, data, context):
- fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
- data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid)
- return data['form']
-
- states = {
- 'init': {
- 'actions': [_get_defaults],
- 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]}
- },
- 'report': {
- 'actions': [],
- 'result': {'type':'print', 'report':'l10n.fr.cdr', 'state':'end'}
- }
+ _columns = {
+ 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True),
}
-wizard_report('l10n.fr.cdr.report')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ _defaults = {
+ 'fiscalyear_id': _get_defaults
+ }
+ def print_cdr_report(self, cr, uid, ids, context=None):
+ active_ids = context.get('active_ids', [])
+ data = {}
+ data['form'] = {}
+ data['ids'] = active_ids
+ data['form']['fiscalyear'] = self.browse(cr, uid, ids)[0].fiscalyear_id.id
+ return { 'type': 'ir.actions.report.xml', 'report_name': 'l10n.fr.compute_resultant', 'datas': data}
+
+account_cdr_report()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml b/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml
new file mode 100644
index 00000000000..f50ec1ef308
--- /dev/null
+++ b/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Compte de resultat Report
+ account.cdr.report
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compte de resultat Report
+ ir.actions.act_window
+ account.cdr.report
+ form
+ form
+
+ new
+
+
+
+
+
+ Compte de resultat Report
+ client_print_multi
+
+ action
+ account.move.line
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_in/__openerp__.py b/addons/l10n_in/__openerp__.py
index 18791f9e0f4..e6174c0fdca 100644
--- a/addons/l10n_in/__openerp__.py
+++ b/addons/l10n_in/__openerp__.py
@@ -20,24 +20,23 @@
##############################################################################
{
- "name" : "Indian Chart of Account",
- "version" : "1.0",
- "description":"""
+ "name": "Indian Chart of Account",
+ "version": "1.0",
+ "description": """
Indian Accounting : chart of Account
""",
- "author" : 'OpenERP SA & Axelor',
+ "author": 'OpenERP SA & Axelor',
"category": "Localisation/Account Charts",
- "depends" : [
+ "depends": [
"account",
"account_chart"
],
- "demo_xml" : [],
- "update_xml" : [
- "account_chart.xml",
- "account_wizard.xml",
+ "demo_xml": [],
+ "update_xml": [
+ "l10n_in_chart.xml",
+ "l10n_in_wizard.xml",
],
"active": False,
"installable": True
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_in/account_tax.xml b/addons/l10n_in/account_tax.xml
index 857e5977e0b..80f1233f498 100644
--- a/addons/l10n_in/account_tax.xml
+++ b/addons/l10n_in/account_tax.xml
@@ -1,16 +1,19 @@
+
-
- PPn (10%)(10.0%)
- 0.100000
- percent
-
-
-
-
-
-
-
+
+
+ PPn (10%)(10.0%)
+ 0.100000
+ percent
+
+
+
+
+
+
+
+
diff --git a/addons/l10n_in/account_tax_code.xml b/addons/l10n_in/account_tax_code.xml
index 2fba08e5f5a..bec870dd426 100644
--- a/addons/l10n_in/account_tax_code.xml
+++ b/addons/l10n_in/account_tax_code.xml
@@ -1,4 +1,5 @@
+
diff --git a/addons/l10n_in/i18n/et.po b/addons/l10n_in/i18n/et.po
index 6acb5bdc6e1..898f31cf316 100644
--- a/addons/l10n_in/i18n/et.po
+++ b/addons/l10n_in/i18n/et.po
@@ -17,26 +17,26 @@ msgstr ""
"X-Launchpad-Export-Date: 2010-08-12 04:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#. module: l10n_chart_in
-#: model:ir.module.module,description:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,description:l10n_in.module_meta_information
msgid ""
"\n"
" Indian Accounting : chart of Account\n"
" "
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr "Viga ! Sa ei saa luua rekrusiivseid kontomalle."
-#. module: l10n_chart_in
-#: model:account.journal,name:l10n_chart_in.opening_journal
+#. module: l10n_in
+#: model:account.journal,name:l10n_in.opening_journal
msgid "Opening Journal"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal
+#. module: l10n_in
+#: model:ir.actions.todo,note:l10n_in.config_call_account_template_in_minimal
msgid ""
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
"the name of the company, the chart template to follow, the no. of digits to "
@@ -54,42 +54,42 @@ msgstr ""
"Finantsjuhtimine/Seadistus/Finantsraamatupidamine/Mallid/Tekita kontoplaan "
"kasutades plaani malli."
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_liability1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_liability1
msgid "Liability"
msgstr "Kohustus"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_asset1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_asset1
msgid "Asset"
msgstr "Vara"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_closed1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_closed1
msgid "Closed"
msgstr "Suletud"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_income1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_income1
msgid "Income"
msgstr "Tulu"
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr "Viga ! sa ei saa luua rekrusiivseid maksukoode."
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_expense1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_expense1
msgid "Expense"
msgstr "Kulu"
-#. module: l10n_chart_in
-#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,shortdesc:l10n_in.module_meta_information
msgid "Indian Chart of Account"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_root_ind1
msgid "View"
msgstr "Vaade"
diff --git a/addons/l10n_in/i18n/fr_BE.po b/addons/l10n_in/i18n/fr_BE.po
index 8e06c7b34d0..1d4fe34679b 100644
--- a/addons/l10n_in/i18n/fr_BE.po
+++ b/addons/l10n_in/i18n/fr_BE.po
@@ -1,6 +1,6 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * l10n_chart_in
+# * l10n_in
#
msgid ""
msgstr ""
@@ -15,66 +15,66 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: l10n_chart_in
-#: model:ir.module.module,description:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,description:l10n_in.module_meta_information
msgid "\n"
" Indian Accounting : chart of Account\n"
" "
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.journal,name:l10n_chart_in.opening_journal
+#. module: l10n_in
+#: model:account.journal,name:l10n_in.opening_journal
msgid "Opening Journal"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal
+#. module: l10n_in
+#: model:ir.actions.todo,note:l10n_in.config_call_account_template_in_minimal
msgid "Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.\n"
" This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_liability1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_liability1
msgid "Liability"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_asset1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_asset1
msgid "Asset"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_closed1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_closed1
msgid "Closed"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_income1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_income1
msgid "Income"
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_expense1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_expense1
msgid "Expense"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,shortdesc:l10n_in.module_meta_information
msgid "Indian Chart of Account"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_root_ind1
msgid "View"
msgstr ""
diff --git a/addons/l10n_in/i18n/l10n_chart_in.pot b/addons/l10n_in/i18n/l10n_in.pot
similarity index 58%
rename from addons/l10n_in/i18n/l10n_chart_in.pot
rename to addons/l10n_in/i18n/l10n_in.pot
index 8e06c7b34d0..1d4fe34679b 100644
--- a/addons/l10n_in/i18n/l10n_chart_in.pot
+++ b/addons/l10n_in/i18n/l10n_in.pot
@@ -1,6 +1,6 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
-# * l10n_chart_in
+# * l10n_in
#
msgid ""
msgstr ""
@@ -15,66 +15,66 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: l10n_chart_in
-#: model:ir.module.module,description:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,description:l10n_in.module_meta_information
msgid "\n"
" Indian Accounting : chart of Account\n"
" "
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.journal,name:l10n_chart_in.opening_journal
+#. module: l10n_in
+#: model:account.journal,name:l10n_in.opening_journal
msgid "Opening Journal"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal
+#. module: l10n_in
+#: model:ir.actions.todo,note:l10n_in.config_call_account_template_in_minimal
msgid "Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.\n"
" This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_liability1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_liability1
msgid "Liability"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_asset1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_asset1
msgid "Asset"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_closed1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_closed1
msgid "Closed"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_income1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_income1
msgid "Income"
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_expense1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_expense1
msgid "Expense"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,shortdesc:l10n_in.module_meta_information
msgid "Indian Chart of Account"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_root_ind1
msgid "View"
msgstr ""
diff --git a/addons/l10n_in/i18n/ru.po b/addons/l10n_in/i18n/ru.po
index 1c32faf63f7..377291d74d3 100644
--- a/addons/l10n_in/i18n/ru.po
+++ b/addons/l10n_in/i18n/ru.po
@@ -17,26 +17,26 @@ msgstr ""
"X-Launchpad-Export-Date: 2010-08-12 04:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#. module: l10n_chart_in
-#: model:ir.module.module,description:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,description:l10n_in.module_meta_information
msgid ""
"\n"
" Indian Accounting : chart of Account\n"
" "
msgstr ""
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.journal,name:l10n_chart_in.opening_journal
+#. module: l10n_in
+#: model:account.journal,name:l10n_in.opening_journal
msgid "Opening Journal"
msgstr ""
-#. module: l10n_chart_in
-#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal
+#. module: l10n_in
+#: model:ir.actions.todo,note:l10n_in.config_call_account_template_in_minimal
msgid ""
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
"the name of the company, the chart template to follow, the no. of digits to "
@@ -47,42 +47,42 @@ msgid ""
"Chart of Accounts from a Chart Template."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_liability1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_liability1
msgid "Liability"
msgstr "Обязательства"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_asset1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_asset1
msgid "Asset"
msgstr "Оборудование"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_closed1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_closed1
msgid "Closed"
msgstr "Закрытый"
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_income1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_income1
msgid "Income"
msgstr "Доход"
-#. module: l10n_chart_in
+#. module: l10n_in
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_expense1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_expense1
msgid "Expense"
msgstr "Расход"
-#. module: l10n_chart_in
-#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information
+#. module: l10n_in
+#: model:ir.module.module,shortdesc:l10n_in.module_meta_information
msgid "Indian Chart of Account"
msgstr ""
-#. module: l10n_chart_in
-#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1
+#. module: l10n_in
+#: model:account.account.type,name:l10n_in.account_type_root_ind1
msgid "View"
msgstr "Просмотр"
diff --git a/addons/l10n_in/account_chart.xml b/addons/l10n_in/l10n_in_chart.xml
similarity index 88%
rename from addons/l10n_in/account_chart.xml
rename to addons/l10n_in/l10n_in_chart.xml
index 5bdc5df3c50..3cc4de43a4c 100644
--- a/addons/l10n_in/account_chart.xml
+++ b/addons/l10n_in/l10n_in_chart.xml
@@ -1,7 +1,7 @@
-
-
+
Indian Chart of Account
0
view
-
+
-
+
@@ -76,131 +76,119 @@
IA_AC0
view
-
+
-
+
-
+
Assets
IA_AC01
view
-
+
-
+
-
+
Current Assets
IA_AC011
view
-
+
-
+
-
+
Bank Account
IA_AC0111
receivable
-
+
-
+
-
+
Cash In Hand Account
IA_AC0112
view
-
+
-
+
-
+
Cash Account
IA_AC01121
receivable
-
+
-
+
-
+
Deposit Account
IA_AC0113
receivable
-
+
-
+
-
+
Loan & Advance(Assets) Account
IA_AC0114
receivable
-
+
-
+
-
-
-
-
-
-
-
-
-
-
Total Sundry Debtors Account
IA_AC0116
view
-
+
-
+
-
Sundry Debtors Account
IA_AC01161
receivable
-
+
-
+
-
+
Fixed Assets
IA_AC012
receivable
-
+
-
+
@@ -209,9 +197,9 @@
IA_AC013
receivable
-
+
-
+
@@ -220,54 +208,54 @@
IA_AC014
receivable
-
+
-
+
-
-
+
+
Liabilities
IA_AC02
view
-
+
-
+
-
+
Current Liabilities
IA_AC021
view
-
+
-
+
-
+
Duties & Taxes
IA_AC0211
payable
-
+
-
+
-
+
Provision
IA_AC0212
payable
-
+
-
+
@@ -276,20 +264,20 @@
IA_AC0213
view
-
+
-
+
-
+
Sundry Creditors
IA_AC02131
payable
-
+
-
+
@@ -298,154 +286,154 @@
IA_AC022
payable
-
+
-
+
-
+
Share Holder/Owner Fund
IA_AC023
view
-
+
-
+
-
-
+
+
Capital Account
IA_AC0231
payable
-
+
-
+
-
+
Reserve and Surplus Account
IA_AC0232
payable
-
+
-
+
-
+
Loan(Liability) Account
IA_AC024
view
-
+
-
+
-
+
Bank OD Account
IA_AC0241
payable
-
+
-
+
-
+
Secured Loan Account
IA_AC0242
payable
-
+
-
+
-
+
Unsecured Loan Account
IA_AC0243
payable
-
+
-
+
-
+
Suspense Account
IA_AC025
payable
-
+
-
+
-
+
Profit And Loss Account
IA_AC1
view
-
+
-
+
-
+
Expense
IA_AC11
view
-
+
-
+
-
+
Direct Expenses
IA_AC111
other
-
+
-
+
-
+
Indirect Expenses
IA_AC112
other
-
+
-
+
-
+
Purchase
IA_AC113
other
-
+
-
+
@@ -453,54 +441,64 @@
IA_AC114
other
-
+
-
+
+
+
+
+ Salary Expenses
+ IA_AC115
+ other
+
+
+
+
-
+
Income
IA_AC12
view
-
+
-
+
-
+
Direct Incomes
IA_AC121
other
-
+
-
+
-
+
Indirect Incomes
IA_AC122
other
-
+
-
+
-
+
Sales Account
IA_AC123
other
-
+
-
+
@@ -508,52 +506,52 @@
IA_AC124
other
-
+
-
+
-
-
+
+
Tax
-
+
Tax Balance to Pay
-
+
Tax Due (Tax to pay)
-
+
Tax Payable
-
+
Tax Bases
-
-
+
+
Base of Taxed Sales
-
-
+
+
Base of Taxed Purchases
-
-
-
+
+
+
Opening Journal
OPJ
@@ -562,14 +560,14 @@
-
+
OPJ
Opening Journal
situation
-
-
+
+
India - Chart of Accounts
@@ -580,8 +578,9 @@
+
-
+
diff --git a/addons/l10n_in/account_wizard.xml b/addons/l10n_in/l10n_in_wizard.xml
similarity index 100%
rename from addons/l10n_in/account_wizard.xml
rename to addons/l10n_in/l10n_in_wizard.xml
diff --git a/addons/l10n_lu/__init__.py b/addons/l10n_lu/__init__.py
index 2c27dad545a..0e933f136e0 100644
--- a/addons/l10n_lu/__init__.py
+++ b/addons/l10n_lu/__init__.py
@@ -18,5 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_lu/__openerp__.py b/addons/l10n_lu/__openerp__.py
index d17d6b99828..739f36c9ce4 100644
--- a/addons/l10n_lu/__openerp__.py
+++ b/addons/l10n_lu/__openerp__.py
@@ -37,12 +37,13 @@ This module installs:
'update_xml': [
'account.tax.code.template.csv',
'l10n_lu_data.xml',
- 'account.tax.template.csv',
'l10n_lu_wizard.xml',
- 'l10n_lu_report.xml'
+ 'account.tax.template.csv',
+ 'wizard/print_vat_view.xml'
],
'demo_xml': ['account.report.report.csv'],
'installable': True,
+ 'active': False,
'certificate': '0078164766621',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_lu/i18n/tr.po b/addons/l10n_lu/i18n/tr.po
index 9ee75f1f67b..a33305e4dae 100644
--- a/addons/l10n_lu/i18n/tr.po
+++ b/addons/l10n_lu/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-11 05:45+0000\n"
+"PO-Revision-Date: 2010-08-29 09: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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: l10n_lu
diff --git a/addons/l10n_lu/l10n_lu_data.xml b/addons/l10n_lu/l10n_lu_data.xml
index 3f65923d3e6..940da2177e5 100644
--- a/addons/l10n_lu/l10n_lu_data.xml
+++ b/addons/l10n_lu/l10n_lu_data.xml
@@ -1,9 +1,12 @@
+
+
+
View
view
@@ -24,7 +27,6 @@
Créances
creances
-
balance
@@ -54,3724 +56,3724 @@
-
- 0
- Plan KLUWER
- view
-
-
+
+ 0
+ Plan KLUWER
+ view
+
+
-
- 1
- Fonds propres, prov. & dettes + d'1an
-
-
-
- view
-
-
- 2
- Immobilis., dettes & créances à + d'1 an
-
-
-
- view
-
-
- 3
- Stocks et commandes en cours d'exécution
-
-
-
- view
-
-
- 4
- Créances et dettes à un an au plus
-
-
-
- view
-
-
- 5
- Placements de trésorerie et disponible
-
-
-
- view
-
-
- 6
- Charges
-
-
-
- view
-
-
- 7
- Produits
-
-
-
- view
-
-
- 10
- Capital
-
-
-
- view
-
-
- 12
- Plus-values de réévaluation
-
-
-
- view
-
-
- 13
- Réserves
-
-
-
- view
-
-
- 14
- Résultat reporté
-
-
-
- view
-
-
- 15
- Subsides en capital
-
-
-
- view
-
-
- 16
- Provisions et impôts différés
-
-
-
- view
-
-
- 17
- Dettes à plus d'un an
-
-
-
- view
-
-
- 20
- Frais d'établissement
-
-
-
- view
-
-
- 21
- Immobilisations incorporelles
-
-
-
- view
-
-
- 22
- Terrains et constructions
-
-
-
- view
-
-
- 23
- Installations, machines et outillages
-
-
-
- view
-
-
- 24
- Mobilier et matériel roulant
-
-
-
- view
-
-
- 25
- Immobilisation détenues en loc.-fin.
-
-
-
- view
-
-
- 27
- Immobilis. corp. en cours & acptes versé
-
-
-
- view
-
-
- 28
- Immobilisations financières
-
-
-
- view
-
-
- 30
- Approvisionnements - matières premières
-
-
-
- view
-
-
- 31
- Approvisionnements et fournitures
-
-
-
- view
-
-
- 32
- En cours de fabrication
-
-
-
- view
-
-
- 33
- Produits finis
-
-
-
- view
-
-
- 34
- Marchandises
-
-
-
- view
-
-
- 36
- Acomptes versés sur achats pour stocks
-
-
-
- view
-
-
- 40
- Créances commerciales
-
-
-
- view
-
-
- 41
- Autres créances à - d'un an
-
-
-
- view
-
-
- 42
- Dettes à + d'1 an échéant dans l'année
-
-
-
- view
-
-
- 43
- Dettes financières
-
-
-
- view
-
-
- 44
- Dettes commerciales
-
-
-
- view
-
-
- 45
- Dettes fiscales, salariales et sociales
-
-
-
- view
-
-
- 47
- Dettes suite à l'affect. des résultats
-
-
-
- view
-
-
- 48
- Dettes diverses
-
-
-
- view
-
-
- 49
- Comptes de régularisation et cptes d'att
-
-
-
- view
-
-
- 51
- Actions et parts
-
-
-
- view
-
-
- 52
- Titres à revenu fixe
-
-
-
- view
-
-
- 53
- Dépôts à terme
-
-
-
- view
-
-
- 55
- Etablissements de crédit
-
-
-
- view
-
-
- 56
- Ccp
-
-
-
- view
-
-
- 57
- Caisses
-
-
-
- view
-
-
- 60
- Approvisionnements et marchandises
-
-
-
- view
-
-
- 61
- Services et biens divers
-
-
-
- view
-
-
- 62
- Rémunérations, charges soc. et pensions
-
-
-
- view
-
-
- 64
- Autres charges d'exploitation
-
-
-
- view
-
-
- 65
- Charges financières
-
-
-
- view
-
-
- 66
- Charges exceptionnelles
-
-
-
- view
-
-
- 67
- Impôts sur le résultat
-
-
-
- view
-
-
- 70
- Chiffre d'affaires
-
-
-
- view
-
-
- 71
- Variation des stocks & comm. en cours
-
-
-
- view
-
-
- 74
- Autres produits d'exploitation
-
-
-
- view
-
-
- 75
- Produits financiers
-
-
-
- view
-
-
- 77
- Régul. d'impôts & reprises prov. fisc.
-
-
-
- view
-
-
- 140
- Bénéfice reporté
-
-
-
- view
-
-
- 175
- Dettes commerciales
-
-
-
- view
-
-
- 200
- Frais de constitution et d'augm. capital
-
-
-
- view
-
-
- 201
- Frais d'augmentation de capital
-
-
-
- view
-
-
- 202
- Fr.d'emission d'empr,prime remboursement
-
-
-
- view
-
-
- 203
- Autres frais d'établissement
-
-
-
- view
-
-
- 204
- Frais de restructuration
-
-
-
- view
-
-
- 210
- Frais de recherche et de développement
-
-
-
- view
-
-
- 211
- Concessions, brevets et licences
-
-
-
- view
-
-
- 212
- Fonds de commerce
-
-
-
- view
-
-
- 220
- Terrains
-
-
-
- view
-
-
- 221
- Constructions
-
-
-
- view
-
-
- 222
- Terrains bâtis
-
-
-
- view
-
-
- 223
- Autres droits réels sur des immeubles
-
-
-
- view
-
-
- 230
- Installations
-
-
-
- view
-
-
- 231
- Machines
-
-
-
- view
-
-
- 240
- Installation gen, agencements,..
-
-
-
- view
-
-
- 241
- Mobilier
-
-
-
- view
-
-
- 242
- Matériel roulant
-
-
-
- view
-
-
- 280
- Participation dans des entreprises liées
-
-
-
- view
-
-
- 281
- Créances sur des entreprises liées
-
-
-
- view
-
-
- 282
- Participations entr. avec lien particip.
-
-
-
- view
-
-
- 283
- Créances / entrepr. avec lien particip.
-
-
-
- view
-
-
- 290
- Créances commerciales
-
-
-
- view
-
-
- 291
- Autres créances
-
-
-
- view
-
-
- 411
- T.v.a en amont
-
-
-
- view
-
-
- 425
- Dettes commerciales échéant ds l'année
-
-
-
- view
-
-
- 451
- T.v.a. en aval
-
-
-
- view
-
-
- 452
- Impôts et taxes à payer
-
-
-
- view
-
-
- 512
- Actions & parts - options acquises
-
-
-
- view
-
-
- 550
- Comptes courants bancaires
-
-
-
- view
-
-
- 609
- Variation des stocks
-
-
-
- view
-
-
- 610
- Loyers et charges locatives
-
-
-
- view
-
-
- 612
- Fournitures faites à l'entreprise
-
-
-
- view
-
-
- 613
- Rétributions de tiers
-
-
-
- view
-
-
- 615
- publicités
-
-
-
- view
-
-
- 620
- Rémunérations et avantages soc. directs
-
-
-
- view
-
-
- 621
- Charges sociales
-
-
-
- view
-
-
- 624
- Pensions
-
-
-
-
-
- 630
- Dotations aux corrections de val./immob.
-
-
-
- view
-
-
- 631
- Dotations aux correct. de val./stocks
-
-
-
- view
-
-
- 632
- Dot. cor. val s/en-cours,pr fini
-
-
-
- view
-
-
- 633
- Dotations correct. val./cr. comm. +1an
-
-
-
- view
-
-
- 634
- Dotations correct. val./cr. comm. -1an
-
-
-
- view
-
-
- 635
- Provisions pour pensions et oblig. sim.
-
-
-
- view
-
-
- 636
- Provisions pour grosses réparations
-
-
-
- view
-
-
- 637
- Provisions pour autres risques & charges
-
-
-
- view
-
-
- 640
- Taxes et impôts directs
-
-
-
- view
-
-
- 651
- Réductions de valeur / actifs circulants
-
-
-
- view
-
-
- 660
- Dotations aux corrections de val. except
-
-
-
- view
-
-
- 661
- Dotations aux corrections de val./financ
-
-
-
- view
-
-
- 662
- Provisions pour risques & charges except
-
-
-
- view
-
-
- 750
- Produits des immob. financières
-
-
-
- view
-
-
- 751
- Produits des actifs circulants
-
-
-
- view
-
-
- 1750
- Fournisseurs - dettes en compte
-
-
-
- view
-
-
- 1751
- Effets à payer
-
-
-
- view
-
-
- 6120
- Eau, gaz, électricité, carburants
-
-
-
- view
-
-
- 6123
- Téléphone, télégrammes, frais post.
-
-
-
- view
-
-
- 100000
- Capital souscrit
-
-
-
- other
-
-
- 101000
- Capital non appelé (-)
-
-
-
- other
-
-
- 109000
- Compte de l'exploitant
-
-
-
- other
-
-
- 110000
- Primes d'émission
-
-
-
- other
-
-
- 120000
- Plus-values de rééval. sur immob. incorp
-
-
-
- other
-
-
- 121000
- Plus-values de rééval. sur immob. corp.
-
-
-
- other
-
-
- 122000
- Plus-values de rééval. sur immob. fin.
-
-
-
- other
-
-
- 123000
- Plus-values de réévaluation sur stocks
-
-
-
- other
-
-
- 124000
- Reprises de réd. de val./plac. de très.
-
-
-
- other
-
-
- 130000
- Réserve légale
-
-
-
- other
-
-
- 131000
- Réserves indisponibles
-
-
-
- other
-
-
- 132000
- Réserves immunisées
-
-
-
- other
-
-
- 133000
- Réserves disponibles
-
-
-
- other
-
-
- 134000
- Autres reserves
-
-
-
- other
-
-
- 140000
- Résultats reportés
-
-
-
- other
-
-
- 140100
- Bénéfice de l'exercice
-
-
-
- other
-
-
- 140200
- Perte de l'exercice
-
-
-
- other
-
-
- 141000
- Perte reportée
-
-
-
- other
-
-
- 150000
- Subsides en cap. - montants obtenus
-
-
-
- other
-
-
- 151000
- Subsides-montants transf. aux résultats
-
-
-
- other
-
-
- 160000
- Provisions pour pensions
-
-
-
- other
-
-
- 161000
- Provisions pour charges fiscales
-
-
-
- other
-
-
- 162000
- Provisions pr grosses rép. & gros entr.
-
-
-
- other
-
-
- 163000
- Provisions pour rente viagère
-
-
-
- other
-
-
- 164000
- Provisions pr sûretés pers. et réelles
-
-
-
- other
-
-
- 165000
- Provisions diverses
-
-
-
- other
-
-
- 165400
- Provisions pour autres risques & charges
-
-
-
- other
-
-
- 166000
- Provisions pour charges de commandes
-
-
-
- other
-
-
- 168000
- Impôts différés
-
-
-
- other
-
-
- 169000
- Autres provisions
-
-
-
- other
-
-
- 170000
- Emprunts convertibles
-
-
-
- other
-
-
- 171000
- Emprunts obligataires non convertibles
-
-
-
- other
-
-
- 172000
- Dettes de loc. - financ. et assimilées
-
-
-
- other
-
-
- 173000
- Etablissements de crédit
-
-
-
- other
-
-
- 174000
- Autres emprunts
-
-
-
- other
-
-
- 175000
- Fournisseurs - entreprises apparentées
-
-
-
- other
-
-
- 175010
- Dettes en cpte - fourniss. ordinaires
-
-
-
- other
-
-
- 175100
- Effets à payer - entreprises apparentées
-
-
-
- other
-
-
- 175110
- Effets à payer - fournisseurs ordinaires
-
-
-
- other
-
-
- 176000
- Acomptes reçus sur commandes
-
-
-
- other
-
-
- 177100
- Entreprises liées
-
-
-
- other
-
-
- 177200
- Lien de participation
-
-
-
- other
-
-
- 178000
- Cautionnements reçus en numéraire
-
-
-
- other
-
-
- 179000
- Dettes diverses
-
-
-
- other
-
-
- 180000
- Comptes de liaison établiss. & succurs.
-
-
-
- other
-
-
- 200000
- Frais de constitution
-
-
-
- other
-
-
- 200900
- Amort s/fr de constitution
-
-
-
- other
-
-
- 201000
- Frais d'augmentation de capital
-
-
-
- other
-
-
- 201900
- Amort s/fr d'augmentation du capital
-
-
-
- other
-
-
- 202000
- Fr.d'emission d'empr,prime remboursement
-
-
-
- other
-
-
- 202900
- Amort s/fr d'émission d'emprunts
-
-
-
- other
-
-
- 203000
- Autres frais d'établissement
-
-
-
- other
-
-
- 203900
- Amort s/autres fr d'établissement
-
-
-
- other
-
-
- 204000
- Frais de restructuration
-
-
-
- other
-
-
- 204900
- Amort s/fr de restructuration
-
-
-
- other
-
-
- 210000
- Frais de recherche et développement
-
-
-
- other
-
-
- 210900
- Amort. s/fr de recherche et développemen
-
-
-
- other
-
-
- 211100
- Concessions, brevet à titre onéreux
-
-
-
- other
-
-
- 211190
- Amort. s/concession, brevet acquis
-
-
-
- other
-
-
- 211200
- Conc., brevets créés par l'entr. même
-
-
-
- other
-
-
- 211290
- Amort. s/concession, brevets créés
-
-
-
- other
-
-
- 212000
- Fonds de commerce
-
-
-
- other
-
-
- 212900
- Amort s/fonds de commerce
-
-
-
- other
-
-
- 213000
- Acomptes versés s/immob. incorp
-
-
-
- other
-
-
- 214000
- Surprix afférent à l'acquisit. d'1 part.
-
-
-
- other
-
-
- 220000
- Terrains
-
-
-
- other
-
-
- 220800
- Plus-values actées sur terrains
-
-
-
- other
-
-
- 220900
- Réduction de valeur sur terrains
-
-
-
- other
-
-
- 221800
- Plus-values actées sur constructions
-
-
-
- other
-
-
- 221900
- Amort. sur constructions
-
-
-
- other
-
-
- 222800
- Plus-values actées s/terrains bâtis
-
-
-
- other
-
-
- 222900
- Amort. sur terrains bâtis
-
-
-
- other
-
-
- 223800
- +values actées s/autres droits
-
-
-
- other
-
-
- 223900
- Amort s/autres droits réels
-
-
-
- other
-
-
- 230000
- Installations techniques
-
-
-
- other
-
-
- 230900
- Amort s/installations techniques
-
-
-
- other
-
-
- 231000
- Machines
-
-
-
- other
-
-
- 231900
- Amortissement s/machines
-
-
-
- other
-
-
- 232000
- Outillage
-
-
-
- other
-
-
- 233000
- Pièces de rechange
-
-
-
- other
-
-
- 238000
- Plus-values actées sur i./m./o.
-
-
-
- other
-
-
- 239000
- Amortissements sur i./m./o.
-
-
-
- other
-
-
- 240000
- Installation gen, agencements,..
-
-
-
- other
-
-
- 240900
- Amort s/autres installations,outillage
-
-
-
- other
-
-
- 241000
- Mobilier
-
-
-
- other
-
-
- 241900
- Amort. sur mobilier
-
-
-
- other
-
-
- 242000
- Matériel roulant
-
-
-
- other
-
-
- 242900
- Amort. s/matériel roulant
-
-
-
- other
-
-
- 243000
- Matériel de bureau
-
-
-
- other
-
-
- 243900
- Amort. s/matériel de bureau
-
-
-
- other
-
-
- 250000
- Terrains et constructions en loc.-fin.
-
-
-
- other
-
-
- 251000
- Install., machines & out. en loc.-fin.
-
-
-
- other
-
-
- 252000
- Mobilier et mat. roulant en loc.-fin.
-
-
-
- other
-
-
- 260000
- Autres immobilisations corporelles
-
-
-
- other
-
-
- 270000
- Immobilisations en cours
-
-
-
- other
-
-
- 271000
- Avances & acptes versés / immob.en cours
-
-
-
- other
-
-
- 280000
- Parts dans des entreprises liées
-
-
-
- other
-
-
- 280100
- Montants non appelés
-
-
-
- other
-
-
- 280800
- +values actées s/parts entreprises liées
-
-
-
- other
-
-
- 280900
- Réduction de valeur s/parts
-
-
-
- other
-
-
- 281000
- Créances s/des entreprises liées
-
-
-
- other
-
-
- 281100
- Effets à recevoir
-
-
-
- other
-
-
- 281700
- Créances douteuses (entreprises liées)
-
-
-
- other
-
-
- 281900
- Réduction de valeur s/cré. entre. liées
-
-
-
- other
-
-
- 282000
- Participations
-
-
-
- other
-
-
- 282100
- Montants non appelés
-
-
-
- other
-
-
- 282800
- +values actées s/participations
-
-
-
- other
-
-
- 282900
- Réduction de valeur s/participations
-
-
-
- other
-
-
- 283000
- Créances s/entrepr. lien de particip.
-
-
-
- other
-
-
- 283100
- Effets à recevoir
-
-
-
- other
-
-
- 283200
- Titres à revenu fixe
-
-
-
- other
-
-
- 283700
- Créances douteuses (s/participations)
-
-
-
- other
-
-
- 283900
- Réductions de valeur s/cr particip.
-
-
-
- other
-
-
- 284000
- Titres à caractère d'immobilisation
-
-
-
- other
-
-
- 285000
- Autres prêts
-
-
-
- other
-
-
- 286000
- Actions ou parts propres
-
-
-
- other
-
-
- 288000
- Cautionnements versés en numéraire
-
-
-
- other
-
-
- 290000
- Créances commerciales
-
-
-
- other
-
-
- 290100
- Effets à recevoir
-
-
-
- other
-
-
- 290600
- Acomptes versés
-
-
-
- other
-
-
- 290700
- Créances douteuses s/cr commerciales
-
-
-
- other
-
-
- 290900
- Réduction de valeur s/cr commerciales
-
-
-
- other
-
-
- 291000
- Autres créances
-
-
-
- other
-
-
- 291100
- Effets à recevoir
-
-
-
- other
-
-
- 291700
- Créances douteuses s/autres créances
-
-
-
- other
-
-
- 291900
- Réduction de valeur s/autres créances
-
-
-
- other
-
-
- 300000
- Stocks matières premières val. d'acquis.
-
-
-
- other
-
-
- 309000
- Réduction de valeur s/mat. premières
-
-
-
- other
-
-
- 310000
- Matières consommables
-
-
-
- other
-
-
- 310600
- Emballages commerciaux
-
-
-
- other
-
-
- 319000
- Réd. de val. - stocks fournitures (-)
-
-
-
- other
-
-
- 320000
- En cours de fabrication - val. d'acquis.
-
-
-
- other
-
-
- 329000
- Réductions de valeur / en cours (-)
-
-
-
- other
-
-
- 330000
- Valeur d'acquisition des produits finis
-
-
-
- other
-
-
- 339000
- Réduction de val. / produits finis (-)
-
-
-
- other
-
-
- 340000
- Stocks marchandises - valeur d'acquis.
-
-
-
- other
-
-
- 349000
- Réd. de val. / stocks marchandises (-)
-
-
-
- other
-
-
- 360000
- Acomptes versés / achats pour stocks
-
-
-
- other
-
-
- 369000
- Réd. de val. / acptes versés stocks (-)
-
-
-
- other
-
-
- 400000
- Clients
-
-
-
- other
-
-
- 401000
- Effets à recevoir - clients
-
- True
+
+ 1
+ Fonds propres, prov. & dettes + d'1an
+
-
- receivable
-
-
-
- 403000
- Créances s/entreprises apparentées
-
-
-
- receivable
-
-
- 404000
- Produits à recevoir (factures à établir)
-
-
-
- other
-
-
- 406000
- Acomptes versés aux fournisseurs
-
-
-
- payable
-
-
- 407000
- Créances commerciales douteuses
-
-
-
- other
-
-
- 408000
- Ecarts de conversion de devises/créances
-
-
-
- other
-
-
- 409000
- Réductions de valeur / créances comm.
-
-
-
- other
-
-
- 410000
- Capital appelé, non versé
-
-
-
- other
-
-
- 411000
- T.v.a en amont
-
- True
-
- other
-
-
- 411100
- T.v.a soumise à l'origine amont
-
-
-
- other
-
-
- 411500
- Compte courant tva
-
-
-
- other
-
-
- 412000
- Impots et vers. fiscaux à récupérer
-
-
-
- other
-
-
- 413100
- Autres créances sur entrepr. liées
-
-
-
- other
-
-
- 413200
- Autres créances / entrepr. apparentées
-
-
-
- other
-
-
- 414000
- Produits à recevoir (non commerciaux)
-
-
-
- other
-
-
- 416000
- Créances diverses
-
-
-
- other
-
-
- 417000
- Créances douteuses
-
-
-
- other
-
-
- 418000
- Cautionnements versés en numéraire
-
-
-
- other
-
-
- 419000
- Réductions de val. / autres créances (-)
-
-
-
- other
-
-
- 420000
- Emprunts obligataires convert.
-
-
-
- other
-
-
- 421000
- Emprunts oblig. non convertibles
-
-
-
- other
-
-
- 422000
- Dettes de location-financ. et assimilées
-
-
-
- other
-
-
- 423000
- Etablissements de crédit
-
-
-
- other
-
-
- 424000
- Autres emprunts
-
-
-
- other
-
-
- 425000
- Fournisseurs
-
-
-
- other
-
-
- 425100
- Effets à payer
-
-
-
- other
-
-
- 426000
- Acomptes reçus / commandes éch. ds l'an
-
-
-
- other
-
-
- 427100
- Entreprises liées
-
-
-
- other
-
-
- 427200
- Lien de participation
-
-
-
- other
-
-
- 428000
- Cautionnements reçus en numéraire
-
-
-
- other
-
-
- 429000
- Dettes diverses échéant dans l'année
-
-
-
- other
-
-
- 430000
- Banques-emprunts en compte à terme fixe
-
-
-
- other
-
-
- 431000
- Banques-promesses
-
-
-
- other
-
-
- 432000
- Banques-crédit d'acceptation
-
-
-
- other
-
-
- 433000
- Banques-dettes en compte courant
-
-
-
- other
-
-
- 438000
- Autres emprunts
-
-
-
- other
-
-
- 440000
- Fournisseurs
-
-
-
- other
-
-
- 441000
- Effets à payer
-
- True
+
+ view
+
+
+ 2
+ Immobilis., dettes & créances à + d'1 an
+
-
- other
-
-
- 442000
- Factures à recevoir
-
- True
+
+ view
+
+
+ 3
+ Stocks et commandes en cours d'exécution
+
-
- other
-
-
- 443100
- Entreprises liées
-
-
-
- other
-
-
- 443200
- Lien de participation
-
-
-
- other
-
-
- 450000
- Dettes fiscales estimées
-
-
-
- other
-
-
- 451000
- T.v.a en aval
-
- True
+
+ view
+
+
+ 4
+ Créances et dettes à un an au plus
+
-
- other
-
-
- 451100
- T.v.a soumise à l'origine aval
-
- True
+
+ view
+
+
+ 5
+ Placements de trésorerie et disponible
+
-
- other
-
-
- 451200
- T.v.a intracom
-
- True
+
+ view
+
+
+ 6
+ Charges
+
-
- other
-
-
- 451500
- Compte courant tva
-
-
-
- other
-
-
- 452000
- Impôts et taxes à payer à l'état
-
-
-
- other
-
-
- 452100
- Impôts et taxes à payer aux adm commun
-
-
-
- other
-
-
- 453000
- Retenues s/salaires
-
-
-
- other
-
-
- 454000
- Cass (centre..de sécurite soc)
-
-
-
- other
-
-
- 455000
- Personnel-rémuneration à payer
-
-
-
- other
-
-
- 456000
- Personnel-avances et acomptes
-
-
-
- other
-
-
- 458000
- Autres dettes sociales
-
-
-
- other
-
-
- 460000
- Acomptes reçus sur commandes
-
-
-
- other
-
-
- 470000
- Dividendes-tantièmes d'ex. ant. à payer
-
-
-
- other
-
-
- 471000
- Dividendes de l'exercice à payer
-
-
-
- other
-
-
- 472000
- Tantièmes de l'exercice à payer
-
-
-
- other
-
-
- 473000
- Autres allocataires à payer
-
-
-
- other
-
-
- 480000
- Obligations et coupons échus (dettes)
-
-
-
- other
-
-
- 487000
- Cautionnements reçus en numeraire
-
-
-
- other
-
-
- 488000
- Autres dettes diverses
-
-
-
- other
-
-
- 490000
- Charges à reporter (payées d'avance)
-
-
-
- other
-
-
- 491000
- Produits acquis
-
-
-
- other
-
-
- 492000
- Charges à imputer
-
-
-
- other
-
-
- 493000
- Produits à reporter
-
-
-
- other
-
-
- 499000
- Comptes d'attente
-
-
-
- other
-
-
- 499800
- Solde équilibre en devises (hors pc)
-
-
-
- other
-
-
- 500000
- Actions propres
-
-
-
- other
-
-
- 510000
- Actions et parts
-
-
-
- other
-
-
- 510100
- Montant non appelé s/action.part
-
-
-
- other
-
-
- 510900
- Réduction valeur s/action et parts
-
-
-
- other
-
-
- 512000
- Parts dans entreprises liées
-
-
-
- other
-
-
- 512100
- Montant non appelé s/parts
-
-
-
- other
-
-
- 512900
- Réduction valeur s/part ent. liées
-
-
-
- other
-
-
- 520000
- Titres à rev. fixes - valeur d'acquis.
-
-
-
- other
-
-
- 529000
- Titres à rev. fixes - réd. de val.
-
-
-
- other
-
-
- 530000
- Dépôts à terme
-
-
-
- other
-
-
- 539000
- Réductions de valeur / dépôts à terme
-
-
-
- other
-
-
- 540000
- Valeurs échues à l'encaissement
-
-
-
- other
-
-
- 541000
- Coupons à encaisser
-
-
-
- other
-
-
- 550000
- Ets de crédit-compte à vue
-
-
-
- other
-
-
- 550100
- Chèques et virements émis
-
-
-
- other
-
-
- 550900
- Réduction valeur s/cpte a vue
-
-
-
- other
-
-
- 560000
- Ccp - compte courant
-
-
-
- other
-
-
- 561000
- Ccp - chèques émis
-
-
-
- other
-
-
- 570000
- Caisses
-
-
-
- other
-
-
- 570900
- Réduction valeur s/caisse
-
-
-
- other
-
-
- 580000
- Virements internes
-
- True
+
+ view
+
+
+ 7
+ Produits
+
-
- other
-
-
- 600000
- Achats de matières premières
-
-
-
- other
-
-
- 601000
- Achats de fournitures
-
-
-
- other
-
-
- 602000
- Achats de services, travaux et études
-
-
-
- other
-
-
- 603000
- Achats de sous-traitances générales
-
-
-
- other
-
-
- 604000
- Achats de marchandises
-
-
-
- other
-
-
- 607000
- Achats produits et demi-produits
-
-
-
- other
-
-
- 608000
- Remises, ristournes et rabais sur achats
-
-
-
- other
-
-
- 609000
- Variation de stock mat. premières
-
-
-
- other
-
-
- 609100
- Variation stock mat. consommables
-
-
-
- other
-
-
- 609400
- Variation stock marchandises
-
-
-
- other
-
-
- 610000
- Loyers et charges locatives
-
-
-
- other
-
-
- 610100
- Redevances de crédit bail
-
-
-
- other
-
-
- 611000
- Entretiens et réparations des locaux
-
-
-
- other
-
-
- 612000
- Consommation - eau
-
-
-
- other
-
-
- 612010
- Consommation - gaz
-
-
-
- other
-
-
- 612020
- Consommation - électricité
-
-
-
- other
-
-
- 612030
- Consommation - carburants
-
-
-
- other
-
-
- 612040
- Consommation - mazout
-
-
-
- other
-
-
- 612100
- Documentation
-
-
-
- other
-
-
- 612200
- Imprimés et fournitures de bureau
-
-
-
- other
-
-
- 612300
- Téléphone
-
-
-
- other
-
-
- 612310
- Frais postaux
-
-
-
- other
-
-
- 612320
- Fax
-
-
-
- other
-
-
- 613000
- Redevances et royalties
-
-
-
- other
-
-
- 613100
- Honoraires
-
-
-
- other
-
-
- 613200
- Organismes de services
-
-
-
- other
-
-
- 613300
- Commissions
-
-
-
- other
-
-
- 614000
- Assurance incendie
-
-
-
- other
-
-
- 615000
- Annonces, publicité
-
-
-
- other
-
-
- 615100
- Cotisations et abonnements
-
-
-
- other
-
-
- 615200
- Dons et libéralités
-
-
-
- other
-
-
- 615300
- Publications légales
-
-
-
- other
-
-
- 616000
- Sous-traitants
-
-
-
- other
-
-
- 616100
- Transports par tiers
-
-
-
- other
-
-
- 620000
- Rémunératons administrat. ou gérants
-
-
-
- other
-
-
- 620100
- Rémunérations personnel de direction
-
-
-
- other
-
-
- 620200
- Rémunérations employés
-
-
-
- other
-
-
- 620300
- Rémunérations ouvriers
-
-
-
- other
-
-
- 621000
- Chg.soc.lég.administ.et gérant
-
-
-
- other
-
-
- 621100
- Chg.soc.lég. personnel de direction
-
-
-
- other
-
-
- 621200
- Chg.soc.lég. employés
-
-
-
- other
-
-
- 621300
- Chg.soc.lég. ouvriers
-
-
-
- other
-
-
- 621400
- Assurance accidents
-
-
-
- other
-
-
- 622000
- Primes patr. pour ass. extra - légales
-
-
-
- other
-
-
- 623000
- Autres frais de personnel
-
-
-
- other
-
-
- 624000
- Pension administrat. ou gérant
-
-
-
- other
-
-
- 624100
- Pension personnel
-
-
-
- other
-
-
- 630000
- Dot. cor. val s/frais d'établissement
-
-
-
- other
-
-
- 630100
- Dot. cor. val s/immob. incorporels
-
-
-
- other
-
-
- 630200
- Dot. cor. val s/immob. corporels
-
-
-
- other
-
-
- 631000
- Dot. cor. val s/stock mat.fourni
-
-
-
- other
-
-
- 631100
- Reprises cor. val. s/stock mat. fourni
-
-
-
- other
-
-
- 632000
- Dot. cor. val s/en-cours,pr fini
-
-
-
- other
-
-
- 632100
- Reprises cor. val s/en-cours,pf
-
-
-
- other
-
-
- 633000
- Dot. cor. val s/cr comm +1an
-
-
-
- other
-
-
- 633100
- Reprises cor. val s/cr com +1an
-
-
-
- other
-
-
- 634000
- Dot. cor. val. s/cr comm -1an
-
-
-
- other
-
-
- 634100
- Reprises cor. val.s/cr com -1an
-
-
-
- other
-
-
- 635000
- Dot. prov. pension et oblig. sim.
-
-
-
- other
-
-
- 635100
- Reprises prov. s/pens.obli. sim.
-
-
-
- other
-
-
- 636000
- Dot. prov-grosses réparation
-
-
-
- other
-
-
- 636100
- Reprises prov. grosses réparation
-
-
-
- other
-
-
- 637000
- Dot. prov-autres risques et chg
-
-
-
- other
-
-
- 637100
- Reprises prov autres risq,chg
-
-
-
- other
-
-
- 640000
- Taxe d'abonnement
-
-
-
- other
-
-
- 640100
- Impôt foncier
-
-
-
- other
-
-
- 640200
- Impôt commercial s/le capital
-
-
-
- other
-
-
- 640300
- Impôt s/la fortune
-
-
-
- other
-
-
- 641000
- Moins-val. sur réalis. d'immob. corp.
-
-
-
- other
-
-
- 642000
- Moins-val. / réalis. de créances comm.
-
-
-
- other
-
-
- 643000
- Charges d'exploitation diverses
-
-
-
- other
-
-
- 650000
- Intérêts, commissions et frais / dettes
-
-
-
- other
-
-
- 651000
- Dot. cor. val s/actif circ
-
-
-
- other
-
-
- 651100
- Reprises cor. val s/actif circulants
-
-
-
- other
-
-
- 652000
- Moins-values sur réalis. d'actifs circ.
-
-
-
- other
-
-
- 653000
- Charges d'escompte de créances
-
-
-
- other
-
-
- 654000
- Différences de change
-
-
-
- other
-
-
- 655000
- Ecarts de conversion des devises
-
-
-
- other
-
-
- 656000
- Frais de banque
-
-
-
- other
-
-
- 660000
- Dot. cor. val exceptionnelles
-
-
-
- other
-
-
- 660100
- Reprises cor. val. excep
-
-
-
- other
-
-
- 661000
- Dot. cor. val s/immob. financières
-
-
-
- other
-
-
- 661100
- Reprises cor val s/immob. fin.
-
-
-
- other
-
-
- 662000
- Dot. prov-risques et chg except.
-
-
-
- other
-
-
- 662100
- Reprises prov risq,chg except.
-
-
-
- other
-
-
- 663000
- Moins-values sur réalis. d'actifs immob.
-
-
-
- other
-
-
- 665000
- Différences de change exceptionnelles
-
-
-
- other
-
-
- 668000
- Autres charges exceptionnelles
-
-
-
- other
-
-
- 670000
- Impôts luxemb sur le résultat de l'ex.
-
-
-
- other
-
-
- 671000
- Impôts luxemb /résultat d'ex. antérieurs
-
-
-
- other
-
-
- 672000
- Impôts étrangers sur le résultat de l'ex
-
-
-
- other
-
-
- 673000
- Impôts étrgs/résultat d'ex. antérieurs
-
-
-
- other
-
-
- 674000
- Impôts sur résultats exceptionnels
-
-
-
- other
-
-
- 680000
- Transfert aux réserves immunisées
-
-
-
- other
-
-
- 700000
- Ventes et prestations de services
-
-
-
- payable
-
-
- 708000
- R.r.r accordés sur ventes
-
-
-
- payable
-
-
- 712000
- Variation de stocks des encours de fabr.
-
-
-
- payable
-
-
- 713000
- Variation de stocks des produits finis
-
-
-
- payable
-
-
- 720000
- Travaux effect. par entreprise elle-même
-
-
-
- payable
-
-
- 740000
- Subsides d'exploitation
-
-
-
- payable
-
-
- 741000
- Plus-values sur réal. d'immob. corp.
-
-
-
- payable
-
-
- 742000
- Plus-values sur réalis. créances comm.
-
-
-
- payable
-
-
- 743000
- Récupération de frais de personnel
-
-
-
- payable
-
-
- 744000
- Commissions et courtages
-
-
-
- payable
-
-
- 745000
- Redevances pour brevets et licences
-
-
-
- payable
-
-
- 746000
- Loyers perçus
-
-
-
- payable
-
-
- 748000
- Produits d'exploitation divers.
-
-
-
- payable
-
-
- 750000
- Produits des participations
-
-
-
- payable
-
-
- 750100
- Autres produits des immob. financières
-
-
-
- payable
-
-
- 751000
- Produits des valeurs mobilières
-
-
-
- payable
-
-
- 751100
- Autres produits des actifs circulants
-
-
-
- payable
-
-
- 752000
- Plus-values sur réalis. d'actifs circula
-
-
-
- payable
-
-
- 753000
- Subsides en capital et en intérêts
-
-
-
- payable
-
-
- 754000
- Différences de change
-
-
-
- payable
-
-
- 754100
- Amendes pour retards de paiement
-
-
-
- payable
-
-
- 754200
- Intérêts retards de paiement
-
-
-
- payable
-
-
- 755000
- Ecarts de conversion de devises
-
-
-
- payable
-
-
- 756000
- Autres produits financiers
-
-
-
- payable
-
-
- 757000
- Escomptes obtenus
-
-
-
- payable
-
-
- 763000
- Plus-values sur réalis. d'actifs immob.
-
-
-
- payable
-
-
- 771000
- Régularis. d'impôts luxemb sur résultat
-
-
-
- payable
-
-
- 773000
- Régularis. d'impôts étrangers / résultat
-
-
-
- payable
-
+
+ view
+
+
+ 10
+ Capital
+
+
+
+ view
+
+
+ 12
+ Plus-values de réévaluation
+
+
+
+ view
+
+
+ 13
+ Réserves
+
+
+
+ view
+
+
+ 14
+ Résultat reporté
+
+
+
+ view
+
+
+ 15
+ Subsides en capital
+
+
+
+ view
+
+
+ 16
+ Provisions et impôts différés
+
+
+
+ view
+
+
+ 17
+ Dettes à plus d'un an
+
+
+
+ view
+
+
+ 20
+ Frais d'établissement
+
+
+
+ view
+
+
+ 21
+ Immobilisations incorporelles
+
+
+
+ view
+
+
+ 22
+ Terrains et constructions
+
+
+
+ view
+
+
+ 23
+ Installations, machines et outillages
+
+
+
+ view
+
+
+ 24
+ Mobilier et matériel roulant
+
+
+
+ view
+
+
+ 25
+ Immobilisation détenues en loc.-fin.
+
+
+
+ view
+
+
+ 27
+ Immobilis. corp. en cours & acptes versé
+
+
+
+ view
+
+
+ 28
+ Immobilisations financières
+
+
+
+ view
+
+
+ 30
+ Approvisionnements - matières premières
+
+
+
+ view
+
+
+ 31
+ Approvisionnements et fournitures
+
+
+
+ view
+
+
+ 32
+ En cours de fabrication
+
+
+
+ view
+
+
+ 33
+ Produits finis
+
+
+
+ view
+
+
+ 34
+ Marchandises
+
+
+
+ view
+
+
+ 36
+ Acomptes versés sur achats pour stocks
+
+
+
+ view
+
+
+ 40
+ Créances commerciales
+
+
+
+ view
+
+
+ 41
+ Autres créances à - d'un an
+
+
+
+ view
+
+
+ 42
+ Dettes à + d'1 an échéant dans l'année
+
+
+
+ view
+
+
+ 43
+ Dettes financières
+
+
+
+ view
+
+
+ 44
+ Dettes commerciales
+
+
+
+ view
+
+
+ 45
+ Dettes fiscales, salariales et sociales
+
+
+
+ view
+
+
+ 47
+ Dettes suite à l'affect. des résultats
+
+
+
+ view
+
+
+ 48
+ Dettes diverses
+
+
+
+ view
+
+
+ 49
+ Comptes de régularisation et cptes d'att
+
+
+
+ view
+
+
+ 51
+ Actions et parts
+
+
+
+ view
+
+
+ 52
+ Titres à revenu fixe
+
+
+
+ view
+
+
+ 53
+ Dépôts à terme
+
+
+
+ view
+
+
+ 55
+ Etablissements de crédit
+
+
+
+ view
+
+
+ 56
+ Ccp
+
+
+
+ view
+
+
+ 57
+ Caisses
+
+
+
+ view
+
+
+ 60
+ Approvisionnements et marchandises
+
+
+
+ view
+
+
+ 61
+ Services et biens divers
+
+
+
+ view
+
+
+ 62
+ Rémunérations, charges soc. et pensions
+
+
+
+ view
+
+
+ 64
+ Autres charges d'exploitation
+
+
+
+ view
+
+
+ 65
+ Charges financières
+
+
+
+ view
+
+
+ 66
+ Charges exceptionnelles
+
+
+
+ view
+
+
+ 67
+ Impôts sur le résultat
+
+
+
+ view
+
+
+ 70
+ Chiffre d'affaires
+
+
+
+ view
+
+
+ 71
+ Variation des stocks & comm. en cours
+
+
+
+ view
+
+
+ 74
+ Autres produits d'exploitation
+
+
+
+ view
+
+
+ 75
+ Produits financiers
+
+
+
+ view
+
+
+ 77
+ Régul. d'impôts & reprises prov. fisc.
+
+
+
+ view
+
+
+ 140
+ Bénéfice reporté
+
+
+
+ view
+
+
+ 175
+ Dettes commerciales
+
+
+
+ view
+
+
+ 200
+ Frais de constitution et d'augm. capital
+
+
+
+ view
+
+
+ 201
+ Frais d'augmentation de capital
+
+
+
+ view
+
+
+ 202
+ Fr.d'emission d'empr,prime remboursement
+
+
+
+ view
+
+
+ 203
+ Autres frais d'établissement
+
+
+
+ view
+
+
+ 204
+ Frais de restructuration
+
+
+
+ view
+
+
+ 210
+ Frais de recherche et de développement
+
+
+
+ view
+
+
+ 211
+ Concessions, brevets et licences
+
+
+
+ view
+
+
+ 212
+ Fonds de commerce
+
+
+
+ view
+
+
+ 220
+ Terrains
+
+
+
+ view
+
+
+ 221
+ Constructions
+
+
+
+ view
+
+
+ 222
+ Terrains bâtis
+
+
+
+ view
+
+
+ 223
+ Autres droits réels sur des immeubles
+
+
+
+ view
+
+
+ 230
+ Installations
+
+
+
+ view
+
+
+ 231
+ Machines
+
+
+
+ view
+
+
+ 240
+ Installation gen, agencements,..
+
+
+
+ view
+
+
+ 241
+ Mobilier
+
+
+
+ view
+
+
+ 242
+ Matériel roulant
+
+
+
+ view
+
+
+ 280
+ Participation dans des entreprises liées
+
+
+
+ view
+
+
+ 281
+ Créances sur des entreprises liées
+
+
+
+ view
+
+
+ 282
+ Participations entr. avec lien particip.
+
+
+
+ view
+
+
+ 283
+ Créances / entrepr. avec lien particip.
+
+
+
+ view
+
+
+ 290
+ Créances commerciales
+
+
+
+ view
+
+
+ 291
+ Autres créances
+
+
+
+ view
+
+
+ 411
+ T.v.a en amont
+
+
+
+ view
+
+
+ 425
+ Dettes commerciales échéant ds l'année
+
+
+
+ view
+
+
+ 451
+ T.v.a. en aval
+
+
+
+ view
+
+
+ 452
+ Impôts et taxes à payer
+
+
+
+ view
+
+
+ 512
+ Actions & parts - options acquises
+
+
+
+ view
+
+
+ 550
+ Comptes courants bancaires
+
+
+
+ view
+
+
+ 609
+ Variation des stocks
+
+
+
+ view
+
+
+ 610
+ Loyers et charges locatives
+
+
+
+ view
+
+
+ 612
+ Fournitures faites à l'entreprise
+
+
+
+ view
+
+
+ 613
+ Rétributions de tiers
+
+
+
+ view
+
+
+ 615
+ publicités
+
+
+
+ view
+
+
+ 620
+ Rémunérations et avantages soc. directs
+
+
+
+ view
+
+
+ 621
+ Charges sociales
+
+
+
+ view
+
+
+ 624
+ Pensions
+
+
+
+
+
+ 630
+ Dotations aux corrections de val./immob.
+
+
+
+ view
+
+
+ 631
+ Dotations aux correct. de val./stocks
+
+
+
+ view
+
+
+ 632
+ Dot. cor. val s/en-cours,pr fini
+
+
+
+ view
+
+
+ 633
+ Dotations correct. val./cr. comm. +1an
+
+
+
+ view
+
+
+ 634
+ Dotations correct. val./cr. comm. -1an
+
+
+
+ view
+
+
+ 635
+ Provisions pour pensions et oblig. sim.
+
+
+
+ view
+
+
+ 636
+ Provisions pour grosses réparations
+
+
+
+ view
+
+
+ 637
+ Provisions pour autres risques & charges
+
+
+
+ view
+
+
+ 640
+ Taxes et impôts directs
+
+
+
+ view
+
+
+ 651
+ Réductions de valeur / actifs circulants
+
+
+
+ view
+
+
+ 660
+ Dotations aux corrections de val. except
+
+
+
+ view
+
+
+ 661
+ Dotations aux corrections de val./financ
+
+
+
+ view
+
+
+ 662
+ Provisions pour risques & charges except
+
+
+
+ view
+
+
+ 750
+ Produits des immob. financières
+
+
+
+ view
+
+
+ 751
+ Produits des actifs circulants
+
+
+
+ view
+
+
+ 1750
+ Fournisseurs - dettes en compte
+
+
+
+ view
+
+
+ 1751
+ Effets à payer
+
+
+
+ view
+
+
+ 6120
+ Eau, gaz, électricité, carburants
+
+
+
+ view
+
+
+ 6123
+ Téléphone, télégrammes, frais post.
+
+
+
+ view
+
+
+ 100000
+ Capital souscrit
+
+
+
+ other
+
+
+ 101000
+ Capital non appelé (-)
+
+
+
+ other
+
+
+ 109000
+ Compte de l'exploitant
+
+
+
+ other
+
+
+ 110000
+ Primes d'émission
+
+
+
+ other
+
+
+ 120000
+ Plus-values de rééval. sur immob. incorp
+
+
+
+ other
+
+
+ 121000
+ Plus-values de rééval. sur immob. corp.
+
+
+
+ other
+
+
+ 122000
+ Plus-values de rééval. sur immob. fin.
+
+
+
+ other
+
+
+ 123000
+ Plus-values de réévaluation sur stocks
+
+
+
+ other
+
+
+ 124000
+ Reprises de réd. de val./plac. de très.
+
+
+
+ other
+
+
+ 130000
+ Réserve légale
+
+
+
+ other
+
+
+ 131000
+ Réserves indisponibles
+
+
+
+ other
+
+
+ 132000
+ Réserves immunisées
+
+
+
+ other
+
+
+ 133000
+ Réserves disponibles
+
+
+
+ other
+
+
+ 134000
+ Autres reserves
+
+
+
+ other
+
+
+ 140000
+ Résultats reportés
+
+
+
+ other
+
+
+ 140100
+ Bénéfice de l'exercice
+
+
+
+ other
+
+
+ 140200
+ Perte de l'exercice
+
+
+
+ other
+
+
+ 141000
+ Perte reportée
+
+
+
+ other
+
+
+ 150000
+ Subsides en cap. - montants obtenus
+
+
+
+ other
+
+
+ 151000
+ Subsides-montants transf. aux résultats
+
+
+
+ other
+
+
+ 160000
+ Provisions pour pensions
+
+
+
+ other
+
+
+ 161000
+ Provisions pour charges fiscales
+
+
+
+ other
+
+
+ 162000
+ Provisions pr grosses rép. & gros entr.
+
+
+
+ other
+
+
+ 163000
+ Provisions pour rente viagère
+
+
+
+ other
+
+
+ 164000
+ Provisions pr sûretés pers. et réelles
+
+
+
+ other
+
+
+ 165000
+ Provisions diverses
+
+
+
+ other
+
+
+ 165400
+ Provisions pour autres risques & charges
+
+
+
+ other
+
+
+ 166000
+ Provisions pour charges de commandes
+
+
+
+ other
+
+
+ 168000
+ Impôts différés
+
+
+
+ other
+
+
+ 169000
+ Autres provisions
+
+
+
+ other
+
+
+ 170000
+ Emprunts convertibles
+
+
+
+ other
+
+
+ 171000
+ Emprunts obligataires non convertibles
+
+
+
+ other
+
+
+ 172000
+ Dettes de loc. - financ. et assimilées
+
+
+
+ other
+
+
+ 173000
+ Etablissements de crédit
+
+
+
+ other
+
+
+ 174000
+ Autres emprunts
+
+
+
+ other
+
+
+ 175000
+ Fournisseurs - entreprises apparentées
+
+
+
+ other
+
+
+ 175010
+ Dettes en cpte - fourniss. ordinaires
+
+
+
+ other
+
+
+ 175100
+ Effets à payer - entreprises apparentées
+
+
+
+ other
+
+
+ 175110
+ Effets à payer - fournisseurs ordinaires
+
+
+
+ other
+
+
+ 176000
+ Acomptes reçus sur commandes
+
+
+
+ other
+
+
+ 177100
+ Entreprises liées
+
+
+
+ other
+
+
+ 177200
+ Lien de participation
+
+
+
+ other
+
+
+ 178000
+ Cautionnements reçus en numéraire
+
+
+
+ other
+
+
+ 179000
+ Dettes diverses
+
+
+
+ other
+
+
+ 180000
+ Comptes de liaison établiss. & succurs.
+
+
+
+ other
+
+
+ 200000
+ Frais de constitution
+
+
+
+ other
+
+
+ 200900
+ Amort s/fr de constitution
+
+
+
+ other
+
+
+ 201000
+ Frais d'augmentation de capital
+
+
+
+ other
+
+
+ 201900
+ Amort s/fr d'augmentation du capital
+
+
+
+ other
+
+
+ 202000
+ Fr.d'emission d'empr,prime remboursement
+
+
+
+ other
+
+
+ 202900
+ Amort s/fr d'émission d'emprunts
+
+
+
+ other
+
+
+ 203000
+ Autres frais d'établissement
+
+
+
+ other
+
+
+ 203900
+ Amort s/autres fr d'établissement
+
+
+
+ other
+
+
+ 204000
+ Frais de restructuration
+
+
+
+ other
+
+
+ 204900
+ Amort s/fr de restructuration
+
+
+
+ other
+
+
+ 210000
+ Frais de recherche et développement
+
+
+
+ other
+
+
+ 210900
+ Amort. s/fr de recherche et développemen
+
+
+
+ other
+
+
+ 211100
+ Concessions, brevet à titre onéreux
+
+
+
+ other
+
+
+ 211190
+ Amort. s/concession, brevet acquis
+
+
+
+ other
+
+
+ 211200
+ Conc., brevets créés par l'entr. même
+
+
+
+ other
+
+
+ 211290
+ Amort. s/concession, brevets créés
+
+
+
+ other
+
+
+ 212000
+ Fonds de commerce
+
+
+
+ other
+
+
+ 212900
+ Amort s/fonds de commerce
+
+
+
+ other
+
+
+ 213000
+ Acomptes versés s/immob. incorp
+
+
+
+ other
+
+
+ 214000
+ Surprix afférent à l'acquisit. d'1 part.
+
+
+
+ other
+
+
+ 220000
+ Terrains
+
+
+
+ other
+
+
+ 220800
+ Plus-values actées sur terrains
+
+
+
+ other
+
+
+ 220900
+ Réduction de valeur sur terrains
+
+
+
+ other
+
+
+ 221800
+ Plus-values actées sur constructions
+
+
+
+ other
+
+
+ 221900
+ Amort. sur constructions
+
+
+
+ other
+
+
+ 222800
+ Plus-values actées s/terrains bâtis
+
+
+
+ other
+
+
+ 222900
+ Amort. sur terrains bâtis
+
+
+
+ other
+
+
+ 223800
+ +values actées s/autres droits
+
+
+
+ other
+
+
+ 223900
+ Amort s/autres droits réels
+
+
+
+ other
+
+
+ 230000
+ Installations techniques
+
+
+
+ other
+
+
+ 230900
+ Amort s/installations techniques
+
+
+
+ other
+
+
+ 231000
+ Machines
+
+
+
+ other
+
+
+ 231900
+ Amortissement s/machines
+
+
+
+ other
+
+
+ 232000
+ Outillage
+
+
+
+ other
+
+
+ 233000
+ Pièces de rechange
+
+
+
+ other
+
+
+ 238000
+ Plus-values actées sur i./m./o.
+
+
+
+ other
+
+
+ 239000
+ Amortissements sur i./m./o.
+
+
+
+ other
+
+
+ 240000
+ Installation gen, agencements,..
+
+
+
+ other
+
+
+ 240900
+ Amort s/autres installations,outillage
+
+
+
+ other
+
+
+ 241000
+ Mobilier
+
+
+
+ other
+
+
+ 241900
+ Amort. sur mobilier
+
+
+
+ other
+
+
+ 242000
+ Matériel roulant
+
+
+
+ other
+
+
+ 242900
+ Amort. s/matériel roulant
+
+
+
+ other
+
+
+ 243000
+ Matériel de bureau
+
+
+
+ other
+
+
+ 243900
+ Amort. s/matériel de bureau
+
+
+
+ other
+
+
+ 250000
+ Terrains et constructions en loc.-fin.
+
+
+
+ other
+
+
+ 251000
+ Install., machines & out. en loc.-fin.
+
+
+
+ other
+
+
+ 252000
+ Mobilier et mat. roulant en loc.-fin.
+
+
+
+ other
+
+
+ 260000
+ Autres immobilisations corporelles
+
+
+
+ other
+
+
+ 270000
+ Immobilisations en cours
+
+
+
+ other
+
+
+ 271000
+ Avances & acptes versés / immob.en cours
+
+
+
+ other
+
+
+ 280000
+ Parts dans des entreprises liées
+
+
+
+ other
+
+
+ 280100
+ Montants non appelés
+
+
+
+ other
+
+
+ 280800
+ +values actées s/parts entreprises liées
+
+
+
+ other
+
+
+ 280900
+ Réduction de valeur s/parts
+
+
+
+ other
+
+
+ 281000
+ Créances s/des entreprises liées
+
+
+
+ other
+
+
+ 281100
+ Effets à recevoir
+
+
+
+ other
+
+
+ 281700
+ Créances douteuses (entreprises liées)
+
+
+
+ other
+
+
+ 281900
+ Réduction de valeur s/cré. entre. liées
+
+
+
+ other
+
+
+ 282000
+ Participations
+
+
+
+ other
+
+
+ 282100
+ Montants non appelés
+
+
+
+ other
+
+
+ 282800
+ +values actées s/participations
+
+
+
+ other
+
+
+ 282900
+ Réduction de valeur s/participations
+
+
+
+ other
+
+
+ 283000
+ Créances s/entrepr. lien de particip.
+
+
+
+ other
+
+
+ 283100
+ Effets à recevoir
+
+
+
+ other
+
+
+ 283200
+ Titres à revenu fixe
+
+
+
+ other
+
+
+ 283700
+ Créances douteuses (s/participations)
+
+
+
+ other
+
+
+ 283900
+ Réductions de valeur s/cr particip.
+
+
+
+ other
+
+
+ 284000
+ Titres à caractère d'immobilisation
+
+
+
+ other
+
+
+ 285000
+ Autres prêts
+
+
+
+ other
+
+
+ 286000
+ Actions ou parts propres
+
+
+
+ other
+
+
+ 288000
+ Cautionnements versés en numéraire
+
+
+
+ other
+
+
+ 290000
+ Créances commerciales
+
+
+
+ other
+
+
+ 290100
+ Effets à recevoir
+
+
+
+ other
+
+
+ 290600
+ Acomptes versés
+
+
+
+ other
+
+
+ 290700
+ Créances douteuses s/cr commerciales
+
+
+
+ other
+
+
+ 290900
+ Réduction de valeur s/cr commerciales
+
+
+
+ other
+
+
+ 291000
+ Autres créances
+
+
+
+ other
+
+
+ 291100
+ Effets à recevoir
+
+
+
+ other
+
+
+ 291700
+ Créances douteuses s/autres créances
+
+
+
+ other
+
+
+ 291900
+ Réduction de valeur s/autres créances
+
+
+
+ other
+
+
+ 300000
+ Stocks matières premières val. d'acquis.
+
+
+
+ other
+
+
+ 309000
+ Réduction de valeur s/mat. premières
+
+
+
+ other
+
+
+ 310000
+ Matières consommables
+
+
+
+ other
+
+
+ 310600
+ Emballages commerciaux
+
+
+
+ other
+
+
+ 319000
+ Réd. de val. - stocks fournitures (-)
+
+
+
+ other
+
+
+ 320000
+ En cours de fabrication - val. d'acquis.
+
+
+
+ other
+
+
+ 329000
+ Réductions de valeur / en cours (-)
+
+
+
+ other
+
+
+ 330000
+ Valeur d'acquisition des produits finis
+
+
+
+ other
+
+
+ 339000
+ Réduction de val. / produits finis (-)
+
+
+
+ other
+
+
+ 340000
+ Stocks marchandises - valeur d'acquis.
+
+
+
+ other
+
+
+ 349000
+ Réd. de val. / stocks marchandises (-)
+
+
+
+ other
+
+
+ 360000
+ Acomptes versés / achats pour stocks
+
+
+
+ other
+
+
+ 369000
+ Réd. de val. / acptes versés stocks (-)
+
+
+
+ other
+
+
+ 400000
+ Clients
+
+
+
+ other
+
+
+ 401000
+ Effets à recevoir - clients
+
+ True
+
+
+ receivable
+
+
+
+ 403000
+ Créances s/entreprises apparentées
+
+
+
+ receivable
+
+
+ 404000
+ Produits à recevoir (factures à établir)
+
+
+
+ other
+
+
+ 406000
+ Acomptes versés aux fournisseurs
+
+
+
+ payable
+
+
+ 407000
+ Créances commerciales douteuses
+
+
+
+ other
+
+
+ 408000
+ Ecarts de conversion de devises/créances
+
+
+
+ other
+
+
+ 409000
+ Réductions de valeur / créances comm.
+
+
+
+ other
+
+
+ 410000
+ Capital appelé, non versé
+
+
+
+ other
+
+
+ 411000
+ T.v.a en amont
+
+ True
+
+ other
+
+
+ 411100
+ T.v.a soumise à l'origine amont
+
+
+
+ other
+
+
+ 411500
+ Compte courant tva
+
+
+
+ other
+
+
+ 412000
+ Impots et vers. fiscaux à récupérer
+
+
+
+ other
+
+
+ 413100
+ Autres créances sur entrepr. liées
+
+
+
+ other
+
+
+ 413200
+ Autres créances / entrepr. apparentées
+
+
+
+ other
+
+
+ 414000
+ Produits à recevoir (non commerciaux)
+
+
+
+ other
+
+
+ 416000
+ Créances diverses
+
+
+
+ other
+
+
+ 417000
+ Créances douteuses
+
+
+
+ other
+
+
+ 418000
+ Cautionnements versés en numéraire
+
+
+
+ other
+
+
+ 419000
+ Réductions de val. / autres créances (-)
+
+
+
+ other
+
+
+ 420000
+ Emprunts obligataires convert.
+
+
+
+ other
+
+
+ 421000
+ Emprunts oblig. non convertibles
+
+
+
+ other
+
+
+ 422000
+ Dettes de location-financ. et assimilées
+
+
+
+ other
+
+
+ 423000
+ Etablissements de crédit
+
+
+
+ other
+
+
+ 424000
+ Autres emprunts
+
+
+
+ other
+
+
+ 425000
+ Fournisseurs
+
+
+
+ other
+
+
+ 425100
+ Effets à payer
+
+
+
+ other
+
+
+ 426000
+ Acomptes reçus / commandes éch. ds l'an
+
+
+
+ other
+
+
+ 427100
+ Entreprises liées
+
+
+
+ other
+
+
+ 427200
+ Lien de participation
+
+
+
+ other
+
+
+ 428000
+ Cautionnements reçus en numéraire
+
+
+
+ other
+
+
+ 429000
+ Dettes diverses échéant dans l'année
+
+
+
+ other
+
+
+ 430000
+ Banques-emprunts en compte à terme fixe
+
+
+
+ other
+
+
+ 431000
+ Banques-promesses
+
+
+
+ other
+
+
+ 432000
+ Banques-crédit d'acceptation
+
+
+
+ other
+
+
+ 433000
+ Banques-dettes en compte courant
+
+
+
+ other
+
+
+ 438000
+ Autres emprunts
+
+
+
+ other
+
+
+ 440000
+ Fournisseurs
+
+
+
+ other
+
+
+ 441000
+ Effets à payer
+
+ True
+
+
+ other
+
+
+ 442000
+ Factures à recevoir
+
+ True
+
+
+ other
+
+
+ 443100
+ Entreprises liées
+
+
+
+ other
+
+
+ 443200
+ Lien de participation
+
+
+
+ other
+
+
+ 450000
+ Dettes fiscales estimées
+
+
+
+ other
+
+
+ 451000
+ T.v.a en aval
+
+ True
+
+
+ other
+
+
+ 451100
+ T.v.a soumise à l'origine aval
+
+ True
+
+
+ other
+
+
+ 451200
+ T.v.a intracom
+
+ True
+
+
+ other
+
+
+ 451500
+ Compte courant tva
+
+
+
+ other
+
+
+ 452000
+ Impôts et taxes à payer à l'état
+
+
+
+ other
+
+
+ 452100
+ Impôts et taxes à payer aux adm commun
+
+
+
+ other
+
+
+ 453000
+ Retenues s/salaires
+
+
+
+ other
+
+
+ 454000
+ Cass (centre..de sécurite soc)
+
+
+
+ other
+
+
+ 455000
+ Personnel-rémuneration à payer
+
+
+
+ other
+
+
+ 456000
+ Personnel-avances et acomptes
+
+
+
+ other
+
+
+ 458000
+ Autres dettes sociales
+
+
+
+ other
+
+
+ 460000
+ Acomptes reçus sur commandes
+
+
+
+ other
+
+
+ 470000
+ Dividendes-tantièmes d'ex. ant. à payer
+
+
+
+ other
+
+
+ 471000
+ Dividendes de l'exercice à payer
+
+
+
+ other
+
+
+ 472000
+ Tantièmes de l'exercice à payer
+
+
+
+ other
+
+
+ 473000
+ Autres allocataires à payer
+
+
+
+ other
+
+
+ 480000
+ Obligations et coupons échus (dettes)
+
+
+
+ other
+
+
+ 487000
+ Cautionnements reçus en numeraire
+
+
+
+ other
+
+
+ 488000
+ Autres dettes diverses
+
+
+
+ other
+
+
+ 490000
+ Charges à reporter (payées d'avance)
+
+
+
+ other
+
+
+ 491000
+ Produits acquis
+
+
+
+ other
+
+
+ 492000
+ Charges à imputer
+
+
+
+ other
+
+
+ 493000
+ Produits à reporter
+
+
+
+ other
+
+
+ 499000
+ Comptes d'attente
+
+
+
+ other
+
+
+ 499800
+ Solde équilibre en devises (hors pc)
+
+
+
+ other
+
+
+ 500000
+ Actions propres
+
+
+
+ other
+
+
+ 510000
+ Actions et parts
+
+
+
+ other
+
+
+ 510100
+ Montant non appelé s/action.part
+
+
+
+ other
+
+
+ 510900
+ Réduction valeur s/action et parts
+
+
+
+ other
+
+
+ 512000
+ Parts dans entreprises liées
+
+
+
+ other
+
+
+ 512100
+ Montant non appelé s/parts
+
+
+
+ other
+
+
+ 512900
+ Réduction valeur s/part ent. liées
+
+
+
+ other
+
+
+ 520000
+ Titres à rev. fixes - valeur d'acquis.
+
+
+
+ other
+
+
+ 529000
+ Titres à rev. fixes - réd. de val.
+
+
+
+ other
+
+
+ 530000
+ Dépôts à terme
+
+
+
+ other
+
+
+ 539000
+ Réductions de valeur / dépôts à terme
+
+
+
+ other
+
+
+ 540000
+ Valeurs échues à l'encaissement
+
+
+
+ other
+
+
+ 541000
+ Coupons à encaisser
+
+
+
+ other
+
+
+ 550000
+ Ets de crédit-compte à vue
+
+
+
+ other
+
+
+ 550100
+ Chèques et virements émis
+
+
+
+ other
+
+
+ 550900
+ Réduction valeur s/cpte a vue
+
+
+
+ other
+
+
+ 560000
+ Ccp - compte courant
+
+
+
+ other
+
+
+ 561000
+ Ccp - chèques émis
+
+
+
+ other
+
+
+ 570000
+ Caisses
+
+
+
+ other
+
+
+ 570900
+ Réduction valeur s/caisse
+
+
+
+ other
+
+
+ 580000
+ Virements internes
+
+ True
+
+
+ other
+
+
+ 600000
+ Achats de matières premières
+
+
+
+ other
+
+
+ 601000
+ Achats de fournitures
+
+
+
+ other
+
+
+ 602000
+ Achats de services, travaux et études
+
+
+
+ other
+
+
+ 603000
+ Achats de sous-traitances générales
+
+
+
+ other
+
+
+ 604000
+ Achats de marchandises
+
+
+
+ other
+
+
+ 607000
+ Achats produits et demi-produits
+
+
+
+ other
+
+
+ 608000
+ Remises, ristournes et rabais sur achats
+
+
+
+ other
+
+
+ 609000
+ Variation de stock mat. premières
+
+
+
+ other
+
+
+ 609100
+ Variation stock mat. consommables
+
+
+
+ other
+
+
+ 609400
+ Variation stock marchandises
+
+
+
+ other
+
+
+ 610000
+ Loyers et charges locatives
+
+
+
+ other
+
+
+ 610100
+ Redevances de crédit bail
+
+
+
+ other
+
+
+ 611000
+ Entretiens et réparations des locaux
+
+
+
+ other
+
+
+ 612000
+ Consommation - eau
+
+
+
+ other
+
+
+ 612010
+ Consommation - gaz
+
+
+
+ other
+
+
+ 612020
+ Consommation - électricité
+
+
+
+ other
+
+
+ 612030
+ Consommation - carburants
+
+
+
+ other
+
+
+ 612040
+ Consommation - mazout
+
+
+
+ other
+
+
+ 612100
+ Documentation
+
+
+
+ other
+
+
+ 612200
+ Imprimés et fournitures de bureau
+
+
+
+ other
+
+
+ 612300
+ Téléphone
+
+
+
+ other
+
+
+ 612310
+ Frais postaux
+
+
+
+ other
+
+
+ 612320
+ Fax
+
+
+
+ other
+
+
+ 613000
+ Redevances et royalties
+
+
+
+ other
+
+
+ 613100
+ Honoraires
+
+
+
+ other
+
+
+ 613200
+ Organismes de services
+
+
+
+ other
+
+
+ 613300
+ Commissions
+
+
+
+ other
+
+
+ 614000
+ Assurance incendie
+
+
+
+ other
+
+
+ 615000
+ Annonces, publicité
+
+
+
+ other
+
+
+ 615100
+ Cotisations et abonnements
+
+
+
+ other
+
+
+ 615200
+ Dons et libéralités
+
+
+
+ other
+
+
+ 615300
+ Publications légales
+
+
+
+ other
+
+
+ 616000
+ Sous-traitants
+
+
+
+ other
+
+
+ 616100
+ Transports par tiers
+
+
+
+ other
+
+
+ 620000
+ Rémunératons administrat. ou gérants
+
+
+
+ other
+
+
+ 620100
+ Rémunérations personnel de direction
+
+
+
+ other
+
+
+ 620200
+ Rémunérations employés
+
+
+
+ other
+
+
+ 620300
+ Rémunérations ouvriers
+
+
+
+ other
+
+
+ 621000
+ Chg.soc.lég.administ.et gérant
+
+
+
+ other
+
+
+ 621100
+ Chg.soc.lég. personnel de direction
+
+
+
+ other
+
+
+ 621200
+ Chg.soc.lég. employés
+
+
+
+ other
+
+
+ 621300
+ Chg.soc.lég. ouvriers
+
+
+
+ other
+
+
+ 621400
+ Assurance accidents
+
+
+
+ other
+
+
+ 622000
+ Primes patr. pour ass. extra - légales
+
+
+
+ other
+
+
+ 623000
+ Autres frais de personnel
+
+
+
+ other
+
+
+ 624000
+ Pension administrat. ou gérant
+
+
+
+ other
+
+
+ 624100
+ Pension personnel
+
+
+
+ other
+
+
+ 630000
+ Dot. cor. val s/frais d'établissement
+
+
+
+ other
+
+
+ 630100
+ Dot. cor. val s/immob. incorporels
+
+
+
+ other
+
+
+ 630200
+ Dot. cor. val s/immob. corporels
+
+
+
+ other
+
+
+ 631000
+ Dot. cor. val s/stock mat.fourni
+
+
+
+ other
+
+
+ 631100
+ Reprises cor. val. s/stock mat. fourni
+
+
+
+ other
+
+
+ 632000
+ Dot. cor. val s/en-cours,pr fini
+
+
+
+ other
+
+
+ 632100
+ Reprises cor. val s/en-cours,pf
+
+
+
+ other
+
+
+ 633000
+ Dot. cor. val s/cr comm +1an
+
+
+
+ other
+
+
+ 633100
+ Reprises cor. val s/cr com +1an
+
+
+
+ other
+
+
+ 634000
+ Dot. cor. val. s/cr comm -1an
+
+
+
+ other
+
+
+ 634100
+ Reprises cor. val.s/cr com -1an
+
+
+
+ other
+
+
+ 635000
+ Dot. prov. pension et oblig. sim.
+
+
+
+ other
+
+
+ 635100
+ Reprises prov. s/pens.obli. sim.
+
+
+
+ other
+
+
+ 636000
+ Dot. prov-grosses réparation
+
+
+
+ other
+
+
+ 636100
+ Reprises prov. grosses réparation
+
+
+
+ other
+
+
+ 637000
+ Dot. prov-autres risques et chg
+
+
+
+ other
+
+
+ 637100
+ Reprises prov autres risq,chg
+
+
+
+ other
+
+
+ 640000
+ Taxe d'abonnement
+
+
+
+ other
+
+
+ 640100
+ Impôt foncier
+
+
+
+ other
+
+
+ 640200
+ Impôt commercial s/le capital
+
+
+
+ other
+
+
+ 640300
+ Impôt s/la fortune
+
+
+
+ other
+
+
+ 641000
+ Moins-val. sur réalis. d'immob. corp.
+
+
+
+ other
+
+
+ 642000
+ Moins-val. / réalis. de créances comm.
+
+
+
+ other
+
+
+ 643000
+ Charges d'exploitation diverses
+
+
+
+ other
+
+
+ 650000
+ Intérêts, commissions et frais / dettes
+
+
+
+ other
+
+
+ 651000
+ Dot. cor. val s/actif circ
+
+
+
+ other
+
+
+ 651100
+ Reprises cor. val s/actif circulants
+
+
+
+ other
+
+
+ 652000
+ Moins-values sur réalis. d'actifs circ.
+
+
+
+ other
+
+
+ 653000
+ Charges d'escompte de créances
+
+
+
+ other
+
+
+ 654000
+ Différences de change
+
+
+
+ other
+
+
+ 655000
+ Ecarts de conversion des devises
+
+
+
+ other
+
+
+ 656000
+ Frais de banque
+
+
+
+ other
+
+
+ 660000
+ Dot. cor. val exceptionnelles
+
+
+
+ other
+
+
+ 660100
+ Reprises cor. val. excep
+
+
+
+ other
+
+
+ 661000
+ Dot. cor. val s/immob. financières
+
+
+
+ other
+
+
+ 661100
+ Reprises cor val s/immob. fin.
+
+
+
+ other
+
+
+ 662000
+ Dot. prov-risques et chg except.
+
+
+
+ other
+
+
+ 662100
+ Reprises prov risq,chg except.
+
+
+
+ other
+
+
+ 663000
+ Moins-values sur réalis. d'actifs immob.
+
+
+
+ other
+
+
+ 665000
+ Différences de change exceptionnelles
+
+
+
+ other
+
+
+ 668000
+ Autres charges exceptionnelles
+
+
+
+ other
+
+
+ 670000
+ Impôts luxemb sur le résultat de l'ex.
+
+
+
+ other
+
+
+ 671000
+ Impôts luxemb /résultat d'ex. antérieurs
+
+
+
+ other
+
+
+ 672000
+ Impôts étrangers sur le résultat de l'ex
+
+
+
+ other
+
+
+ 673000
+ Impôts étrgs/résultat d'ex. antérieurs
+
+
+
+ other
+
+
+ 674000
+ Impôts sur résultats exceptionnels
+
+
+
+ other
+
+
+ 680000
+ Transfert aux réserves immunisées
+
+
+
+ other
+
+
+ 700000
+ Ventes et prestations de services
+
+
+
+ payable
+
+
+ 708000
+ R.r.r accordés sur ventes
+
+
+
+ payable
+
+
+ 712000
+ Variation de stocks des encours de fabr.
+
+
+
+ payable
+
+
+ 713000
+ Variation de stocks des produits finis
+
+
+
+ payable
+
+
+ 720000
+ Travaux effect. par entreprise elle-même
+
+
+
+ payable
+
+
+ 740000
+ Subsides d'exploitation
+
+
+
+ payable
+
+
+ 741000
+ Plus-values sur réal. d'immob. corp.
+
+
+
+ payable
+
+
+ 742000
+ Plus-values sur réalis. créances comm.
+
+
+
+ payable
+
+
+ 743000
+ Récupération de frais de personnel
+
+
+
+ payable
+
+
+ 744000
+ Commissions et courtages
+
+
+
+ payable
+
+
+ 745000
+ Redevances pour brevets et licences
+
+
+
+ payable
+
+
+ 746000
+ Loyers perçus
+
+
+
+ payable
+
+
+ 748000
+ Produits d'exploitation divers.
+
+
+
+ payable
+
+
+ 750000
+ Produits des participations
+
+
+
+ payable
+
+
+ 750100
+ Autres produits des immob. financières
+
+
+
+ payable
+
+
+ 751000
+ Produits des valeurs mobilières
+
+
+
+ payable
+
+
+ 751100
+ Autres produits des actifs circulants
+
+
+
+ payable
+
+
+ 752000
+ Plus-values sur réalis. d'actifs circula
+
+
+
+ payable
+
+
+ 753000
+ Subsides en capital et en intérêts
+
+
+
+ payable
+
+
+ 754000
+ Différences de change
+
+
+
+ payable
+
+
+ 754100
+ Amendes pour retards de paiement
+
+
+
+ payable
+
+
+ 754200
+ Intérêts retards de paiement
+
+
+
+ payable
+
+
+ 755000
+ Ecarts de conversion de devises
+
+
+
+ payable
+
+
+ 756000
+ Autres produits financiers
+
+
+
+ payable
+
+
+ 757000
+ Escomptes obtenus
+
+
+
+ payable
+
+
+ 763000
+ Plus-values sur réalis. d'actifs immob.
+
+
+
+ payable
+
+
+ 771000
+ Régularis. d'impôts luxemb sur résultat
+
+
+
+ payable
+
+
+ 773000
+ Régularis. d'impôts étrangers / résultat
+
+
+
+ payable
+
diff --git a/addons/l10n_lu/l10n_lu_report.xml b/addons/l10n_lu/l10n_lu_report.xml
deleted file mode 100644
index ba67c86b092..00000000000
--- a/addons/l10n_lu/l10n_lu_report.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
diff --git a/addons/l10n_lu/l10n_lu_wizard.xml b/addons/l10n_lu/l10n_lu_wizard.xml
index da34f6456ab..f0655f3dc99 100644
--- a/addons/l10n_lu/l10n_lu_wizard.xml
+++ b/addons/l10n_lu/l10n_lu_wizard.xml
@@ -2,28 +2,10 @@
-
+
onskip
-
-
-
-
-
-
-
diff --git a/addons/l10n_lu/wizard/__init__.py b/addons/l10n_lu/wizard/__init__.py
index 09b898f6497..140f04905ab 100644
--- a/addons/l10n_lu/wizard/__init__.py
+++ b/addons/l10n_lu/wizard/__init__.py
@@ -20,4 +20,5 @@
##############################################################################
import print_vat
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_lu/wizard/pdf_ext.py b/addons/l10n_lu/wizard/pdf_ext.py
index 26ff61e209c..3b58fab5b68 100644
--- a/addons/l10n_lu/wizard/pdf_ext.py
+++ b/addons/l10n_lu/wizard/pdf_ext.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 .
#
##############################################################################
@@ -64,7 +64,7 @@ def extract_keys(lines):
keys = []
for line in lines:
if line.startswith('/V'):
- pass #print 'value',line
+ pass
elif line.startswith('/T'):
key = line[7:-2]
key = ''.join(key.split('\x00'))
@@ -85,7 +85,6 @@ def write_fields(out, fields):
for key in fields:
value = fields[key]
write_field(out, key, value)
-# write_field(out, key+"a", value) # pour copie-carbone sur autres pages
out.write(TAIL)
def extract_keys_from_pdf(filename):
diff --git a/addons/l10n_lu/wizard/print_vat.py b/addons/l10n_lu/wizard/print_vat.py
index 4523e9aa89e..0e16c5ccf4c 100644
--- a/addons/l10n_lu/wizard/print_vat.py
+++ b/addons/l10n_lu/wizard/print_vat.py
@@ -4,61 +4,38 @@
#Ingenieur fondateur
#Tranquil IT Systems
-
-import wizard
-import time
-import datetime
+from osv import osv, fields
import pooler
-import sys
-from mx.DateTime import *
import tools
+from tools.translate import _
from report.render import render
from report.interface import report_int
-import os
-
-
-_tax_form = """
-
-
-
- """
-
-_tax_fields = {
- 'tax_code_id': {
- 'string': 'Company',
- 'type': 'many2one',
- 'relation': 'account.tax.code',
- 'required': True,
- 'domain': [('parent_id','=',False)]},
- 'period_id': {
- 'string':'Period',
- 'type': 'many2one',
- 'relation': 'account.period',
- 'required':True
- }
-}
class external_pdf(render):
+
def __init__(self, pdf):
render.__init__(self)
self.pdf = pdf
self.output_type='pdf'
+
def _render(self):
return self.pdf
class report_custom(report_int):
- def create(self, cr, uid, ids, datas, context={}):
+
+ def create(self, cr, uid, ids, datas, context=None):
pool = pooler.get_pool(cr.dbname)
-
taxobj = pool.get('account.tax.code')
+
+ if context is None:
+ context = {}
code_ids = taxobj.search(cr, uid, [('parent_id','child_of',[datas['form']['tax_code_id']])])
result = {}
for t in taxobj.browse(cr, uid, code_ids, {'period_id': datas['form']['period_id']}):
- if t.code:
+ if str(t.code):
result['case_'+str(t.code)] = '%.2f' % (t.sum_period or 0.0, )
-
user = pool.get('res.users').browse(cr, uid, uid, context)
# Not Clean, to be changed
@@ -68,26 +45,34 @@ class report_custom(report_int):
if partner.address:
result['info_address'] = partner.address[0].street
result['info_address2'] = (partner.address[0].zip or '') + ' ' + (partner.address[0].city or '')
-
- tools.pdf_utils.fill_pdf(tools.config['addons_path']+'/l10n_lu/wizard/2008_DECL_F_M10.pdf', '/tmp/output.pdf', result)
- self.obj = external_pdf(file('/tmp/output.pdf').read())
- self.obj.render()
- return (self.obj.pdf, 'pdf')
+ try:
+ tools.pdf_utils.fill_pdf(tools.config['addons_path']+'/l10n_lu/wizard/2008_DECL_F_M10.pdf', '/tmp/output.pdf', result)
+ self.obj = external_pdf(file('/tmp/output.pdf').read())
+ self.obj.render()
+ return (self.obj.pdf, 'pdf')
+ except Exception, e:
+ raise osv.except_osv(_('pdf not created !'), _('Please check if package pdftk is installed!'))
report_custom('report.l10n_lu.tax.report.print')
+class vat_declaration_report(osv.osv_memory):
+ _name = 'vat.declaration.report'
+ _description = 'VAT Declaration Report'
-class wizard_report(wizard.interface):
- states = {
- 'init': {
- 'actions': [],
- 'result': {'type':'form', 'arch':_tax_form, 'fields':_tax_fields, 'state':[('end','Cancel'),('pdf','Print Taxes Statement')]},
- },
- 'pdf': {
- 'actions': [],
- 'result': {'type':'print', 'report': 'l10n_lu.tax.report.print', 'state':'end'},
- },
+ _columns = {
+ 'tax_code_id': fields.many2one('account.tax.code', 'Company', readonly=False, required=True, domain=[('parent_id','=',False)]),
+ 'period_id' : fields.many2one('account.period', 'Period', required=True)
}
-wizard_report('l10n_lu.tax.report.wizard')
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+ def print_vat_declaration_report(self, cr, uid, ids, context=None):
+ active_ids = context.get('active_ids',[])
+ data = {}
+ data['form'] = {}
+ data['ids'] = active_ids
+ data['form']['tax_code_id'] = self.browse(cr, uid, ids)[0].tax_code_id.id
+ data['form']['period_id'] = self.browse(cr, uid, ids)[0].period_id.id
+ return { 'type': 'ir.actions.report.xml', 'report_name': 'l10n_lu.tax.report.print', 'datas': data}
+
+vat_declaration_report()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_lu/wizard/print_vat_view.xml b/addons/l10n_lu/wizard/print_vat_view.xml
new file mode 100644
index 00000000000..a8349de0bba
--- /dev/null
+++ b/addons/l10n_lu/wizard/print_vat_view.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ VAT Declaration Report
+ vat.declaration.report
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VAT Declaration Report
+ ir.actions.act_window
+ vat.declaration.report
+ form
+ form
+
+ new
+
+
+
+
+
+
+
diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py
index 04be5fba2d0..ab540ad10d3 100644
--- a/addons/lunch/__openerp__.py
+++ b/addons/lunch/__openerp__.py
@@ -47,12 +47,9 @@
'lunch_view.xml',
'lunch_report.xml',
'report/report_lunch_order_view.xml',
- #'process/lunch_process.xml'
],
- "demo_xml": ['lunch_demo.xml',
- ],
- "test": ['test/test_lunch.yml'
- ],
+ "demo_xml": ['lunch_demo.xml'],
+ "test": ['test/test_lunch.yml'],
"installable": True,
}
diff --git a/addons/lunch/lunch.py b/addons/lunch/lunch.py
index 8dfce4acaff..06034df1688 100644
--- a/addons/lunch/lunch.py
+++ b/addons/lunch/lunch.py
@@ -52,7 +52,7 @@ class lunch_product(osv.osv):
_defaults = {
'active': lambda *a : True,
- }
+ }
lunch_product()
@@ -82,7 +82,7 @@ class lunch_cashbox(osv.osv):
'manager': fields.many2one('res.users', 'Manager'),
'name': fields.char('Name', size=30, required=True, unique = True),
'sum_remain': fields.function(amount_available, method=True, string='Remained Total'),
- }
+ }
lunch_cashbox()
@@ -94,16 +94,16 @@ class lunch_cashmove(osv.osv):
_description = "Cash Move"
_columns = {
- 'name': fields.char('Name', size=128),
+ 'name': fields.char('Description', size=128),
'user_cashmove': fields.many2one('res.users', 'User Name', required=True),
'amount': fields.float('Amount', digits=(16, 2)),
'box': fields.many2one('lunch.cashbox', 'Box Name', size=30, required=True),
'active': fields.boolean('Active'),
'create_date': fields.datetime('Created date', readonly=True),
- }
+ }
_defaults = {
- 'active': lambda *a: True,
+ 'active': lambda *a: True,
}
lunch_cashmove()
@@ -141,6 +141,7 @@ class lunch_order(osv.osv):
'state': fields.selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ], \
'State', readonly=True, select=True),
'price': fields.function(_price_get, method=True, string="Price"),
+ 'category': fields.many2one('lunch.category','Category'),
}
_defaults = {
@@ -198,7 +199,8 @@ class lunch_order(osv.osv):
if not product:
return {'value': {'price': 0.0}}
price = self.pool.get('lunch.product').read(cr, uid, product, ['price'])['price']
- return {'value': {'price': price}}
+ categ_id = self.pool.get('lunch.product').browse(cr, uid, product).category_id.id
+ return {'value': {'price': price,'category':categ_id}}
lunch_order()
@@ -215,7 +217,7 @@ class report_lunch_amount(osv.osv):
'user_id': fields.many2one('res.users', 'User Name', readonly=True),
'amount': fields.float('Amount', readonly=True, digits=(16, 2)),
'box': fields.many2one('lunch.cashbox', 'Box Name', size=30, readonly=True),
- }
+ }
def init(self, cr):
diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml
index 5d0fe20c801..b0804cbb9b0 100644
--- a/addons/lunch/lunch_view.xml
+++ b/addons/lunch/lunch_view.xml
@@ -29,8 +29,9 @@
-
+
+
@@ -48,6 +49,7 @@
+
@@ -77,6 +79,7 @@
+
@@ -84,7 +87,9 @@
-
+
+
+
@@ -193,7 +198,8 @@
-
+
+
@@ -331,6 +337,27 @@
+
+
+
+ Lunch amount
+ report.lunch.amount
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -338,6 +365,7 @@
report.lunch.amount
form
tree,form
+
).
#
@@ -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 .
#
##############################################################################
@@ -36,8 +36,8 @@ class order(report_sxw.rml_parse):
super(order, self).__init__(cr, uid, name, context)
self.localcontext.update({
- 'time': time,
- 'sum_price': self.sum_price,
+ 'time': time,
+ 'sum_price': self.sum_price,
})
report_sxw.report_sxw('report.lunch.order', 'lunch.order',
diff --git a/addons/lunch/report/report_lunch_order.py b/addons/lunch/report/report_lunch_order.py
index 51fa3bf841b..1de0d10cec7 100644
--- a/addons/lunch/report/report_lunch_order.py
+++ b/addons/lunch/report/report_lunch_order.py
@@ -37,7 +37,7 @@ class report_lunch_order(osv.osv):
'user_id': fields.many2one('res.users', 'User Name'),
'box_name': fields.char('Name', size=30),
'price_total':fields.float('Total Price', readonly=True),
- }
+ }
_order = 'date desc'
def init(self, cr):
tools.drop_view_if_exists(cr, 'report_lunch_order')
diff --git a/addons/lunch/report/report_lunch_order_view.xml b/addons/lunch/report/report_lunch_order_view.xml
index 25377799204..d65b8b01c1e 100644
--- a/addons/lunch/report/report_lunch_order_view.xml
+++ b/addons/lunch/report/report_lunch_order_view.xml
@@ -42,7 +42,7 @@
-
+
@@ -62,8 +62,8 @@
{'search_default_month':1,'search_default_User':1}
-
+
+
\ No newline at end of file
diff --git a/addons/lunch/security/ir.model.access.csv b/addons/lunch/security/ir.model.access.csv
index 5d5ab895aa0..e27fba4530f 100644
--- a/addons/lunch/security/ir.model.access.csv
+++ b/addons/lunch/security/ir.model.access.csv
@@ -6,14 +6,16 @@
"access_lunch_order","lunch.order","model_lunch_order","base.group_user",1,1,1,1
"access_report_lunch_amount","report.lunch.amount","model_report_lunch_amount","base.group_user",1,1,1,1
"access_lunch_order_sale_salesman","lunch.order.sale","model_lunch_order","base.group_sale_salesman",1,1,1,1
-"access_lunch_order_user","lunch.order user","model_lunch_order","base.group_survey_user",1,1,1,1
-"access_lunch_order_manager","lunch.order manager","model_lunch_order","base.group_survey_manager",1,0,0,0
-"access_lunch_cashmove_user","lunch.cashmove user","model_lunch_cashmove","base.group_survey_user",1,1,1,1
-"access_lunch_cashmove_manager","lunch.cashmove manager","model_lunch_cashmove","base.group_survey_manager",1,0,0,0
-"access_report_lunch_amount_manager","report.lunch.amount manager","model_report_lunch_amount","base.group_survey_manager",1,1,1,1
+"access_lunch_order_user","lunch.order user","model_lunch_order","base.group_tool_user",1,1,1,1
+"access_lunch_order_manager","lunch.order manager","model_lunch_order","base.group_tool_manager",1,0,0,0
+"access_lunch_cashmove_user","lunch.cashmove user","model_lunch_cashmove","base.group_tool_user",1,1,1,1
+"access_lunch_cashmove_manager","lunch.cashmove manager","model_lunch_cashmove","base.group_tool_manager",1,0,0,0
+"access_report_lunch_amount_manager","report.lunch.amount manager","model_report_lunch_amount","base.group_tool_manager",1,1,1,1
"access_lunch_category_system","lunch.category system","model_lunch_category","base.group_system",1,1,1,1
"access_lunch_product_system","lunch.product system","model_lunch_product","base.group_system",1,1,1,1
"access_lunch_cashbox_system","lunch.cashbox system","model_lunch_cashbox","base.group_system",1,1,1,1
"access_lunch_order_system","lunch.order system","model_lunch_order","base.group_system",1,0,0,0
"access_lunch_cashmove_system","lunch.cashmove system","model_lunch_cashmove","base.group_system",1,0,0,0
-"access_report_lunch_order_manager","report.lunch.order manager","model_report_lunch_order","base.group_survey_manager",1,1,1,1
+"access_report_lunch_order_manager","report.lunch.order manager","model_report_lunch_order","base.group_tool_manager",1,1,1,1
+"access_lunch_product_user","lunch.product user","model_lunch_product","base.group_tool_user",1,1,1,1
+"access_lunch_cashbox_user","lunch.cashbox user","model_lunch_cashbox","base.group_tool_user",1,1,1,1
diff --git a/addons/lunch/security/lunch_security.xml b/addons/lunch/security/lunch_security.xml
index c87ace64801..6c3559fa138 100644
--- a/addons/lunch/security/lunch_security.xml
+++ b/addons/lunch/security/lunch_security.xml
@@ -5,10 +5,10 @@
Sales / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/lunch/wizard/lunch_cashbox_clean.py b/addons/lunch/wizard/lunch_cashbox_clean.py
index 923629502ab..54ecaf24b6f 100644
--- a/addons/lunch/wizard/lunch_cashbox_clean.py
+++ b/addons/lunch/wizard/lunch_cashbox_clean.py
@@ -48,12 +48,13 @@ class lunch_cashbox_clean(osv.osv_memory):
and box IN %s" , (tuple(data),))
for (user_id, box_id, amount) in res:
- cashmove_ref.create(cr, uid, {'name': 'Summary for user' + str(user_id),
- 'amount': amount,
- 'user_cashmove': user_id,
- 'box': box_id,
- 'active': True,
- })
+ cashmove_ref.create(cr, uid, {
+ 'name': 'Summary for user' + str(user_id),
+ 'amount': amount,
+ 'user_cashmove': user_id,
+ 'box': box_id,
+ 'active': True,
+ })
return {}
lunch_cashbox_clean()
diff --git a/addons/lunch/wizard/lunch_order_confirm.py b/addons/lunch/wizard/lunch_order_confirm.py
index 1a84e25febb..1827e7f5c91 100644
--- a/addons/lunch/wizard/lunch_order_confirm.py
+++ b/addons/lunch/wizard/lunch_order_confirm.py
@@ -29,8 +29,8 @@ class lunch_order_confirm(osv.osv_memory):
_description = "confirm Order"
_columns = {
- 'confirm_cashbox':fields.many2one('lunch.cashbox', 'Name of box', required=True),
- }
+ 'confirm_cashbox':fields.many2one('lunch.cashbox', 'Name of box', required=True),
+ }
def confirm(self, cr, uid, ids, context):
"""
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index c2e1da843ca..1a1b48e75ee 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -44,6 +44,28 @@ class mailgate_thread(osv.osv):
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', readonly=True),
}
+ def copy(self, cr, uid, id, default=None, context=None):
+ """
+ Overrides orm copy method.
+ @param self: the object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param id: Id of mailgate thread
+ @param default: Dictionary of default values for copy.
+ @param context: A standard dictionary for contextual values
+ """
+ if context is None:
+ context = {}
+ if default is None:
+ default = {}
+
+ default.update({
+ 'message_ids': [],
+ 'date_closed': False,
+ 'date_open': False
+ })
+ return super(mailgate_thread, self).copy(cr, uid, id, default, context=context)
+
def message_new(self, cr, uid, msg, context):
raise Exception, _('Method is not implemented')
@@ -83,7 +105,7 @@ class mailgate_thread(osv.osv):
@param email_cc: Comma-Separated list of Carbon Copy Emails To addresse if any
@param email_bcc: Comma-Separated list of Blind Carbon Copy Emails To addresses if any
@param email_date: Email Date string if different from now, in server Timezone
- @param details: Description, Ddtails of case history if any
+ @param details: Description, Details of case history if any
@param atach: Attachment sent in email
@param context: A standard dictionary for contextual values"""
if context is None:
@@ -112,7 +134,7 @@ class mailgate_thread(osv.osv):
if history:
for att in attach:
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
-
+
for param in (email, email_cc, email_bcc):
if isinstance(param, list):
param = ", ".join(param)
@@ -141,7 +163,7 @@ class mailgate_thread(osv.osv):
mailgate_thread()
def format_date_tz(date, tz=None):
- if not date:
+ if not date:
return 'n/a'
format = tools.DEFAULT_SERVER_DATETIME_FORMAT
return tools.server_to_local_timestamp(date, format, format, tz)
@@ -191,7 +213,7 @@ class mailgate_message(osv.osv):
'description': fields.text('Description', readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner', required=False),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments', readonly=True),
- 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'),
+ 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'),
}
def init(self, cr):
@@ -224,7 +246,7 @@ class mailgate_tool(osv.osv_memory):
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param model: OpenObject Model
- @param res_ids: Ids of the record of OpenObject model created
+ @param res_ids: Ids of the record of OpenObject model created
@param msg: Email details
@param attach: Email attachments
"""
@@ -234,19 +256,19 @@ class mailgate_tool(osv.osv_memory):
msg_pool = self.pool.get('mailgate.message')
for res_id in res_ids:
msg_data = {
- 'name': msg.get('subject', 'No subject'),
- 'date': msg.get('date'),
- 'description': msg.get('body', msg.get('from')),
- 'history': True,
- 'res_model': model,
- 'email_cc': msg.get('cc'),
- 'email_from': msg.get('from'),
- 'email_to': msg.get('to'),
- 'message_id': msg.get('message-id'),
- 'references': msg.get('references') or msg.get('in-reply-to'),
- 'res_id': res_id,
- 'user_id': uid,
- 'attachment_ids': [(6, 0, attach)]
+ 'name': msg.get('subject', 'No subject'),
+ 'date': msg.get('date'),
+ 'description': msg.get('body', msg.get('from')),
+ 'history': True,
+ 'res_model': model,
+ 'email_cc': msg.get('cc'),
+ 'email_from': msg.get('from'),
+ 'email_to': msg.get('to'),
+ 'message_id': msg.get('message-id'),
+ 'references': msg.get('references') or msg.get('in-reply-to'),
+ 'res_id': res_id,
+ 'user_id': uid,
+ 'attachment_ids': [(6, 0, attach)]
}
msg_pool.create(cr, uid, msg_data, context=context)
return True
@@ -261,7 +283,7 @@ class mailgate_tool(osv.osv_memory):
for res in model_pool.browse(cr, uid, res_ids, context=context):
message_followers = model_pool.message_followers(cr, uid, [res.id])[res.id]
- message_followers_emails = self.to_email(','.join(message_followers))
+ message_followers_emails = self.to_email(','.join(filter(None, message_followers)))
message_recipients = self.to_email(','.join(filter(None,
[self._decode_header(msg['from']),
self._decode_header(msg['to']),
diff --git a/addons/marketing/i18n/en_US.po b/addons/marketing/i18n/en_US.po
new file mode 100644
index 00000000000..76da154dc28
--- /dev/null
+++ b/addons/marketing/i18n/en_US.po
@@ -0,0 +1,107 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:07:10+0000\n"
+"PO-Revision-Date: 2010-08-20 07:07:10+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
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: marketing
+#: 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: marketing
+#: field:marketing.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Configuration Progress"
+
+#. module: marketing
+#: view:marketing.installer:0
+msgid "title"
+msgstr "title"
+
+#. module: marketing
+#: field:marketing.installer,email_template:0
+msgid "Automated E-Mails"
+msgstr "Automated E-Mails"
+
+#. module: marketing
+#: field:marketing.installer,config_logo:0
+msgid "Image"
+msgstr "Image"
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign:0
+msgid "Helps you to manage marketing campaigns and automate actions and communication steps."
+msgstr "Helps you to manage marketing campaigns and automate actions and communication steps."
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign_mailchimp:0
+msgid "This modules integrate mailchimp.com's service with OpenERP to automate mass mailings."
+msgstr "This modules integrate mailchimp.com's service with OpenERP to automate mass mailings."
+
+#. module: marketing
+#: model:ir.module.module,description:marketing.module_meta_information
+msgid "Menu for Marketing"
+msgstr "Menu for Marketing"
+
+#. module: marketing
+#: help:marketing.installer,email_template:0
+msgid "Helps you to design templates of emails and integrate them in your different processes."
+msgstr "Helps you to design templates of emails and integrate them in your different processes."
+
+#. module: marketing
+#: help:marketing.installer,crm_profiling:0
+msgid "Helps you to perform segmentation within partners and design questionaires."
+msgstr "Helps you to perform segmentation within partners and design questionaires."
+
+#. module: marketing
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: marketing
+#: model:ir.module.module,shortdesc:marketing.module_meta_information
+msgid "Marketing"
+msgstr "Marketing"
+
+#. module: marketing
+#: field:marketing.installer,crm_profiling:0
+msgid "Profiling Tools"
+msgstr "Profiling Tools"
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign:0
+msgid "Marketing Campaigns"
+msgstr "Marketing Campaigns"
+
+#. module: marketing
+#: model:ir.model,name:marketing.model_marketing_installer
+msgid "marketing.installer"
+msgstr "marketing.installer"
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign_mailchimp:0
+msgid "Mailchimp Integration"
+msgstr "Mailchimp Integration"
+
+#. module: marketing
+#: model:ir.actions.act_window,name:marketing.action_marketing_installer
+msgid "Marketing Modules Installation"
+msgstr "Marketing Modules Installation"
+
diff --git a/addons/marketing/i18n/fr.po b/addons/marketing/i18n/fr.po
new file mode 100644
index 00000000000..fd1c432043f
--- /dev/null
+++ b/addons/marketing/i18n/fr.po
@@ -0,0 +1,107 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:04:08+0000\n"
+"PO-Revision-Date: 2010-08-20 07:04: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
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: marketing
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.installer:0
+msgid "title"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,email_template:0
+msgid "Automated E-Mails"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign:0
+msgid "Helps you to manage marketing campaigns and automate actions and communication steps."
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign_mailchimp:0
+msgid "This modules integrate mailchimp.com's service with OpenERP to automate mass mailings."
+msgstr ""
+
+#. module: marketing
+#: model:ir.module.module,description:marketing.module_meta_information
+msgid "Menu for Marketing"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,email_template:0
+msgid "Helps you to design templates of emails and integrate them in your different processes."
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,crm_profiling:0
+msgid "Helps you to perform segmentation within partners and design questionaires."
+msgstr ""
+
+#. module: marketing
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: marketing
+#: model:ir.module.module,shortdesc:marketing.module_meta_information
+msgid "Marketing"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,crm_profiling:0
+msgid "Profiling Tools"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign:0
+msgid "Marketing Campaigns"
+msgstr ""
+
+#. module: marketing
+#: model:ir.model,name:marketing.model_marketing_installer
+msgid "marketing.installer"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign_mailchimp:0
+msgid "Mailchimp Integration"
+msgstr ""
+
+#. module: marketing
+#: model:ir.actions.act_window,name:marketing.action_marketing_installer
+msgid "Marketing Modules Installation"
+msgstr ""
+
diff --git a/addons/marketing/i18n/marketing.pot b/addons/marketing/i18n/marketing.pot
new file mode 100644
index 00000000000..fd1c432043f
--- /dev/null
+++ b/addons/marketing/i18n/marketing.pot
@@ -0,0 +1,107 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:04:08+0000\n"
+"PO-Revision-Date: 2010-08-20 07:04: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
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: marketing
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: marketing
+#: view:marketing.installer:0
+msgid "title"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,email_template:0
+msgid "Automated E-Mails"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign:0
+msgid "Helps you to manage marketing campaigns and automate actions and communication steps."
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,marketing_campaign_mailchimp:0
+msgid "This modules integrate mailchimp.com's service with OpenERP to automate mass mailings."
+msgstr ""
+
+#. module: marketing
+#: model:ir.module.module,description:marketing.module_meta_information
+msgid "Menu for Marketing"
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,email_template:0
+msgid "Helps you to design templates of emails and integrate them in your different processes."
+msgstr ""
+
+#. module: marketing
+#: help:marketing.installer,crm_profiling:0
+msgid "Helps you to perform segmentation within partners and design questionaires."
+msgstr ""
+
+#. module: marketing
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: marketing
+#: model:ir.module.module,shortdesc:marketing.module_meta_information
+msgid "Marketing"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,crm_profiling:0
+msgid "Profiling Tools"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign:0
+msgid "Marketing Campaigns"
+msgstr ""
+
+#. module: marketing
+#: model:ir.model,name:marketing.model_marketing_installer
+msgid "marketing.installer"
+msgstr ""
+
+#. module: marketing
+#: field:marketing.installer,marketing_campaign_mailchimp:0
+msgid "Mailchimp Integration"
+msgstr ""
+
+#. module: marketing
+#: model:ir.actions.act_window,name:marketing.action_marketing_installer
+msgid "Marketing Modules Installation"
+msgstr ""
+
diff --git a/addons/marketing/security/ir.model.access.csv b/addons/marketing/security/ir.model.access.csv
index 599d1a27b44..0343f29f43a 100644
--- a/addons/marketing/security/ir.model.access.csv
+++ b/addons/marketing/security/ir.model.access.csv
@@ -1,2 +1 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_res_config_installer","access_marketing_installer","base.model_res_config_installer","base.group_system",1,1,1,1
diff --git a/addons/marketing/security/marketing_security.xml b/addons/marketing/security/marketing_security.xml
index 834c763b8d0..2eda88c4481 100644
--- a/addons/marketing/security/marketing_security.xml
+++ b/addons/marketing/security/marketing_security.xml
@@ -6,4 +6,3 @@
-
diff --git a/addons/marketing_campaign/i18n/en_US.po b/addons/marketing_campaign/i18n/en_US.po
new file mode 100644
index 00000000000..bc768767de1
--- /dev/null
+++ b/addons/marketing_campaign/i18n/en_US.po
@@ -0,0 +1,914 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:30:00+0000\n"
+"PO-Revision-Date: 2010-08-20 07:30: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: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The current step for this item has no email or report to preview."
+msgstr "The current step for this item has no email or report to preview."
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Time"
+msgstr "Time"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,trigger:0
+msgid "Trigger"
+msgstr "Trigger"
+
+#. module: marketing_campaign
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: marketing_campaign
+#: field:campaign.analysis,count:0
+msgid "# of Actions"
+msgstr "# of Actions"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Editor"
+msgstr "Campaign Editor"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Today"
+msgstr "Today"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "March"
+msgstr "March"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,object_id:0
+#: field:marketing.campaign.segment,object_id:0
+#: field:marketing.campaign.workitem,object_id:0
+msgid "Object"
+msgstr "Object"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Set to Draft"
+msgstr "Set to Draft"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,to_ids:0
+msgid "Next Activities"
+msgstr "Next Activities"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronization"
+msgstr "Synchronization"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Year"
+msgstr "This Year"
+
+#. module: marketing_campaign
+#: help:marketing.campaign,partner_field_id:0
+msgid "The generated workitems will be linked to the partner related to the record. If the record is the partner itself left this field empty."
+msgstr "The generated workitems will be linked to the partner related to the record. If the record is the partner itself left this field empty."
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "No preview"
+msgstr "No preview"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Outgoing Transitions"
+msgstr "Outgoing Transitions"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Reset"
+msgstr "Reset"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,type:0
+msgid "Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."
+msgstr "Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Year(s)"
+msgstr "Year(s)"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_directory_id:0
+msgid "This folder is used to store the generated reports"
+msgstr "This folder is used to store the generated reports"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Cancelled"
+msgstr "Cancelled"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Automatic"
+msgstr "Automatic"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Activity Definition"
+msgstr "Activity Definition"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "Keep as cancelled when condition not met"
+msgstr "Keep as cancelled when condition not met"
+
+#. module: marketing_campaign
+#: help:marketing.campaign,mode:0
+msgid "Test - It creates and process all the activities directly (without waiting for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and reports (be very careful with this mode, you're live!)"
+msgstr "Test - It creates and process all the activities directly (without waiting for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and reports (be very careful with this mode, you're live!)"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,campaign_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign.activity,campaign_id:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,campaign_id:0
+#: field:marketing.campaign.workitem,campaign_id:0
+msgid "Campaign"
+msgstr "Campaign"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,start:0
+msgid "Start"
+msgstr "Start"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,segment_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,segment_id:0
+msgid "Segment"
+msgstr "Segment"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_mode:0
+msgid "Workitem creation mode"
+msgstr "Workitem creation mode"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Month(s)"
+msgstr "Month(s)"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign hasn't any starting activity nor any activity with a signal and no previous activity."
+msgstr "The campaign hasn't any starting activity nor any activity with a signal and no previous activity."
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,partner_id:0
+#: model:ir.model,name:marketing_campaign.model_res_partner
+#: field:marketing.campaign.workitem,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record created after last sync"
+msgstr "If record created after last sync"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Transitions"
+msgstr "Transitions"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Create After Sync"
+msgstr "Create After Sync"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Dates"
+msgstr "Dates"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_mode:0
+msgid "Determines when new workitems should be created for records matching a segment."
+msgstr "Determines when new workitems should be created for records matching a segment."
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,state:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,state:0
+msgid "State"
+msgstr "State"
+
+#. module: marketing_campaign
+#: model:ir.module.module,description:marketing_campaign.module_meta_information
+msgid "\n"
+"Allows you to setup leads automation through marketing campaigns. The campaigns\n"
+"are dynamic and multi-channels. The process:\n"
+"* Design marketing campaigns that incluces mail templates, reports to print,\n"
+" miscelleanous actions, etc.\n"
+"* Define segments that are selections of target people\n"
+"* Launch your campaign to automate communications.\n"
+"\n"
+"If you need demo data, you can install the module marketing_campaign_crm_demo.\n"
+" "
+msgstr "\n"
+"Allows you to setup leads automation through marketing campaigns. The campaigns\n"
+"are dynamic and multi-channels. The process:\n"
+"* Design marketing campaigns that incluces mail templates, reports to print,\n"
+" miscelleanous actions, etc.\n"
+"* Define segments that are selections of target people\n"
+"* Launch your campaign to automate communications.\n"
+"\n"
+"If you need demo data, you can install the module marketing_campaign_crm_demo.\n"
+" "
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,condition:0
+msgid "Python expression to decide whether the activity can be executed, otherwise it will be deleted or cancelled.The expression may use the following [browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - object: the object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+msgstr "Python expression to decide whether the activity can be executed, otherwise it will be deleted or cancelled.The expression may use the following [browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - object: the object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Marketing Reports"
+msgstr "Marketing Reports"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,type:0
+msgid "Type"
+msgstr "Type"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_name:0
+msgid "Resource Name"
+msgstr "Resource Name"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Run"
+msgstr "Run"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: an email account is missing in the email activity '%s'"
+msgstr "The campaign cannot be started: an email account is missing in the email activity '%s'"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,from_ids:0
+msgid "Previous Activities"
+msgstr "Previous Activities"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_from_id:0
+msgid "Previous Activity"
+msgstr "Previous Activity"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activities"
+msgstr "Marketing Campaign Activities"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,error_msg:0
+msgid "Error Message"
+msgstr "Error Message"
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form
+#: view:marketing.campaign:0
+msgid "Campaigns"
+msgstr "Campaigns"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_type:0
+msgid "Interval Unit"
+msgstr "Interval Unit"
+
+#. module: marketing_campaign
+#: field:campaign.analysis,country_id:0
+msgid "Country"
+msgstr "Country"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "July"
+msgstr "July"
+
+#. module: marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration
+msgid "Configuration"
+msgstr "Configuration"
+
+#. module: marketing_campaign
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr "Invalid arguments"
+
+#. module: marketing_campaign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Hour(s)"
+msgstr "Hour(s)"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
+msgid "Campaign Segment"
+msgstr "Campaign Segment"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "By activating this option, workitems that aren't executed because the condition is not met are marked as cancelled instead of being deleted."
+msgstr "By activating this option, workitems that aren't executed because the condition is not met are marked as cancelled instead of being deleted."
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Exceptions"
+msgstr "Exceptions"
+
+#. module: marketing_campaign
+#: field:res.partner,workitem_ids:0
+msgid "Workitems"
+msgstr "Workitems"
+
+#. module: marketing_campaign
+#: field:marketing.campaign,fixed_cost:0
+msgid "Fixed Cost"
+msgstr "Fixed Cost"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_nbr:0
+msgid "Interval Value"
+msgstr "Interval Value"
+
+#. module: marketing_campaign
+#: field:campaign.analysis,revenue:0
+#: field:marketing.campaign.activity,revenue:0
+msgid "Revenue"
+msgstr "Revenue"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "September"
+msgstr "September"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "December"
+msgstr "December"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,month:0
+msgid "Month"
+msgstr "Month"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_to_id:0
+msgid "Next Activity"
+msgstr "Next Activity"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,email_template_id:0
+msgid "The e-mail to send when this activity is activated"
+msgstr "The e-mail to send when this activity is activated"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Month"
+msgstr "This Month"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Test Mode"
+msgstr "Test Mode"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr "ir.actions.report.xml"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Manual Mode"
+msgstr "Manual Mode"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,server_action_id:0
+msgid "The action to perform when this activity is activated"
+msgstr "The action to perform when this activity is activated"
+
+#. module: marketing_campaign
+#: field:marketing.campaign,partner_field_id:0
+msgid "Partner Field"
+msgstr "Partner Field"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_campaign_analysis
+msgid "Campaign Analysis"
+msgstr "Campaign Analysis"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test in Realtime"
+msgstr "Test in Realtime"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test Directly"
+msgstr "Test Directly"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_directory_id:0
+msgid "Directory"
+msgstr "Directory"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_last_date:0
+msgid "Latest Synchronization"
+msgstr "Latest Synchronization"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: marketing_campaign
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_run:0
+msgid "Launching Date"
+msgstr "Launching Date"
+
+#. module: marketing_campaign
+#: 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: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Preview"
+msgstr "Preview"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Status"
+msgstr "Status"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Run Date"
+msgstr "Run Date"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Related Resource"
+msgstr "Related Resource"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "August"
+msgstr "August"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,start:0
+msgid "This activity is launched when the campaign starts."
+msgstr "This activity is launched when the campaign starts."
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,signal:0
+msgid "An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent"
+msgstr "An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "June"
+msgstr "June"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "All records (no duplicates)"
+msgstr "All records (no duplicates)"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,date:0
+#: view:marketing.campaign.workitem:0
+msgid "Date"
+msgstr "Date"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "November"
+msgstr "November"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,condition:0
+msgid "Condition"
+msgstr "Condition"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_id:0
+msgid "The report to generate when this activity is activated"
+msgstr "The report to generate when this activity is activated"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Exception"
+msgstr "Exception"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "October"
+msgstr "October"
+
+#. module: marketing_campaign
+#: help:marketing.campaign,fixed_cost:0
+msgid "Fixed cost for the campaign (used for campaign analysis), see also variable cost on activities"
+msgstr "Fixed cost for the campaign (used for campaign analysis), see also variable cost on activities"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "January"
+msgstr "January"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,date:0
+msgid "Execution Date"
+msgstr "Execution Date"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
+msgid "Campaign Workitem"
+msgstr "Campaign Workitem"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,ir_filter_id:0
+msgid "Filter"
+msgstr "Filter"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronize"
+msgstr "Synchronize"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Error"
+msgstr "Error"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,server_action_id:0
+#: selection:marketing.campaign.activity,type:0
+msgid "Action"
+msgstr "Action"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Automatic transition"
+msgstr "Automatic transition"
+
+#. module: marketing_campaign
+#: view:res.partner:0
+msgid "History"
+msgstr "History"
+
+#. module: marketing_campaign
+#: help:marketing.campaign,object_id:0
+msgid "Choose the model on which you want this campaign to be run"
+msgstr "Choose the model on which you want this campaign to be run"
+
+#. module: marketing_campaign
+#: model:ir.module.module,shortdesc:marketing_campaign.module_meta_information
+msgid "marketing_campaign"
+msgstr "marketing_campaign"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Process"
+msgstr "Process"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#: selection:marketing.campaign.transition,trigger:0
+#, python-format
+msgid "Cosmetic"
+msgstr "Cosmetic"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.transition,trigger:0
+msgid "How is the destination workitem triggered"
+msgstr "How is the destination workitem triggered"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_email_template
+msgid "Email Templates for Models"
+msgstr "Email Templates for Models"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Close"
+msgstr "Close"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be marked as done before all segments are done"
+msgstr "The campaign cannot be marked as done before all segments are done"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_id:0
+msgid "Resource ID"
+msgstr "Resource ID"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
+msgid "Campaign Transition"
+msgstr "Campaign Transition"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "To Do"
+msgstr "To Do"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Campaign Step"
+msgstr "Campaign Step"
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form
+#: view:marketing.campaign.segment:0
+msgid "Segments"
+msgstr "Segments"
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
+msgid "All Segments"
+msgstr "All Segments"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Incoming Transitions"
+msgstr "Incoming Transitions"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "E-mail"
+msgstr "E-mail"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: the email account is not approved in the email activity '%s'"
+msgstr "The campaign cannot be started: the email account is not approved in the email activity '%s'"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Day(s)"
+msgstr "Day(s)"
+
+#. module: marketing_campaign
+#: field:marketing.campaign,activity_ids:0
+#: view:marketing.campaign.activity:0
+msgid "Activities"
+msgstr "Activities"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "May"
+msgstr "May"
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Modified after Sync"
+msgstr "Modified after Sync"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Running"
+msgstr "Running"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Paper"
+msgstr "Paper"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "After %(interval_nbr)d %(interval_type)s"
+msgstr "After %(interval_nbr)d %(interval_type)s"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign
+msgid "Marketing Campaign"
+msgstr "Marketing Campaign"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_done:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "February"
+msgstr "February"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,object_id:0
+msgid "Resource"
+msgstr "Resource"
+
+#. module: marketing_campaign
+#: field:marketing.campaign,name:0
+#: field:marketing.campaign.activity,name:0
+#: field:marketing.campaign.segment,name:0
+#: field:marketing.campaign.transition,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Email Preview"
+msgstr "Email Preview"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,signal:0
+msgid "Signal"
+msgstr "Signal"
+
+#. module: marketing_campaign
+#: help:marketing.campaign.workitem,date:0
+msgid "If date is not set, this workitem have to be run manually"
+msgstr "If date is not set, this workitem have to be run manually"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: there are no activities in it"
+msgstr "The campaign cannot be started: there are no activities in it"
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "April"
+msgstr "April"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,mode:0
+msgid "Mode"
+msgstr "Mode"
+
+#. module: marketing_campaign
+#: field:campaign.analysis,activity_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,activity_id:0
+msgid "Activity"
+msgstr "Activity"
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
+msgid "Campaign Followup"
+msgstr "Campaign Followup"
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
+msgid "Campaign Activity"
+msgstr "Campaign Activity"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,variable_cost:0
+msgid "Variable Cost"
+msgstr "Variable Cost"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record modified after last sync (no duplicates)"
+msgstr "If record modified after last sync (no duplicates)"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "With Manual Confirmation"
+msgstr "With Manual Confirmation"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,total_cost:0
+msgid "Cost"
+msgstr "Cost"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,year:0
+msgid "Year"
+msgstr "Year"
+
diff --git a/addons/marketing_campaign/i18n/fr.po b/addons/marketing_campaign/i18n/fr.po
new file mode 100644
index 00000000000..580df4df61b
--- /dev/null
+++ b/addons/marketing_campaign/i18n/fr.po
@@ -0,0 +1,897 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:09:51+0000\n"
+"PO-Revision-Date: 2010-08-20 07:09:51+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
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The current step for this item has no email or report to preview."
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Time"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Group By..."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,trigger:0
+msgid "Trigger"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,count:0
+msgid "# of Actions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Editor"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Today"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "March"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,object_id:0
+#: field:marketing.campaign.segment,object_id:0
+#: field:marketing.campaign.workitem,object_id:0
+msgid "Object"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,to_ids:0
+msgid "Next Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Year"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,partner_field_id:0
+msgid "The generated workitems will be linked to the partner related to the record. If the record is the partner itself left this field empty."
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "No preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Outgoing Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Reset"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,type:0
+msgid "Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Year(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_directory_id:0
+msgid "This folder is used to store the generated reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Automatic"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Activity Definition"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "Keep as cancelled when condition not met"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,mode:0
+msgid "Test - It creates and process all the activities directly (without waiting for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and reports (be very careful with this mode, you're live!)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,campaign_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign.activity,campaign_id:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,campaign_id:0
+#: field:marketing.campaign.workitem,campaign_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,start:0
+msgid "Start"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,segment_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,segment_id:0
+msgid "Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_mode:0
+msgid "Workitem creation mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Month(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign hasn't any starting activity nor any activity with a signal and no previous activity."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,partner_id:0
+#: model:ir.model,name:marketing_campaign.model_res_partner
+#: field:marketing.campaign.workitem,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record created after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Create After Sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Dates"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_mode:0
+msgid "Determines when new workitems should be created for records matching a segment."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,state:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,state:0
+msgid "State"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,description:marketing_campaign.module_meta_information
+msgid "\n"
+"Allows you to setup leads automation through marketing campaigns. The campaigns\n"
+"are dynamic and multi-channels. The process:\n"
+"* Design marketing campaigns that incluces mail templates, reports to print,\n"
+" miscelleanous actions, etc.\n"
+"* Define segments that are selections of target people\n"
+"* Launch your campaign to automate communications.\n"
+"\n"
+"If you need demo data, you can install the module marketing_campaign_crm_demo.\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,condition:0
+msgid "Python expression to decide whether the activity can be executed, otherwise it will be deleted or cancelled.The expression may use the following [browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - object: the object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Marketing Reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,type:0
+msgid "Type"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_name:0
+msgid "Resource Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Run"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: an email account is missing in the email activity '%s'"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,from_ids:0
+msgid "Previous Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_from_id:0
+msgid "Previous Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,error_msg:0
+msgid "Error Message"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form
+#: view:marketing.campaign:0
+msgid "Campaigns"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_type:0
+msgid "Interval Unit"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "July"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Hour(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
+msgid "Campaign Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Cancel"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "By activating this option, workitems that aren't executed because the condition is not met are marked as cancelled instead of being deleted."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:res.partner,workitem_ids:0
+msgid "Workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,fixed_cost:0
+msgid "Fixed Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_nbr:0
+msgid "Interval Value"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,revenue:0
+#: field:marketing.campaign.activity,revenue:0
+msgid "Revenue"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "September"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "December"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,month:0
+msgid "Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_to_id:0
+msgid "Next Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,email_template_id:0
+msgid "The e-mail to send when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Test Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Manual Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,server_action_id:0
+msgid "The action to perform when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,partner_field_id:0
+msgid "Partner Field"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_campaign_analysis
+msgid "Campaign Analysis"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test in Realtime"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test Directly"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_directory_id:0
+msgid "Directory"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_last_date:0
+msgid "Latest Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_run:0
+msgid "Launching Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Status"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Run Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Related Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "August"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Normal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,start:0
+msgid "This activity is launched when the campaign starts."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,signal:0
+msgid "An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "June"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "All records (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,date:0
+#: view:marketing.campaign.workitem:0
+msgid "Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "November"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_id:0
+msgid "The report to generate when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "October"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,fixed_cost:0
+msgid "Fixed cost for the campaign (used for campaign analysis), see also variable cost on activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "January"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,date:0
+msgid "Execution Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
+msgid "Campaign Workitem"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,ir_filter_id:0
+msgid "Filter"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronize"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,server_action_id:0
+#: selection:marketing.campaign.activity,type:0
+msgid "Action"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Automatic transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:res.partner:0
+msgid "History"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,object_id:0
+msgid "Choose the model on which you want this campaign to be run"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,shortdesc:marketing_campaign.module_meta_information
+msgid "marketing_campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Process"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#: selection:marketing.campaign.transition,trigger:0
+#, python-format
+msgid "Cosmetic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.transition,trigger:0
+msgid "How is the destination workitem triggered"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Done"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_email_template
+msgid "Email Templates for Models"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Close"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be marked as done before all segments are done"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
+msgid "Campaign Transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "To Do"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Campaign Step"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form
+#: view:marketing.campaign.segment:0
+msgid "Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
+msgid "All Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Incoming Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "E-mail"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: the email account is not approved in the email activity '%s'"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,activity_ids:0
+#: view:marketing.campaign.activity:0
+msgid "Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "May"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Modified after Sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Running"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Paper"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "After %(interval_nbr)d %(interval_type)s"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign
+msgid "Marketing Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_done:0
+msgid "End Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "February"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,object_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,name:0
+#: field:marketing.campaign.activity,name:0
+#: field:marketing.campaign.segment,name:0
+#: field:marketing.campaign.transition,name:0
+msgid "Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Email Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,signal:0
+msgid "Signal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.workitem,date:0
+msgid "If date is not set, this workitem have to be run manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: there are no activities in it"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "April"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,mode:0
+msgid "Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,activity_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,activity_id:0
+msgid "Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
+msgid "Campaign Followup"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
+msgid "Campaign Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,variable_cost:0
+msgid "Variable Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record modified after last sync (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "With Manual Confirmation"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,total_cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,year:0
+msgid "Year"
+msgstr ""
+
diff --git a/addons/marketing_campaign/i18n/marketing_campaign.pot b/addons/marketing_campaign/i18n/marketing_campaign.pot
new file mode 100644
index 00000000000..580df4df61b
--- /dev/null
+++ b/addons/marketing_campaign/i18n/marketing_campaign.pot
@@ -0,0 +1,897 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * marketing_campaign
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-20 07:09:51+0000\n"
+"PO-Revision-Date: 2010-08-20 07:09:51+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
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The current step for this item has no email or report to preview."
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Time"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Group By..."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,trigger:0
+msgid "Trigger"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,count:0
+msgid "# of Actions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Editor"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Today"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "March"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,object_id:0
+#: field:marketing.campaign.segment,object_id:0
+#: field:marketing.campaign.workitem,object_id:0
+msgid "Object"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,to_ids:0
+msgid "Next Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Year"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,partner_field_id:0
+msgid "The generated workitems will be linked to the partner related to the record. If the record is the partner itself left this field empty."
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "No preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Outgoing Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Reset"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,type:0
+msgid "Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Year(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_directory_id:0
+msgid "This folder is used to store the generated reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Automatic"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Activity Definition"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "Keep as cancelled when condition not met"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,mode:0
+msgid "Test - It creates and process all the activities directly (without waiting for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and reports (be very careful with this mode, you're live!)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,campaign_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign.activity,campaign_id:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,campaign_id:0
+#: field:marketing.campaign.workitem,campaign_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,start:0
+msgid "Start"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,segment_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,segment_id:0
+msgid "Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_mode:0
+msgid "Workitem creation mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Month(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign hasn't any starting activity nor any activity with a signal and no previous activity."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,partner_id:0
+#: model:ir.model,name:marketing_campaign.model_res_partner
+#: field:marketing.campaign.workitem,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record created after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Create After Sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Dates"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_mode:0
+msgid "Determines when new workitems should be created for records matching a segment."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,state:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,state:0
+msgid "State"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,description:marketing_campaign.module_meta_information
+msgid "\n"
+"Allows you to setup leads automation through marketing campaigns. The campaigns\n"
+"are dynamic and multi-channels. The process:\n"
+"* Design marketing campaigns that incluces mail templates, reports to print,\n"
+" miscelleanous actions, etc.\n"
+"* Define segments that are selections of target people\n"
+"* Launch your campaign to automate communications.\n"
+"\n"
+"If you need demo data, you can install the module marketing_campaign_crm_demo.\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,condition:0
+msgid "Python expression to decide whether the activity can be executed, otherwise it will be deleted or cancelled.The expression may use the following [browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - object: the object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Marketing Reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,type:0
+msgid "Type"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_name:0
+msgid "Resource Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Run"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: an email account is missing in the email activity '%s'"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,from_ids:0
+msgid "Previous Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_from_id:0
+msgid "Previous Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,error_msg:0
+msgid "Error Message"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form
+#: view:marketing.campaign:0
+msgid "Campaigns"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_type:0
+msgid "Interval Unit"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "July"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Hour(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
+msgid "Campaign Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Cancel"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "By activating this option, workitems that aren't executed because the condition is not met are marked as cancelled instead of being deleted."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:res.partner,workitem_ids:0
+msgid "Workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,fixed_cost:0
+msgid "Fixed Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_nbr:0
+msgid "Interval Value"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,revenue:0
+#: field:marketing.campaign.activity,revenue:0
+msgid "Revenue"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "September"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "December"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,month:0
+msgid "Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_to_id:0
+msgid "Next Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,email_template_id:0
+msgid "The e-mail to send when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Test Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Manual Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,server_action_id:0
+msgid "The action to perform when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,partner_field_id:0
+msgid "Partner Field"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_campaign_analysis
+msgid "Campaign Analysis"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test in Realtime"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test Directly"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_directory_id:0
+msgid "Directory"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_last_date:0
+msgid "Latest Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_run:0
+msgid "Launching Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Status"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Run Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Related Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "August"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Normal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,start:0
+msgid "This activity is launched when the campaign starts."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,signal:0
+msgid "An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "June"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "All records (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,date:0
+#: view:marketing.campaign.workitem:0
+msgid "Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "November"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_id:0
+msgid "The report to generate when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "October"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,fixed_cost:0
+msgid "Fixed cost for the campaign (used for campaign analysis), see also variable cost on activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "January"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,date:0
+msgid "Execution Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
+msgid "Campaign Workitem"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,ir_filter_id:0
+msgid "Filter"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronize"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,server_action_id:0
+#: selection:marketing.campaign.activity,type:0
+msgid "Action"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Automatic transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:res.partner:0
+msgid "History"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,object_id:0
+msgid "Choose the model on which you want this campaign to be run"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,shortdesc:marketing_campaign.module_meta_information
+msgid "marketing_campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Process"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#: selection:marketing.campaign.transition,trigger:0
+#, python-format
+msgid "Cosmetic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.transition,trigger:0
+msgid "How is the destination workitem triggered"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Done"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_email_template
+msgid "Email Templates for Models"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Close"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be marked as done before all segments are done"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
+msgid "Campaign Transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "To Do"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Campaign Step"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form
+#: view:marketing.campaign.segment:0
+msgid "Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
+msgid "All Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Incoming Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "E-mail"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: the email account is not approved in the email activity '%s'"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,activity_ids:0
+#: view:marketing.campaign.activity:0
+msgid "Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "May"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Modified after Sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Running"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Paper"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "After %(interval_nbr)d %(interval_type)s"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign
+msgid "Marketing Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_done:0
+msgid "End Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "February"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,object_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,name:0
+#: field:marketing.campaign.activity,name:0
+#: field:marketing.campaign.segment,name:0
+#: field:marketing.campaign.transition,name:0
+msgid "Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "Email Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,signal:0
+msgid "Signal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.workitem,date:0
+msgid "If date is not set, this workitem have to be run manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:0
+#, python-format
+msgid "The campaign cannot be started: there are no activities in it"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "April"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,mode:0
+msgid "Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,activity_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,activity_id:0
+msgid "Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
+msgid "Campaign Followup"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
+msgid "Campaign Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,variable_cost:0
+msgid "Variable Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "If record modified after last sync (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "With Manual Confirmation"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,total_cost:0
+msgid "Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,year:0
+msgid "Year"
+msgstr ""
+
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index 6e1ae749272..d9b87e91347 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -27,6 +27,7 @@ from operator import itemgetter
from traceback import format_exception
from sys import exc_info
from tools.safe_eval import safe_eval as eval
+import re
from osv import fields, osv
import netsvc
@@ -109,7 +110,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
'campaign_id', 'Activities'),
'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for the campaign (used for campaign analysis), see also variable cost on activities"),
}
-
+
_defaults = {
'state': lambda *a: 'draft',
'mode': lambda *a: 'test',
@@ -133,9 +134,9 @@ Normal - the campaign runs normally and automatically sends all emails and repor
if activity.type != 'email':
continue
- if not activity.email_template_id.enforce_from_account:
+ if not activity.email_template_id.from_account:
raise osv.except_osv(_("Error"), _("The campaign cannot be started: an email account is missing in the email activity '%s'")%activity.name)
- if activity.email_template_id.enforce_from_account.state != 'approved':
+ if activity.email_template_id.from_account.state != 'approved':
raise osv.except_osv(_("Error"), _("The campaign cannot be started: the email account is not approved in the email activity '%s'")%activity.name)
if not has_start and not has_signal_without_from:
@@ -202,6 +203,10 @@ Normal - the campaign runs normally and automatically sends all emails and repor
return record
return None
+ # prevent duplication until the server properly duplicates several levels of nested o2m
+ def copy(self, cr, uid, id, default=None, context=None):
+ raise osv.except_osv("Operation not supported", "Sorry, campaign duplication is not supported at the moment.")
+
marketing_campaign()
class marketing_campaign_segment(osv.osv):
@@ -211,14 +216,15 @@ class marketing_campaign_segment(osv.osv):
_columns = {
'name': fields.char('Name', size=64,required=True),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign',
- required=True, select=1),
+ required=True, select=1, ondelete="cascade"),
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
string='Object'),
'ir_filter_id': fields.many2one('ir.filters', 'Filter', help=""),
'sync_last_date': fields.datetime('Latest Synchronization'),
'sync_mode': fields.selection([('create_date', 'If record created after last sync'),
- ('write_date', 'If record modified after last sync (no duplicates)')],
+ ('write_date', 'If record modified after last sync (no duplicates)'),
+ ('all', 'All records (no duplicates)')],
'Workitem creation mode',
help="Determines when new workitems should be created for records matching a segment."),
'state': fields.selection([('draft', 'Draft'),
@@ -269,13 +275,16 @@ class marketing_campaign_segment(osv.osv):
action_date = time.strftime('%Y-%m-%d %H:%M:%S')
campaigns = set()
for segment in self.browse(cr, uid, segment_ids, context=context):
+ if segment.campaign_id.state != 'running':
+ continue
+
campaigns.add(segment.campaign_id.id)
act_ids = self.pool.get('marketing.campaign.activity').search(cr,
uid, [('start', '=', True), ('campaign_id', '=', segment.campaign_id.id)], context=context)
model_obj = self.pool.get(segment.object_id.model)
criteria = []
- if segment.sync_last_date:
+ if segment.sync_last_date and segment.sync_mode != 'all':
criteria += [(segment.sync_mode, '>', segment.sync_last_date)]
if segment.ir_filter_id:
criteria += eval(segment.ir_filter_id.domain)
@@ -284,7 +293,7 @@ class marketing_campaign_segment(osv.osv):
# XXX TODO: rewrite this loop more efficiently without doing 1 search per record!
for o_ids in model_obj.browse(cr, uid, object_ids, context=context):
# avoid duplicated workitem for the same resource
- if segment.sync_mode == 'write_date':
+ if segment.sync_mode in ('write_date','all'):
wi_ids = Workitems.search(cr, uid, [('res_id','=',o_ids.id),('segment_id','=',segment.id)], context=context)
if wi_ids:
continue
@@ -332,25 +341,28 @@ class marketing_campaign_activity(osv.osv):
type='many2one', relation='ir.model',
string='Object', readonly=True),
'start': fields.boolean('Start', help= "This activity is launched when the campaign starts.", select=True),
- 'condition': fields.char('Condition', size=256, required=True,
- help="Python condition to know if the activity can be executed, otherwise it will be deleted or cancelled."),
+ 'condition': fields.text('Condition', size=256, required=True,
+ help="Python expression to decide whether the activity can be executed, otherwise it will be deleted or cancelled."
+ "The expression may use the following [browsable] variables:\n"
+ " - activity: the campaign activity\n"
+ " - workitem: the campaign workitem\n"
+ " - object: the object this campaign item represents\n"
+ " - transitions: list of campaign transitions outgoing from this activity\n"
+ "...- re: Python regular expression module"),
'type': fields.selection(_action_types, 'Type', required=True,
help="Describe type of action to be performed on the Activity.Eg : Send email,Send paper.."),
- 'email_template_id': fields.many2one('email.template','Email Template'),
- 'report_id': fields.many2one('ir.actions.report.xml', 'Reports', ),
+ 'email_template_id': fields.many2one('email.template','The e-mail to send when this activity is activated'),
+ 'report_id': fields.many2one('ir.actions.report.xml', 'The report to generate when this activity is activated', ),
'report_directory_id': fields.many2one('document.directory','Directory',
- help="Folder is used to store the generated reports"),
+ help="This folder is used to store the generated reports"),
'server_action_id': fields.many2one('ir.actions.server', string='Action',
- help= "Describes the action name.\n"
- "eg:On which object which action to be taken on basis of which condition"),
+ help= "The action to perform when this activity is activated"),
'to_ids': fields.one2many('marketing.campaign.transition',
'activity_from_id',
'Next Activities'),
'from_ids': fields.one2many('marketing.campaign.transition',
'activity_to_id',
'Previous Activities'),
- #'subcampaign_id': fields.many2one('marketing.campaign', 'Sub-Campaign',
- # domain="[('object_id', '=', object_id)]"),
'variable_cost': fields.float('Variable Cost'),
'revenue': fields.float('Revenue'),
'signal': fields.char('Signal', size=128,
@@ -382,14 +394,14 @@ class marketing_campaign_activity(osv.osv):
service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
(report_data, format) = service.create(cr, uid, [], {}, {})
attach_vals = {
- 'name': '%s_%s_%s'%(activity.report_id.report_name,
- activity.name,workitem.partner_id.name),
- 'datas_fname': '%s.%s'%(activity.report_id.report_name,
- activity.report_id.report_type),
- 'parent_id': activity.report_directory_id.id,
- 'datas': base64.encodestring(report_data),
- 'file_type': format
- }
+ 'name': '%s_%s_%s'%(activity.report_id.report_name,
+ activity.name,workitem.partner_id.name),
+ 'datas_fname': '%s.%s'%(activity.report_id.report_name,
+ activity.report_id.report_type),
+ 'parent_id': activity.report_directory_id.id,
+ 'datas': base64.encodestring(report_data),
+ 'file_type': format
+ }
self.pool.get('ir.attachment').create(cr, uid, attach_vals)
return True
@@ -430,9 +442,10 @@ class marketing_campaign_transition(osv.osv):
_name = "marketing.campaign.transition"
_description = "Campaign Transition"
- _interval_units = [('hours', 'Hour(s)'), ('days', 'Day(s)'),
- ('months', 'Month(s)'), ('years','Year(s)')]
-
+ _interval_units = [
+ ('hours', 'Hour(s)'), ('days', 'Day(s)'),
+ ('months', 'Month(s)'), ('years','Year(s)')
+ ]
def _get_name(self, cr, uid, ids, fn, args, context=None):
result = dict.fromkeys(ids, False)
@@ -452,7 +465,7 @@ class marketing_campaign_transition(osv.osv):
transition = self.browse(cr, uid, ids[0], context)
if transition.trigger != 'time':
raise ValueError('Delta is only relevant for timed transiton')
- return relativedelta(**{transition.interval_type: transition.interval_nbr})
+ return relativedelta(**{str(transition.interval_type): transition.interval_nbr})
_columns = {
@@ -460,10 +473,10 @@ class marketing_campaign_transition(osv.osv):
type='char', size=128),
'activity_from_id': fields.many2one('marketing.campaign.activity',
'Previous Activity', select=1,
- required=True),
+ required=True, ondelete="cascade"),
'activity_to_id': fields.many2one('marketing.campaign.activity',
'Next Activity',
- required=True),
+ required=True, ondelete="cascade"),
'interval_nbr': fields.integer('Interval Value', required=True),
'interval_type': fields.selection(_interval_units, 'Interval Unit',
required=True),
@@ -551,7 +564,8 @@ class marketing_campaign_workitem(osv.osv):
'activity': activity,
'workitem': workitem,
'object': object_id,
- 'transition': activity.to_ids
+ 'transitions': activity.to_ids,
+ 're': re,
}
try:
condition = activity.condition
@@ -576,14 +590,17 @@ class marketing_campaign_workitem(osv.osv):
if result:
# process _chain
+ workitem = workitem.browse(context)[0] # reload
+ date = datetime.strptime(workitem.date, DT_FMT)
+
for transition in activity.to_ids:
if transition.trigger == 'cosmetic':
continue
launch_date = False
if transition.trigger == 'auto':
- launch_date = datetime.now()
+ launch_date = date
elif transition.trigger == 'time':
- launch_date = datetime.now() + transition._delta()
+ launch_date = date + transition._delta()
if launch_date:
launch_date = launch_date.strftime(DT_FMT)
@@ -597,18 +614,19 @@ class marketing_campaign_workitem(osv.osv):
}
wi_id = self.create(cr, uid, values, context=context)
- # Now, depending of the trigger and the campaign mode
- # we know if must run the newly created workitem.
+ # Now, depending on the trigger and the campaign mode
+ # we know whether we must run the newly created workitem.
#
# rows = transition trigger \ colums = campaign mode
#
# test test_realtime manual normal (active)
# time Y N N N
# cosmetic N N N N
- # auto Y Y Y Y
- #
+ # auto Y Y N Y
+ #
- run = transition.trigger == 'auto' \
+ run = (transition.trigger == 'auto' \
+ and campaign_mode != 'manual') \
or (transition.trigger == 'time' \
and campaign_mode == 'test')
if run:
@@ -671,8 +689,10 @@ class marketing_campaign_workitem(osv.osv):
}
elif wi_obj.activity_id.type == 'paper':
- datas = {'ids': [wi_obj.res_id],
- 'model': wi_obj.object_id.model}
+ datas = {
+ 'ids': [wi_obj.res_id],
+ 'model': wi_obj.object_id.model
+ }
res = {
'type' : 'ir.actions.report.xml',
'report_name': wi_obj.activity_id.report_id.report_name,
@@ -689,9 +709,9 @@ class email_template(osv.osv):
_defaults = {
'object_name': lambda obj, cr, uid, context: context.get('object_id',False),
}
-
+
# TODO: add constraint to prevent disabling / disapproving an email account used in a running campaign
-
+
email_template()
class report_xml(osv.osv):
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index a81b15f0e8c..1c0e4075b13 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -28,6 +28,7 @@
+
@@ -59,7 +60,7 @@
-
+
@@ -148,7 +149,7 @@
-
+
@@ -235,7 +236,7 @@
-
+
@@ -249,9 +250,6 @@
-
diff --git a/addons/marketing_campaign/marketing_campaign_workflow.xml b/addons/marketing_campaign/marketing_campaign_workflow.xml
index 0713ac8c7f5..4db60dbfa27 100644
--- a/addons/marketing_campaign/marketing_campaign_workflow.xml
+++ b/addons/marketing_campaign/marketing_campaign_workflow.xml
@@ -15,6 +15,8 @@
True
draft
+ function
+ write({'state':'draft'})
@@ -34,7 +36,7 @@
cancel
- True
+
function
state_cancel_set()
@@ -57,7 +59,19 @@
state_cancel_set
-
+
+
+
+
+ state_draft_set
+
+
+
+
+
+ state_draft_set
+
+
@@ -94,6 +108,7 @@
cancel
function
state_cancel_set()
+
@@ -120,5 +135,11 @@
state_draft_set
+
+
+
+
+ state_draft_set
+
diff --git a/addons/marketing_campaign/report/campaign_analysis.py b/addons/marketing_campaign/report/campaign_analysis.py
index 4853cb65e2c..f4a902f97cc 100644
--- a/addons/marketing_campaign/report/campaign_analysis.py
+++ b/addons/marketing_campaign/report/campaign_analysis.py
@@ -21,7 +21,7 @@
import tools
from osv import fields, osv
-class campaign_analysis(osv.osv): #{{{
+class campaign_analysis(osv.osv):
_name = "campaign.analysis"
_description = "Campaign Analysis"
_auto = False
@@ -43,22 +43,22 @@ class campaign_analysis(osv.osv): #{{{
return result
_columns = {
'year': fields.char('Year', size=4, readonly=True),
- 'month':fields.selection([('01','January'), ('02','February'),
- ('03','March'), ('04','April'),('05','May'), ('06','June'),
+ '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')],
+ ('10','October'), ('11','November'), ('12','December')],
'Month', readonly=True),
'date': fields.date('Date', readonly=True),
- 'campaign_id': fields.many2one('marketing.campaign', 'Campaign',
+ 'campaign_id': fields.many2one('marketing.campaign', 'Campaign',
readonly=True),
'activity_id': fields.many2one('marketing.campaign.activity', 'Activity',
readonly=True),
- 'segment_id': fields.many2one('marketing.campaign.segment', 'Segment',
+ 'segment_id': fields.many2one('marketing.campaign.segment', 'Segment',
readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
'country_id': fields.related('partner_id','address', 'country_id',
type='many2one', relation='res.country',string='Country'),
- 'total_cost' : fields.function(_total_cost, string='Cost', method=True,
+ 'total_cost' : fields.function(_total_cost, string='Cost', method=True,
type="float" ),
'revenue': fields.float('Revenue',digits=(16,2),readonly=True),
'count' : fields.integer('# of Actions', readonly=True),
@@ -89,4 +89,4 @@ class campaign_analysis(osv.osv): #{{{
wi.date::date
)
""")
-campaign_analysis() #}}}
+campaign_analysis()
diff --git a/addons/marketing_campaign/report/campaign_analysis_view.xml b/addons/marketing_campaign/report/campaign_analysis_view.xml
index ec92ec83326..94d31fcb441 100644
--- a/addons/marketing_campaign/report/campaign_analysis_view.xml
+++ b/addons/marketing_campaign/report/campaign_analysis_view.xml
@@ -63,6 +63,7 @@
+
diff --git a/addons/marketing_campaign/security/ir.model.access.csv b/addons/marketing_campaign/security/ir.model.access.csv
index 903ca7ac72a..ae5cad3d706 100644
--- a/addons/marketing_campaign/security/ir.model.access.csv
+++ b/addons/marketing_campaign/security/ir.model.access.csv
@@ -8,3 +8,6 @@
"access_marketing_campaign_workitem_all","marketing.campaign.workitem","model_marketing_campaign_workitem","base.group_user",1,0,0,0
"access_email_template_user","email.template","model_email_template","base.res_groups_email_template_admin",1,1,1,1
"access_email_template_account_user","email_template.account.user","email_template.model_email_template_account","base.res_groups_email_template_admin",1,1,1,1
+"access_marketing_campaign_system","marketing.campaign system","model_marketing_campaign","base.group_system",1,0,0,0
+"access_marketing_campaign_segment_system","marketing.campaign.segment system","model_marketing_campaign_segment","base.group_system",1,0,0,0
+"access_marketing_campaign_workitem_system","marketing.campaign.workitem system","model_marketing_campaign_workitem","base.group_system",1,0,0,0
diff --git a/addons/marketing_campaign/security/marketing_campaign_security.xml b/addons/marketing_campaign/security/marketing_campaign_security.xml
index b9267694818..bb933fdcdc3 100644
--- a/addons/marketing_campaign/security/marketing_campaign_security.xml
+++ b/addons/marketing_campaign/security/marketing_campaign_security.xml
@@ -5,9 +5,6 @@
Marketing / User
-
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..cf1870852fb
--- /dev/null
+++ b/addons/marketing_campaign_crm_demo/i18n/fr.po
@@ -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/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 6b78a82c977..88b12552d60 100644
--- a/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
+++ b/addons/marketing_campaign_crm_demo/marketing_campaign_demo.xml
@@ -41,13 +41,13 @@
- Hello,Thanks for generous interest you have shown in the open ERP.Regards,OpenERP Team,
+ Hello,Thanks for generous interest you have shown in the openERP.Regards,OpenERP Team,
mako
For OpenERP OnDemand Free Trial 2010
crm.lead
- Propose to subscribe to the Open ERP Discovery Day on May 2010
+ Propose to subscribe to the OpenERP Discovery Day on May 2010
info@tinyerp.com
@@ -55,46 +55,46 @@
Hello,We have very good offer that might suit you.
- We propose you to subscribe to the Open ERP Discovery Day on May 2010.
+ We propose you to subscribe to the OpenERP Discovery Day on May 2010.
If any further information required kindly revert back.
We really appreciate your co-operation on this.
Regards,OpenERP Team,
mako
- For Open ERP Discovery Day on May 2010
+ For OpenERP Discovery Day on May 2010
crm.lead
- Thanks for subscribing to the Open ERP Discovery Day
+ Thanks for subscribing to the OpenERP Discovery Day
info@tinyerp.com
- Hello,Thanks for showing intrest and for subscribing to the Open ERP Discovery Day.
+ Hello,Thanks for showing intrest and for subscribing to the OpenERP Discovery Day.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
mako
- For Open ERP Discovery Day
+ For OpenERP Discovery Day
crm.lead
- Thanks for buying the Open ERP book
+ Thanks for buying the OpenERP book
info@tinyerp.com
- Hello,Thanks for showing intrest and buying the Open ERP book.
+ Hello,Thanks for showing intrest and buying the OpenERP book.
If any further information required kindly revert back.
I really appreciate your co-operation on this.
Regards,OpenERP Team,
mako
- For Open ERP book
+ For OpenERP book
crm.lead
@@ -203,20 +203,20 @@
- Propose to subscribe to the Open ERP Discovery Day on May 2010
+ Propose to subscribe to the OpenERP Discovery Day on May 2010
- Thanks for subscribing to the Open ERP Discovery Day
+ Thanks for subscribing to the OpenERP Discovery Day
- Propose to buy the Open ERP Book
+ Propose to buy the OpenERP Book
@@ -225,7 +225,7 @@
- Thanks for buying the Open ERP book
+ Thanks for buying the OpenERP book
diff --git a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
index 566bf497fd7..2b482867694 100644
--- a/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
+++ b/addons/marketing_campaign_mailchimp/marketing_campaign_mailchimp.py
@@ -29,22 +29,22 @@ mailchimp_url = 'http://%s.api.mailchimp.com/1.2'
class mailchimp_account(osv.osv):
_name = "mailchimp.account"
-
+
_columns = {
- 'name': fields.char('Account Name', size=64),
- 'username': fields.char('Username', size=64, required=True),
- 'password': fields.char('Password', size=64, required=True),
- 'apikey': fields.char('API Key', size=128),
- 'data_center': fields.selection([('us1', 'US1'), ('us2', 'US2'),
- ('uk1', 'UK1')], 'Data Center'),
- 'state': fields.selection([('draft', 'Draft'), ('approved', 'Approved'),
- ('cancelled', 'Cancelled')], 'State', readonly=True)
- }
-
+ 'name': fields.char('Account Name', size=64),
+ 'username': fields.char('Username', size=64, required=True),
+ 'password': fields.char('Password', size=64, required=True),
+ 'apikey': fields.char('API Key', size=128),
+ 'data_center': fields.selection([('us1', 'US1'), ('us2', 'US2'),
+ ('uk1', 'UK1')], 'Data Center'),
+ 'state': fields.selection([('draft', 'Draft'), ('approved', 'Approved'),
+ ('cancelled', 'Cancelled')], 'State', readonly=True)
+ }
+
_defaults = {
- 'state': lambda *a: 'draft'
- }
-
+ 'state': lambda *a: 'draft'
+ }
+
def get_response(self, cr, uid, mailchimp_id, method, params={}):
mailchimp_account = self.browse(cr, uid, mailchimp_id)
params['output'] = 'json'
@@ -57,7 +57,7 @@ class mailchimp_account(osv.osv):
params = urllib.urlencode(params, doseq=True)
response = urllib2.urlopen(url, params)
return json.loads(response.read())
-
+
def button_approve(self, cr, uid, ids, context):
acc_obj = self.browse(cr, uid, ids)[0]
vals = {}
@@ -71,32 +71,34 @@ class mailchimp_account(osv.osv):
vals['apikey'] = response
vals['state'] = 'approved'
self.write(cr, uid, ids, vals)
- else :
+ else :
raise osv.except_osv('Error!!!',
"Can't approved accoutnt : %s"%response['error'])
return True
-
+
def button_cancel(self, cr, uid, ids, context):
self.write(cr, uid, ids, {'state': 'cancelled'})
return True
-
+
def add_partner_list(self, cr, uid, account_id, list_id, partner_ids):
vals = {} # just dictionary with partner_id and updated in list or not
for partner in self.pool.get('res.partner').browse(cr, uid, partner_ids):
- params = {'id' : list_id,
+ params = {
+ 'id' : list_id,
'email_address' : partner.email,
'email_type':'text',
- 'merge_vars[FNAME]':partner.name ,
+ 'merge_vars[FNAME]':partner.name ,
'merge_vars[date]' : time.strftime('%Y-%m-%d'),
'merge_vars[phone]' : partner.phone,
'merge_vars[website]' : partner.website,
'merge_vars[address][country]' : partner.country.code,
'merge_vars[address][city]' : partner.city,
- 'double_optin':False}
+ 'double_optin':False
+ }
vals[partner.id] = self.get_response(cr, uid, account_id,
'listSubscribe', params)
return vals
-
+
mailchimp_account()
class mailchimp_list(osv.osv_memory):
@@ -115,28 +117,28 @@ class marketing_campaign(osv.osv):
_inherit = "marketing.campaign"
_columns = {
- 'mailchimp_account_id': fields.many2one(
- 'mailchimp.account', 'Account'),
- 'mailchimp_campaign': fields.char('campaign', size=64),
+ 'mailchimp_account_id': fields.many2one(
+ 'mailchimp.account', 'Account'),
+ 'mailchimp_campaign': fields.char('campaign', size=64),
}
marketing_campaign()
-
-class marketing_campaign_activity(osv.osv):
+
+class marketing_campaign_activity(osv.osv):
_inherit = "marketing.campaign.activity"
_columns = {
- 'mailchimp_account_id': fields.many2one(
- 'mailchimp.account', 'Account'),
- 'mailchimp_list': fields.char('List', size=64),
+ 'mailchimp_account_id': fields.many2one(
+ 'mailchimp.account', 'Account'),
+ 'mailchimp_list': fields.char('List', size=64),
}
-
+
def onchange_mailchimp(self, cr, uid, ids, mailchimp_account_id):
if mailchimp_account_id:
return {'value':{'mailchimp_list':''}}
return {'value':{}}
-
- def onchange_mailchimp_list(self, cr, uid, ids, mailchimp_account_id,
+
+ def onchange_mailchimp_list(self, cr, uid, ids, mailchimp_account_id,
mailchimp_list):
if mailchimp_account_id and mailchimp_list:
lists = self.pool.get('mailchimp.account').get_response(cr,
@@ -154,7 +156,7 @@ class marketing_campaign_activity(osv.osv):
mc_acc_obj = self.pool.get('mailchimp.account')
lists = mc_acc_obj.get_response(cr, uid, mailchimp_account_id, 'lists')
list_id = ''
- for l in lists :
+ for l in lists :
if l['name'] == list_name:
list_id = l['id']
break;
@@ -163,34 +165,38 @@ class marketing_campaign_activity(osv.osv):
model_obj = self.pool.get(res_model).browse(cr, uid, res_id)
params ={}
if res_model == 'res.partner' :
- params.update({'email_address' : model_obj.email,
- 'merge_vars[FNAME]':model_obj.name and model_obj.name or '',
- 'merge_vars[website]' : model_obj.website,
- 'merge_vars[address][country]' : model_obj.country.code,
- })
+ params.update({
+ 'email_address' : model_obj.email,
+ 'merge_vars[FNAME]':model_obj.name and model_obj.name or '',
+ 'merge_vars[website]' : model_obj.website,
+ 'merge_vars[address][country]' : model_obj.country.code,
+ })
elif res_model == 'crm.lead' :
- params.update({'email_address' : model_obj.email_from,
- 'merge_vars[FNAME]':model_obj.partner_name and \
- model_obj.partner_name or '',
- 'merge_vars[address][country]' : model_obj.country_id and \
- model_obj.country_id.code or ''
- })
+ params.update({
+ 'email_address' : model_obj.email_from,
+ 'merge_vars[FNAME]':model_obj.partner_name and \
+ model_obj.partner_name or '',
+ 'merge_vars[address][country]' : model_obj.country_id and \
+ model_obj.country_id.code or ''
+ })
if params['email_address'] :
user = mc_acc_obj.get_response(cr, uid, mailchimp_account_id,
- 'listMemberInfo',
- {'id' : list_id,
- 'email_address': params['email_address']})
- # if there s no user with the specify email it will return error code
+ 'listMemberInfo', {
+ 'id' : list_id,
+ 'email_address': params['email_address']
+ })
+ # if there s no user with the specify email it will return error code
# and thus we add that user otherwise user is alredy subscribe and there
# is no need to subscribe user again
if 'error' in user:
- params.update({'id' : list_id,
+ params.update({
+ 'id' : list_id,
'email_type':'text',
'double_optin':False,
'merge_vars[date]' : time.strftime('%Y-%m-%d'),
'merge_vars[address][city]' : model_obj.city and model_obj.city or '',
'merge_vars[phone]' : model_obj.phone and model_obj.phone or '',
- })
+ })
mc_acc_obj.get_response(cr, uid, mailchimp_account_id, 'listSubscribe', params)
# TODO handle mailchimp error
return True
diff --git a/addons/marketing_campaign_mailchimp/security/marketing_security.xml b/addons/marketing_campaign_mailchimp/security/marketing_security.xml
index 0a6393a367a..59cbf65a63d 100644
--- a/addons/marketing_campaign_mailchimp/security/marketing_security.xml
+++ b/addons/marketing_campaign_mailchimp/security/marketing_security.xml
@@ -8,4 +8,3 @@
-
diff --git a/addons/marketing_campaign_mailchimp/wizard/create_list.py b/addons/marketing_campaign_mailchimp/wizard/create_list.py
index 0a490787de5..03a69a8ac89 100755
--- a/addons/marketing_campaign_mailchimp/wizard/create_list.py
+++ b/addons/marketing_campaign_mailchimp/wizard/create_list.py
@@ -38,20 +38,17 @@ class create_list(osv.osv_memory):
'Partner'),
}
-
+
def onchange_mailchimp_account_id(self, cr, uid, ids, mailchimp_account_id,
action):
- print mailchimp_account_id,action,
- return {'value':{}}
-
+ return {'value':{}}
+
def create_list(self, cr, uid, ids, context=None):
create_list_obj = self.browse(cr, uid, ids[0])
- print create_list_obj.id
mailchimp_account_obj = self.pool.get('mailchimp.account')
account_id = create_list_obj.mailchimp_account_id
lists = mailchimp_account_obj.get_response(cr, uid, account_id.id, 'lists')
lists = dict([(l['name'],l['id']) for l in lists])
- print lists
if create_list_obj.list_name not in lists.keys():
raise osv.except_osv(_('UserError'),
_('There is no list define in account %s') % (account_id.name))
diff --git a/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml b/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
index f15826aeaea..d978527f3e3 100755
--- a/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
+++ b/addons/marketing_campaign_mailchimp/wizard/create_list_view.xml
@@ -11,9 +11,6 @@
-
diff --git a/addons/membership/demo_data.xml b/addons/membership/demo_data.xml
index c900bb4eacc..6031e76d3da 100644
--- a/addons/membership/demo_data.xml
+++ b/addons/membership/demo_data.xml
@@ -164,18 +164,4 @@ result = price_unit * 0.10"" name="python_compute"/>
-
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/mn.po b/addons/membership/i18n/mn.po
new file mode 100644
index 00000000000..8dd1286aef5
--- /dev/null
+++ b/addons/membership/i18n/mn.po
@@ -0,0 +1,527 @@
+# Mongolian 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-14 08:44+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-15 06:18+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: membership
+#: model:process.transition,name:membership.process_transition_invoicetoassociate0
+msgid "invoice to associate"
+msgstr ""
+
+#. module: membership
+#: model:process.process,name:membership.process_process_membershipprocess0
+msgid "Membership Process"
+msgstr "Гишүүнчлэх процесс"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Paid Member"
+msgstr "Төлсөн гишүүн"
+
+#. module: membership
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Үйлдлийн тодорхойлолтод буруу моделийн нэр байна."
+
+#. module: membership
+#: field:report.partner_member.year,currency:0
+#: field:report.partner_member.year_new,currency:0
+msgid "Currency"
+msgstr "Валют"
+
+#. module: membership
+#: model:process.node,note:membership.process_node_setassociation0
+msgid "Set an associate member of partner."
+msgstr ""
+
+#. module: membership
+#: model:process.transition,note:membership.process_transition_invoicetopaid0
+msgid "Invoice is be paid."
+msgstr ""
+
+#. module: membership
+#: model:process.node,note:membership.process_node_membershipproduct0
+msgid "Define membership product."
+msgstr ""
+
+#. module: membership
+#: field:product.product,membership_date_to:0
+msgid "Date to"
+msgstr ""
+
+#. module: membership
+#: model:process.transition,name:membership.process_transition_waitingtoinvoice0
+msgid "Waiting to invoice"
+msgstr "Нэхэмжлэл хүлээж байгаа"
+
+#. module: membership
+#: model:process.transition,name:membership.process_transition_producttomember0
+msgid "Product to member"
+msgstr ""
+
+#. module: membership
+#: field:res.partner,associate_member:0
+msgid "Associate member"
+msgstr ""
+
+#. module: membership
+#: model:process.node,note:membership.process_node_associatedmember0
+msgid "Member is associated."
+msgstr ""
+
+#. module: membership
+#: model:process.transition,note:membership.process_transition_associationpartner0
+msgid "Associated partner."
+msgstr ""
+
+#. module: membership
+#: constraint:account.account:0
+msgid "Error ! You can not create recursive accounts."
+msgstr "Алдаа! Та цикл хэлбэрийн данс үүсгэх боломжгүй."
+
+#. module: membership
+#: constraint:account.invoice:0
+msgid "Error: BVR reference is required."
+msgstr ""
+
+#. module: membership
+#: field:product.product,membership_date_from:0
+msgid "Date from"
+msgstr ""
+
+#. module: membership
+#: field:membership.membership_line,partner:0
+msgid "Partner"
+msgstr "Харилцагч"
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_free
+#: model:ir.ui.menu,name:membership.menu_members_free
+msgid "Free members"
+msgstr "Чөлөөт гишүүд"
+
+#. module: membership
+#: model:process.transition,name:membership.process_transition_invoicetopaid0
+msgid "Invoice to paid"
+msgstr ""
+
+#. module: membership
+#: view:res.partner:0
+msgid "Partners"
+msgstr "Харилцагч"
+
+#. module: membership
+#: field:membership.membership_line,date_from:0
+msgid "From"
+msgstr ""
+
+#. module: membership
+#: constraint:membership.membership_line:0
+msgid "Error, this membership product is out of date"
+msgstr "Алдаа, энэ бараа хугацаа хэтэрсэн байна"
+
+#. module: membership
+#: wizard_button:wizard_invoice_membership,init,ok:0
+msgid "Confirm"
+msgstr "Бататгах"
+
+#. module: membership
+#: model:process.transition.action,name:membership.process_transition_action_create0
+msgid "Create"
+msgstr "Үүсгэх"
+
+#. module: membership
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Дэлгэцийн XML алдаатай!"
+
+#. module: membership
+#: model:ir.model,name:membership.model_membership_membership_line
+msgid "Member line"
+msgstr ""
+
+#. module: membership
+#: field:membership.membership_line,state:0
+msgid "State"
+msgstr "Төлөв"
+
+#. module: membership
+#: field:res.partner,membership_start:0
+msgid "Start membership date"
+msgstr "Гишүүнчлэл эхлэх огноо"
+
+#. module: membership
+#: model:process.node,name:membership.process_node_paidmember0
+msgid "Paid member"
+msgstr "Төлсөн гишүүн"
+
+#. module: membership
+#: model:ir.model,name:membership.model_report_partner_member_year
+#: model:ir.ui.menu,name:membership.menu_report_partner_member_year
+#: view:report.partner_member.year:0
+msgid "Membership by Years"
+msgstr "Гишүүнчлэл, жилээр"
+
+#. module: membership
+#: model:ir.ui.menu,name:membership.menu_reporting
+msgid "Reporting"
+msgstr "Тайлан"
+
+#. module: membership
+#: view:res.partner:0
+msgid "Members"
+msgstr "Гишүүд"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Non Member"
+msgstr "Гишүүн бус"
+
+#. module: membership
+#: model:process.node,note:membership.process_node_invoicedmember0
+msgid "Open invoice."
+msgstr "Нэхэмжлэл нээх."
+
+#. module: membership
+#: model:ir.ui.menu,name:membership.menu_conf
+msgid "Configuration"
+msgstr "Тохиргоо"
+
+#. module: membership
+#: model:process.transition,note:membership.process_transition_producttomember0
+msgid "Define product for membership."
+msgstr ""
+
+#. module: membership
+#: model:process.transition,note:membership.process_transition_invoicetoassociate0
+msgid "Invoiced member may be Associated member."
+msgstr ""
+
+#. module: membership
+#: constraint:product.template:0
+msgid "Error: UOS must be in a different category than the UOM"
+msgstr "Алдаа: Борлуулах нэгжийн ангилал хэмжих нэгжийнхээс өөр байх ёстой"
+
+#. module: membership
+#: model:ir.ui.menu,name:membership.menu_membership_products
+#: view:product.product:0
+msgid "Membership products"
+msgstr ""
+
+#. module: membership
+#: model:ir.ui.menu,name:membership.menu_members_waiting
+msgid "Future members (invoice not confirmed)"
+msgstr "Ирээдүйн гишүүд (нэхэмжлэл бататгаагүй)"
+
+#. module: membership
+#: model:process.node,name:membership.process_node_setassociation0
+msgid "Set association"
+msgstr ""
+
+#. module: membership
+#: model:product.template,name:membership.member_product_1_product_template
+msgid "Membership Product - 2"
+msgstr "Гишүүнчлэлийн бараа - 2"
+
+#. module: membership
+#: model:product.template,name:membership.member_product_0_product_template
+msgid "Membership Product - 1"
+msgstr "Гишүүнчлэлийн бараа - 1"
+
+#. module: membership
+#: field:report.partner_member.year,canceled_amount:0
+#: field:report.partner_member.year,canceled_number:0
+#: field:report.partner_member.year_new,canceled_amount:0
+#: field:report.partner_member.year_new,canceled_number:0
+msgid "Canceled"
+msgstr "Цуцлагдсан"
+
+#. module: membership
+#: model:product.pricelist,name:membership.list1m
+msgid "Member Sale Pricelist"
+msgstr ""
+
+#. module: membership
+#: field:report.partner_member.year,invoiced_amount:0
+#: field:report.partner_member.year,invoiced_number:0
+#: field:report.partner_member.year_new,invoiced_amount:0
+#: field:report.partner_member.year_new,invoiced_number:0
+msgid "Invoiced"
+msgstr "Нэхэмжилсэн"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Free Member"
+msgstr "Чөлөөт гишүүн"
+
+#. module: membership
+#: model:product.pricelist.version,name:membership.ver1m
+msgid "Member Sale Pricelist Version"
+msgstr ""
+
+#. module: membership
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+"Алдаа: Үндсэн нэгж худалдан авах нэгж хоёул нэг ангилалд хамаарах ёстой."
+
+#. module: membership
+#: help:res.partner,membership_amount:0
+msgid "The price negociated by the partner"
+msgstr ""
+
+#. module: membership
+#: model:process.node,name:membership.process_node_associatedmember0
+msgid "Associated member"
+msgstr ""
+
+#. module: membership
+#: constraint:account.invoice:0
+msgid "Error: Invalid Bvr Number (wrong checksum)."
+msgstr ""
+
+#. module: membership
+#: field:res.partner,membership_cancel:0
+msgid "Cancel membership date"
+msgstr ""
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_products
+msgid "Membership Products"
+msgstr "Гишүүнчлэлийн бараанууд"
+
+#. module: membership
+#: model:process.node,note:membership.process_node_paidmember0
+msgid "Membership invoice paid."
+msgstr ""
+
+#. module: membership
+#: field:report.partner_member.year,paid_amount:0
+#: field:report.partner_member.year,paid_number:0
+#: field:report.partner_member.year_new,paid_amount:0
+#: field:report.partner_member.year_new,paid_number:0
+msgid "Paid"
+msgstr "Төлсөн"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Invoiced Member"
+msgstr "Нэхэмжлэгдсэн гишүүн"
+
+#. module: membership
+#: model:ir.module.module,shortdesc:membership.module_meta_information
+#: model:ir.ui.menu,name:membership.menu_membership
+#: view:product.product:0
+#: field:product.product,membership:0
+#: view:res.partner:0
+#: field:res.partner,member_lines:0
+msgid "Membership"
+msgstr "Гишүүнчлэл"
+
+#. module: membership
+#: help:product.product,membership:0
+msgid "Specify if this product is a membership product"
+msgstr "Энэ бараа гишүүнчлэлийн бараа эсэхийг заана"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Waiting Member"
+msgstr "Хүлээж байгаа гишүүн"
+
+#. module: membership
+#: model:process.transition,name:membership.process_transition_associationpartner0
+msgid "Association Partner"
+msgstr ""
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_invoiced
+#: model:ir.ui.menu,name:membership.menu_members_invoiced
+msgid "Invoiced members"
+msgstr ""
+
+#. module: membership
+#: constraint:product.pricelist.version:0
+msgid "You cannot have 2 pricelist versions that overlap!"
+msgstr "Огтлолцсон 2 үнийн жагсаалт байж болохгүй!"
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_old
+#: model:ir.ui.menu,name:membership.menu_members_old
+msgid "Old members"
+msgstr "Хуучин гишүүд"
+
+#. module: membership
+#: field:res.partner,membership_amount:0
+msgid "Membership amount"
+msgstr "Гишүүнчлэлийн дүн"
+
+#. module: membership
+#: wizard_view:wizard_invoice_membership,init:0
+msgid "Choose invoice details"
+msgstr "Нэхэмжлэлийн дэлгэрэнгүй сонгох"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Old Member"
+msgstr "Хуучин гишүүн"
+
+#. module: membership
+#: field:membership.membership_line,date_to:0
+msgid "To"
+msgstr ""
+
+#. module: membership
+#: field:report.partner_member.year,waiting_amount:0
+#: field:report.partner_member.year,waiting_number:0
+#: field:report.partner_member.year_new,waiting_amount:0
+#: field:report.partner_member.year_new,waiting_number:0
+msgid "Waiting"
+msgstr "Хүлээж байна"
+
+#. module: membership
+#: model:process.transition,note:membership.process_transition_waitingtoinvoice0
+msgid "Draft invoice is now open."
+msgstr "Ноорог нэхэмжлэл нээгдлээ"
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_waiting
+msgid "Future members"
+msgstr "Ирээдүйн гишүүд"
+
+#. module: membership
+#: wizard_button:wizard_invoice_membership,init,end:0
+msgid "Cancel"
+msgstr "Цуцлах"
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_associated
+#: model:ir.ui.menu,name:membership.menu_members_associated
+msgid "Associated members"
+msgstr ""
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members_paid
+#: model:ir.ui.menu,name:membership.menu_members_paid
+msgid "Paid members"
+msgstr "Төлсөн гишүүд"
+
+#. module: membership
+#: view:product.product:0
+msgid "Information"
+msgstr "Мэдээлэл"
+
+#. module: membership
+#: field:membership.membership_line,account_invoice_line:0
+msgid "Account Invoice line"
+msgstr ""
+
+#. module: membership
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
+
+#. module: membership
+#: model:process.node,note:membership.process_node_waitingmember0
+msgid "Draft invoice for membership."
+msgstr "Гишүүнчлэлийн ноорог нэхэмжлэл"
+
+#. module: membership
+#: selection:membership.membership_line,state:0
+#: selection:res.partner,membership_state:0
+msgid "Canceled Member"
+msgstr "Цуцлагдсан гишүүн"
+
+#. module: membership
+#: model:product.price.type,name:membership.product_price_type_memberprice
+#: field:product.template,member_price:0
+msgid "Member Price"
+msgstr "Гишүүний үнэ"
+
+#. module: membership
+#: field:res.partner,free_member:0
+msgid "Free member"
+msgstr "Чөлөөт гишүүн"
+
+#. module: membership
+#: field:res.partner,membership_stop:0
+msgid "Stop membership date"
+msgstr "Гишүүнчлэлийг зогсоох огноо"
+
+#. module: membership
+#: model:ir.actions.act_window,name:membership.action_membership_members
+#: model:ir.ui.menu,name:membership.menu_members
+msgid "Current members"
+msgstr "Одоогийн гишүүд"
+
+#. module: membership
+#: model:ir.model,name:membership.model_report_partner_member_year_new
+#: model:ir.ui.menu,name:membership.menu_report_partner_member_year_new
+#: view:report.partner_member.year_new:0
+msgid "New Membership by Years"
+msgstr ""
+
+#. module: membership
+#: model:process.node,name:membership.process_node_invoicedmember0
+msgid "Invoiced member"
+msgstr ""
+
+#. module: membership
+#: field:membership.membership_line,date_cancel:0
+msgid "Cancel date"
+msgstr "Цуцлах огноо"
+
+#. module: membership
+#: model:process.node,name:membership.process_node_waitingmember0
+msgid "Waiting member"
+msgstr "Хүлээж байгаа гишүүн"
+
+#. module: membership
+#: model:ir.actions.wizard,name:membership.wizard_invoice_membership
+msgid "Invoice Membership"
+msgstr ""
+
+#. module: membership
+#: model:process.node,name:membership.process_node_membershipproduct0
+#: wizard_field:wizard_invoice_membership,init,product:0
+msgid "Membership product"
+msgstr "Гишүүнчлэлийн бараа"
+
+#. module: membership
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Алдаа: Буруу зураасан код"
+
+#. module: membership
+#: field:report.partner_member.year,year:0
+#: field:report.partner_member.year_new,year:0
+msgid "Year"
+msgstr "Жил"
+
+#. module: membership
+#: field:res.partner,membership_state:0
+msgid "Current membership state"
+msgstr ""
diff --git a/addons/membership/i18n/tr.po b/addons/membership/i18n/tr.po
index eeb2f203946..722acbae7d9 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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:29+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-12 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
diff --git a/addons/membership/i18n/zh_TW.po b/addons/membership/i18n/zh_TW.po
index 2ca7b003be0..ad9e02176d7 100644
--- a/addons/membership/i18n/zh_TW.po
+++ b/addons/membership/i18n/zh_TW.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-01-30 13:20+0000\n"
+"PO-Revision-Date: 2010-08-13 13:26+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-12 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:18+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 0fda9f581dc..7bb84ef9ebb 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -37,14 +37,14 @@ STATE = [
]
STATE_PRIOR = {
- 'none' : 0,
- 'canceled' : 1,
- 'old' : 2,
- 'waiting' : 3,
- 'invoiced' : 4,
- 'free' : 6,
- 'paid' : 7
- }
+ 'none' : 0,
+ 'canceled' : 1,
+ 'old' : 2,
+ 'waiting' : 3,
+ 'invoiced' : 4,
+ 'free' : 6,
+ 'paid' : 7
+}
class membership_line(osv.osv):
'''Member line'''
@@ -81,7 +81,7 @@ class membership_line(osv.osv):
@param ids: List of Membership Line IDs
@param name: Field Name
@param context: A standard dictionary for contextual values
- @param return: Dictionary of state Value
+ @param return: Dictionary of state Value
"""
res = {}
for line in self.browse(cr, uid, ids):
@@ -124,21 +124,21 @@ class membership_line(osv.osv):
_description = __doc__
_name = 'membership.membership_line'
_columns = {
- 'partner': fields.many2one('res.partner', 'Partner', ondelete='cascade', select=1),
- 'membership_id': fields.many2one('product.product', string="Membership", required=True),
- 'date_from': fields.date('From', readonly=True),
- 'date_to': fields.date('To', readonly=True),
- 'date_cancel' : fields.date('Cancel date'),
- 'date': fields.date('Join Date'),
- 'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True),
- 'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
- 'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
- 'state': fields.function(_state, method=True, string='State', type='selection', selection=STATE),
+ 'partner': fields.many2one('res.partner', 'Partner', ondelete='cascade', select=1),
+ 'membership_id': fields.many2one('product.product', string="Membership", required=True),
+ 'date_from': fields.date('From', readonly=True),
+ 'date_to': fields.date('To', readonly=True),
+ 'date_cancel' : fields.date('Cancel date'),
+ 'date': fields.date('Join Date'),
+ 'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True),
+ 'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
+ 'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
+ 'state': fields.function(_state, method=True, string='State', type='selection', selection=STATE),
}
_rec_name = 'partner'
_order = 'id desc'
_constraints = [
- (_check_membership_date, 'Error, this membership product is out of date', [])
+ (_check_membership_date, 'Error, this membership product is out of date', [])
]
membership_line()
@@ -182,7 +182,7 @@ class Partner(osv.osv):
@param ids: List of Partner IDs
@param name: Field Name
@param context: A standard dictionary for contextual values
- @param return: Dictionary of Membership state Value
+ @param return: Dictionary of Membership state Value
"""
res = {}
for id in ids:
@@ -239,28 +239,28 @@ class Partner(osv.osv):
res_state = self._membership_state(cr, uid, [partner_data.associate_member.id], name, args, context)
res[id] = res_state[partner_data.associate_member.id]
return res
-
+
def _membership_date(self, cr, uid, ids, name, args, context=None):
-
+
"""Return date of membership"""
-
+
name = name[0]
res = {}
member_line_obj = self.pool.get('membership.membership_line')
-
+
for partner in self.browse(cr, uid, ids):
-
+
if partner.associate_member:
partner_id = partner.associate_member.id
else:
partner_id = partner.id
-
- res[partner.id]={
- 'membership_start': False,
- 'membership_stop': False,
- 'membership_cancel': False
- }
-
+
+ res[partner.id] = {
+ 'membership_start': False,
+ 'membership_stop': False,
+ 'membership_cancel': False
+ }
+
if name == 'membership_start':
line_id = member_line_obj.search(cr, uid, [('partner', '=', partner_id)],
limit=1, order='date_from')
@@ -268,13 +268,13 @@ class Partner(osv.osv):
res[partner.id]['membership_start'] = member_line_obj.read(cr, uid, line_id[0],
['date_from'])['date_from']
- if name == 'membership_stop':
+ if name == 'membership_stop':
line_id1 = member_line_obj.search(cr, uid, [('partner', '=', partner_id)],
limit=1, order='date_to desc')
if line_id1:
res[partner.id]['membership_stop'] = member_line_obj.read(cr, uid, line_id1[0],
['date_to'])['date_to']
- if name == 'membership_cancel':
+ if name == 'membership_cancel':
if partner.membership_state == 'canceled':
line_id2 = member_line_obj.search(cr, uid, [('partner', '=', partner.id)],limit=1, order='date_cancel')
if line_id2:
@@ -366,7 +366,7 @@ class Partner(osv.osv):
default = default.copy()
default['member_lines'] = []
return super(Partner, self).copy(cr, uid, id, default, context)
-
+
def create_membership_invoice(self, cr, uid, ids, product_id=None, datas=None, context=None):
""" Create Customer Invoice of Membership for partners.
@param datas: datas has dictionary value which consist Id of Membership product and Cost Amount of Membership.
@@ -397,8 +397,8 @@ class Partner(osv.osv):
line_value = {
'product_id' : product_id,
}
-
- line_dict = invoice_line_obj.product_id_change(cr, uid, {},
+
+ line_dict = invoice_line_obj.product_id_change(cr, uid, {},
product_id, False, quantity, '', 'out_invoice', partner.id, fpos_id, price_unit=amount, context=context)
line_value.update(line_dict['value'])
if line_value.get('invoice_line_tax_id', False):
@@ -427,7 +427,7 @@ Partner()
class product_template(osv.osv):
_inherit = 'product.template'
_columns = {
- 'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')),
+ 'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')),
}
product_template()
@@ -435,7 +435,7 @@ class Product(osv.osv):
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
model_obj = self.pool.get('ir.model.data')
-
+
if ('product' in context) and (context['product']=='membership_product'):
model_data_ids_form = model_obj.search(cr,user,[('model','=','ir.ui.view'),('name','in',['membership_products_form','membership_products_tree'])])
resource_id_form = model_obj.read(cr, user, model_data_ids_form, fields=['res_id','name'])
@@ -451,15 +451,14 @@ class Product(osv.osv):
'''Product'''
_inherit = 'product.product'
_columns = {
- 'membership': fields.boolean('Membership', help='Specify if this product is a membership product'),
- 'membership_date_from': fields.date('Date from', help='Active Membership since this date'),
- 'membership_date_to': fields.date('Date to', help='Expired date of Membership'),
-# 'member_price':fields.float('Member Price'),
- }
+ 'membership': fields.boolean('Membership', help='Specify if this product is a membership product'),
+ 'membership_date_from': fields.date('Date from', help='Active Membership since this date'),
+ 'membership_date_to': fields.date('Date to', help='Expired date of Membership'),
+ }
_defaults = {
- 'membership': lambda *args: False
- }
+ 'membership': lambda *args: False
+ }
Product()
@@ -533,7 +532,7 @@ class account_invoice_line(osv.osv):
line = self.browse(cr, uid, result)
member_line_obj = self.pool.get('membership.membership_line')
if line.invoice_id.type == 'out_invoice':
-
+
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line','=',line.id)])
if line.product_id and line.product_id.membership and not ml_ids:
# Product line is a membership product
@@ -542,14 +541,14 @@ class account_invoice_line(osv.osv):
if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to:
date_from = line.invoice_id.date_invoice
line_id = member_line_obj.create(cr, uid, {
- 'partner': line.invoice_id.partner_id and line.invoice_id.partner_id.id or False,
- 'membership_id': line.product_id.id,
- 'member_price': line.price_unit,
- 'date': time.strftime('%Y-%m-%d'),
- 'date_from': date_from,
- 'date_to': date_to,
- 'account_invoice_line': line.id,
- })
+ 'partner': line.invoice_id.partner_id and line.invoice_id.partner_id.id or False,
+ 'membership_id': line.product_id.id,
+ 'member_price': line.price_unit,
+ 'date': time.strftime('%Y-%m-%d'),
+ 'date_from': date_from,
+ 'date_to': date_to,
+ 'account_invoice_line': line.id,
+ })
return result
account_invoice_line()
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index 1e5535802c2..a4db3754cc4 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -28,14 +28,14 @@
product.product
form
-
+
-
+
@@ -84,9 +84,9 @@
-
-
-
+
+
+
@@ -167,16 +167,6 @@
-
-
-
res.partner.tree.form.inherit
@@ -203,13 +193,13 @@
-
+
-
+
@@ -219,14 +209,14 @@
-
+
-
-
+
+
@@ -234,7 +224,7 @@
-
+
product.normal.form
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index cc0694a7098..cdc5dd6b5ac 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -70,7 +70,6 @@
'wizard/mrp_price_view.xml',
'wizard/mrp_workcenter_load_view.xml',
'wizard/mrp_change_standard_price_view.xml',
-# 'wizard/mrp_track_prod_view.xml',
'mrp_view.xml',
'mrp_report.xml',
'company_view.xml',
@@ -84,7 +83,10 @@
],
- 'demo_xml': ['mrp_demo.xml', 'board_manufacturing_demo.xml'],
+ 'demo_xml': [
+ 'mrp_demo.xml',
+ 'board_manufacturing_demo.xml'
+ ],
'test': [
'test/mrp_packs.yml',
'test/mrp_phantom_bom.yml',
diff --git a/addons/mrp/board_manufacturing_demo.xml b/addons/mrp/board_manufacturing_demo.xml
index aea87558a1c..af8f07d2871 100644
--- a/addons/mrp/board_manufacturing_demo.xml
+++ b/addons/mrp/board_manufacturing_demo.xml
@@ -1,13 +1,6 @@
-
diff --git a/addons/mrp/board_manufacturing_view.xml b/addons/mrp/board_manufacturing_view.xml
index a3cbee71e36..aa8bd2ab69e 100644
--- a/addons/mrp/board_manufacturing_view.xml
+++ b/addons/mrp/board_manufacturing_view.xml
@@ -43,5 +43,8 @@
id="menu_board_manufacturing"
parent="menus_dash_mrp"
sequence="1" groups="mrp.group_mrp_manager,mrp.group_mrp_user"/>
+
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 52cf01149f4..61853184277 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-11 04:42+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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-12 03:44+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/i18n/sv.po b/addons/mrp/i18n/sv.po
index dd1b71fc766..f6de2ef991f 100644
--- a/addons/mrp/i18n/sv.po
+++ b/addons/mrp/i18n/sv.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 08:27+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-13 08:14+0000\n"
+"Last-Translator: Anders Eriksson (Mobila System) \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-08-15 06:18+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -47,13 +47,13 @@ msgstr "Felaktigt namn för modell i händelsedefinitionen."
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr ""
+msgstr "Revision"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2
#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2
msgid "Compute Stock Minimum Rules Only"
-msgstr ""
+msgstr "Beräkna minsta lagersaldo regler"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5
@@ -80,7 +80,7 @@ msgstr ""
#. module: mrp
#: field:mrp.production,picking_id:0
msgid "Packing list"
-msgstr ""
+msgstr "Packlista"
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
@@ -97,7 +97,7 @@ msgstr "Ursprung"
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
#: view:res.company:0
msgid "Configuration"
-msgstr "Konfiguration"
+msgstr "Inställningar"
#. module: mrp
#: field:mrp.production,name:0
@@ -144,7 +144,7 @@ msgstr ""
#. module: mrp
#: view:mrp.procurement:0
msgid "Product & Location"
-msgstr ""
+msgstr "Produkt och lagerplats"
#. module: mrp
#: view:res.company:0
@@ -166,7 +166,7 @@ msgstr "Be om nya produkter"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_reordering
msgid "Automatic Procurements"
-msgstr ""
+msgstr "Automatiska anskaffningar"
#. module: mrp
#: wizard_field:change_production_qty,confirm,product_qty:0
@@ -174,7 +174,7 @@ msgstr ""
#: field:mrp.production,product_qty:0
#: field:mrp.production.product.line,product_qty:0
msgid "Product Qty"
-msgstr "Produktkvantitet"
+msgstr "Produkt antal"
#. module: mrp
#: field:mrp.production,move_lines:0
@@ -209,12 +209,12 @@ msgstr ""
#. module: mrp
#: view:mrp.workcenter:0
msgid "Analytic Accounting"
-msgstr ""
+msgstr "Objektsredovisning"
#. module: mrp
#: model:process.node,note:mrp.process_node_servicemts0
msgid "Do nothing"
-msgstr "Gör inget"
+msgstr "Gör ingenting"
#. module: mrp
#: rml:mrp.production.order:0
@@ -229,7 +229,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.workcenter.load,init,measure_unit:0
msgid "Amount in hours"
-msgstr ""
+msgstr "Antal i timmar"
#. module: mrp
#: field:mrp.production,product_lines:0
@@ -254,7 +254,7 @@ msgstr ""
#. module: mrp
#: field:mrp.bom,position:0
msgid "Internal Ref."
-msgstr ""
+msgstr "Intern ref."
#. module: mrp
#: view:mrp.procurement:0
@@ -301,7 +301,7 @@ msgstr ""
#: model:ir.ui.menu,name:mrp.menu_mrp_production_action
#: view:mrp.production:0
msgid "Production Orders"
-msgstr ""
+msgstr "Tillverkningsorder"
#. module: mrp
#: rml:bom.structure:0
@@ -309,7 +309,7 @@ msgstr ""
#: rml:mrp.production.order:0
#: wizard_field:product.product.procurement,init,qty:0
msgid "Quantity"
-msgstr "Kvantitet"
+msgstr "Antal"
#. module: mrp
#: selection:mrp.procurement,priority:0
@@ -351,7 +351,7 @@ msgstr "Detaljer"
#. module: mrp
#: model:process.process,name:mrp.process_process_procurementprocess0
msgid "Procurement Process"
-msgstr ""
+msgstr "Anskaffningsprocess"
#. module: mrp
#: field:mrp.production,date_planned_date:0
@@ -373,7 +373,7 @@ msgstr ""
#. module: mrp
#: rml:mrp.production.order:0
msgid "Bill Of Material"
-msgstr ""
+msgstr "Materiallista"
#. module: mrp
#: help:mrp.routing,location_id:0
@@ -391,7 +391,7 @@ msgstr "Reservation"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action2
msgid "Bill of Materials Structure"
-msgstr ""
+msgstr "Materialstruktur"
#. module: mrp
#: wizard_field:product.product.procurement,init,product_id:0
@@ -490,12 +490,12 @@ msgstr ""
#. module: mrp
#: field:mrp.procurement,message:0
msgid "Latest error"
-msgstr ""
+msgstr "Senaste fel"
#. module: mrp
#: field:mrp.bom,bom_lines:0
msgid "BoM Lines"
-msgstr ""
+msgstr "Materialliste rader"
#. module: mrp
#: field:mrp.workcenter,time_start:0
@@ -515,7 +515,7 @@ msgstr ""
#. module: mrp
#: constraint:mrp.bom:0
msgid "Error ! You can not create recursive BoM."
-msgstr ""
+msgstr "Fel! Du kan inte använda rekursiva materiallistor"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_stockmts0
@@ -526,7 +526,7 @@ msgstr ""
#. module: mrp
#: field:res.company,manufacturing_lead:0
msgid "Manufacturity Lead Time"
-msgstr ""
+msgstr "Tillverkningsledtid"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action4
@@ -537,7 +537,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Ready"
-msgstr "Redo"
+msgstr "Klar"
#. module: mrp
#: view:mrp.routing:0
@@ -656,23 +656,23 @@ msgstr ""
#. module: mrp
#: field:stock.warehouse.orderpoint,product_min_qty:0
msgid "Min Quantity"
-msgstr ""
+msgstr "Minsta antal"
#. module: mrp
#: view:mrp.production:0
msgid "Production orders"
-msgstr ""
+msgstr "Tillverkningsorder"
#. module: mrp
#: field:mrp.bom,child_complete_ids:0
#: field:mrp.bom,child_ids:0
msgid "BoM Hyerarchy"
-msgstr ""
+msgstr "Strukturhierarki"
#. module: mrp
#: view:mrp.procurement:0
msgid "Procurement Lines"
-msgstr ""
+msgstr "Anskaffningsrader"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
@@ -709,7 +709,7 @@ msgstr "Ändring"
#. module: mrp
#: field:mrp.bom,type:0
msgid "BoM Type"
-msgstr ""
+msgstr "Strukturtyp"
#. module: mrp
#: selection:mrp.procurement,state:0
@@ -747,7 +747,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Production done"
-msgstr ""
+msgstr "Produktion avslutad"
#. module: mrp
#: rml:bom.structure:0
@@ -772,7 +772,7 @@ msgstr ""
#. module: mrp
#: field:mrp.bom,bom_id:0
msgid "Parent BoM"
-msgstr ""
+msgstr "Överliggande struktur"
#. module: mrp
#: view:mrp.procurement:0
diff --git a/addons/mrp/i18n/tr.po b/addons/mrp/i18n/tr.po
index 0c32b64d9c5..32808ec853e 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-11 05:09+0000\n"
+"PO-Revision-Date: 2010-08-29 08:45+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-08-30 03:56+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 ee55ba15a8e..bf444707fd5 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-11 05:28+0000\n"
+"PO-Revision-Date: 2010-08-29 10:37+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-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index d2079df4503..fd9f8335987 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -53,7 +53,7 @@ class mrp_workcenter(osv.osv):
help="Complete this only if you want automatic analytic accounting entries on production orders."),
'costs_journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal'),
'costs_general_account_id': fields.many2one('account.account', 'General Account', domain=[('type','<>','view')]),
- 'resource_id': fields.many2one('resource.resource','Resource',ondelete='cascade'),
+ 'resource_id': fields.many2one('resource.resource','Resource', ondelete='cascade', required=True),
}
_defaults = {
'capacity_per_cycle': 1.0,
@@ -686,29 +686,42 @@ class mrp_production(osv.osv):
final_product_todo = []
produced_qty = 0
+ if production_mode == 'consume_produce':
+ produced_qty = production_qty
+
for produced_product in production.move_created_ids2:
if (produced_product.scraped) or (produced_product.product_id.id<>production.product_id.id):
continue
produced_qty += produced_product.product_qty
-
if production_mode in ['consume','consume_produce']:
consumed_products = {}
+ check = {}
+ scraped = map(lambda x:x.scraped,production.move_lines2).count(True)
+
for consumed_product in production.move_lines2:
+ consumed = consumed_product.product_qty
if consumed_product.scraped:
continue
if not consumed_products.get(consumed_product.product_id.id, False):
- consumed_products[consumed_product.product_id.id] = 0
- consumed_products[consumed_product.product_id.id] -= consumed_product.product_qty
-
+ consumed_products[consumed_product.product_id.id] = consumed_product.product_qty
+ check[consumed_product.product_id.id] = 0
+ for f in production.product_lines:
+ if f.product_id.id == consumed_product.product_id.id:
+ if (len(production.move_lines2) - scraped) > len(production.product_lines):
+ check[consumed_product.product_id.id] += consumed_product.product_qty
+ consumed = check[consumed_product.product_id.id]
+ rest_consumed = produced_qty * f.product_qty / production.product_qty - consumed
+ consumed_products[consumed_product.product_id.id] = rest_consumed
+
for raw_product in production.move_lines:
for f in production.product_lines:
- if f.product_id.id==raw_product.product_id.id:
+ if f.product_id.id == raw_product.product_id.id:
consumed_qty = consumed_products.get(raw_product.product_id.id, 0)
- rest_qty = production_qty * f.product_qty / production.product_qty - consumed_qty
-
- if rest_qty > 0:
- stock_mov_obj.action_consume(cr, uid, [raw_product.id], rest_qty, production.location_src_id.id, context=context)
+ if consumed_qty == 0:
+ consumed_qty = production_qty * f.product_qty / production.product_qty
+ if consumed_qty > 0:
+ stock_mov_obj.action_consume(cr, uid, [raw_product.id], consumed_qty, production.location_src_id.id, context=context)
if production_mode == 'consume_produce':
# To produce remaining qty of final product
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index b145de3b352..4504de8a2cf 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -4,10 +4,10 @@
+
-
-
+
mrp.property.search
mrp.property
@@ -91,8 +91,8 @@
-
-
+
+
Properties
ir.actions.act_window
@@ -175,7 +175,7 @@
-
+
@@ -283,8 +283,6 @@
Routings define the assembly operations to be done in work centers for manufacturing a certain product. They are usually attached to bills of materials which will define the assembly of products required for manufacture or for finished products.
-
@@ -368,7 +366,7 @@
-
+
@@ -415,10 +413,6 @@
-
@@ -481,13 +475,10 @@
Procurement
-->
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/addons/mrp/process/service_product_process.xml b/addons/mrp/process/service_product_process.xml
index a96a7a7bd4d..c23ed6e7a65 100644
--- a/addons/mrp/process/service_product_process.xml
+++ b/addons/mrp/process/service_product_process.xml
@@ -2,38 +2,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -45,7 +26,7 @@
-
+
@@ -60,7 +41,7 @@
-
+
diff --git a/addons/mrp/process/stockable_product_process.xml b/addons/mrp/process/stockable_product_process.xml
index bb5c36a015a..9dc45f0515f 100644
--- a/addons/mrp/process/stockable_product_process.xml
+++ b/addons/mrp/process/stockable_product_process.xml
@@ -17,7 +17,7 @@
-->
-
+
@@ -28,7 +28,7 @@
-
+
diff --git a/addons/mrp/report/mrp_report_view.xml b/addons/mrp/report/mrp_report_view.xml
index fc725097f45..5f28f2ce6f4 100644
--- a/addons/mrp/report/mrp_report_view.xml
+++ b/addons/mrp/report/mrp_report_view.xml
@@ -55,7 +55,7 @@
parent="base.menu_mrp_root" sequence="49"/>
+ groups="base.group_extended"/>
diff --git a/addons/mrp/report/price.py b/addons/mrp/report/price.py
index 5474646c004..8890ed533d7 100644
--- a/addons/mrp/report/price.py
+++ b/addons/mrp/report/price.py
@@ -69,10 +69,10 @@ class report_custom(report_rml):
xml += " " + prod_name + ''
xml += " " + main_sp_name + sellers + ''
- xml += " " + str(prod_qtty) + ''
- xml += " " + product_uom.name + ''
- xml += " " + main_strd_price + ''
- xml += " " + main_sp_price + sellers_price + ''
+ xml += " " + str(prod_qtty) + ''
+ xml += " " + product_uom.name + ''
+ xml += " " + main_strd_price + ''
+ xml += " " + main_sp_price + sellers_price + ''
xml += ''
@@ -87,9 +87,9 @@ class report_custom(report_rml):
xml += " " + workcenter.name + ''
xml += " "
xml += " "
- xml += " " + str(cost_cycle) + ''
- xml += " " + str(cost_hour) + ''
- xml += " " + str(cost_hour + cost_cycle) + ''
+ xml += " " + str(cost_cycle) + ''
+ xml += " " + str(cost_hour) + ''
+ xml += " " + str(cost_hour + cost_cycle) + ''
xml += ''
return xml, total
@@ -102,7 +102,7 @@ class report_custom(report_rml):
210.00mm,297.00mm
595.27
841.88
- 60.00mm,60.00mm, 20.00mm, 20.00mm, 20.00mm, 20.00mm
+ 55.00mm,55.00mm, 20.00mm, 22.00mm, 22.00mm, 25.00mm
"""
config_stop = """
Generated by OpenERP
@@ -114,30 +114,30 @@ class report_custom(report_rml):
%s
-
- %s
- %s
- %s
+
+ %s
+ %s
+ %s
""" % (_('Work Center name'), _('Cycles Cost'), _('Hourly Cost'),_('Work Cost'))
prod_header = """
- %s
- %s
- %s
- %s
- %s
- %s
+ %s
+ %s
+ %s
+ %s
+ %s
+ %s
- """ % (_('Componet'), _('Componet suppliers'), _('Quantity'), _('Uom'), _('Cost Unit Price per Uom'), _('Supplier Unit Price per Uom'))
+ """ % (_('Componet'), _('Componet suppliers'), _('Quantity'), _('Uom'), _('Cost Price per Uom'), _('Supplier Price per Uom'))
company_currency = user_pool.browse(cr, uid, uid).company_id.currency_id.id
for product in product_pool.browse(cr, uid, ids, context=context):
bom_id = bom_pool._bom_find(cr, uid, product.id, product.uom_id.id)
title = "%s " %(_("Cost Structure"))
title += "%s " %product.name
- xml += "" + title + prod_header + " "
+ xml += "" + title + prod_header + " "
if not bom_id:
total_strd = number * product.standard_price
total = number * product_pool.price_get(cr, uid, [product.id], 'standard_price')[product.id]
@@ -153,9 +153,9 @@ class report_custom(report_rml):
%s %s %s %s :
-
- %s
- %s
+
+ %s
+ %s
'"""%(_('Total Cost'), _('of'), str(number), product.uom_id.name, str(total_strd), str(total))
else:
bom = bom_pool.browse(cr, uid, bom_id, context=context)
@@ -164,9 +164,9 @@ class report_custom(report_rml):
total = 0
total_strd = 0
parent_bom = {
- 'product_qty': bom.product_qty,
- 'name': bom.product_id.name,
- 'product_uom': bom.product_uom.id,
+ 'product_qty': bom.product_qty,
+ 'name': bom.product_id.name,
+ 'product_uom': bom.product_uom.id,
'product_id': bom.product_id.id
}
xml_tmp = ''
@@ -175,15 +175,15 @@ class report_custom(report_rml):
xml_tmp += txt
total += sum
total_strd += sum_strd
-
+
xml += "" + xml_tmp + ' '
xml += """
%s %s %s %s :
-
- %s
- %s
+
+ %s
+ %s
'"""%(_('Cost'), _('of'), str(number), product.uom_id.name, str(total_strd), str(total))
total2 = 0
@@ -201,18 +201,19 @@ class report_custom(report_rml):
- %s
+ %s
'"""%(_('Work Cost'), _('of'), str(number), product.uom_id.name, str(total2))
xml += """
%s %s %s %s :
-
- %s
- %s
+
+ %s
+ %s
'"""%(_('Total Cost'), _('of'), str(number), product.uom_id.name, str(total_strd+total2), str(total+total2))
xml = '' + config_start + config_stop + xml + ' '
+
return xml
report_custom('report.product.price', 'product.product', '', 'addons/mrp/report/price.xsl')
diff --git a/addons/mrp/report/price.xsl b/addons/mrp/report/price.xsl
index 10e088629e0..dc43c3d6f7d 100644
--- a/addons/mrp/report/price.xsl
+++ b/addons/mrp/report/price.xsl
@@ -3,7 +3,7 @@
-
+
@@ -12,35 +12,37 @@
-
+
+
+
+
+
-
+
-
-
+
-
+
-
+
@@ -66,7 +68,7 @@
-
+
@@ -75,22 +77,28 @@
+
+
+
+
+
+
@@ -105,22 +113,32 @@
-
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mrp/report/workcenter_load.py b/addons/mrp/report/workcenter_load.py
index 9c31e343043..bc59e7426ff 100644
--- a/addons/mrp/report/workcenter_load.py
+++ b/addons/mrp/report/workcenter_load.py
@@ -30,7 +30,6 @@ import StringIO
theme.use_color = 1
-#theme.scale = 2
random.seed(0)
#
diff --git a/addons/mrp/wizard/__init__.py b/addons/mrp/wizard/__init__.py
index be148883d10..fec48938222 100644
--- a/addons/mrp/wizard/__init__.py
+++ b/addons/mrp/wizard/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,14 +15,13 @@
# 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 mrp_product_produce
import mrp_price
import mrp_workcenter_load
-#import mrp_track_prod
import change_production_qty
import mrp_change_standard_price
diff --git a/addons/mrp/wizard/mrp_price.py b/addons/mrp/wizard/mrp_price.py
index 17cf9c53654..b136326a2dc 100644
--- a/addons/mrp/wizard/mrp_price.py
+++ b/addons/mrp/wizard/mrp_price.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 .
#
##############################################################################
@@ -30,24 +30,24 @@ class mrp_price(osv.osv_memory):
_defaults = {
'number': 1,
}
-
+
def print_report(self, cr, uid, ids, context=None):
""" To print the report of Product cost structure
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
+ @param context: A standard dictionary
@return : Report
- """
+ """
datas = {'ids' : context.get('active_ids',[])}
res = self.read(cr, uid, ids, ['number'])
- res = res and res[0] or {}
+ res = res and res[0] or {}
datas['form'] = res
-
- return {
- 'type' : 'ir.actions.report.xml',
- 'report_name':'product.price',
- 'datas' : datas,
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'product.price',
+ 'datas' : datas,
}
mrp_price()
diff --git a/addons/mrp/wizard/mrp_product_produce.py b/addons/mrp/wizard/mrp_product_produce.py
index a554a829428..39032ea8e4a 100644
--- a/addons/mrp/wizard/mrp_product_produce.py
+++ b/addons/mrp/wizard/mrp_product_produce.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 .
#
##############################################################################
@@ -24,10 +24,10 @@ from osv import fields, osv
class mrp_product_produce(osv.osv_memory):
_name = "mrp.product.produce"
_description = "Product Produce"
-
+
_columns = {
- 'product_qty': fields.float('Quantity', required=True),
- 'mode': fields.selection([('consume_produce', 'Consume & Produce'),
+ 'product_qty': fields.float('Quantity', required=True),
+ 'mode': fields.selection([('consume_produce', 'Consume & Produce'),
('consume', 'Consume Only')], 'Mode', required=True,
help="'Consume only' mode will only consume the products with the quantity selected.\n"
"'Consume & Produce' mode will consume as well as produce the products with the quantity selected "
@@ -40,35 +40,35 @@ class mrp_product_produce(osv.osv_memory):
@param cr: A database cursor
@param uid: ID of the user currently logged in
@param context: A standard dictionary
- @return: Quantity
- """
- prod = self.pool.get('mrp.production').browse(cr, uid,
+ @return: Quantity
+ """
+ prod = self.pool.get('mrp.production').browse(cr, uid,
context['active_id'], context=context)
done = 0.0
for move in prod.move_created_ids2:
if not move.scraped:
done += move.product_qty
return (prod.product_qty - done) or prod.product_qty
-
+
_defaults = {
- 'product_qty': _get_product_qty,
- 'mode': lambda *x: 'consume_produce'
- }
+ 'product_qty': _get_product_qty,
+ 'mode': lambda *x: 'consume_produce'
+ }
def do_produce(self, cr, uid, ids, context={}):
""" To check the product type
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: the ID or list of IDs if we want more than one
+ @param ids: the ID or list of IDs if we want more than one
@param context: A standard dictionary
- @return:
- """
+ @return:
+ """
prod_obj = self.pool.get('mrp.production')
move_ids = context['active_ids']
for data in self.read(cr, uid, ids):
for move_id in move_ids:
- prod_obj.action_produce(cr, uid, move_id,
+ prod_obj.action_produce(cr, uid, move_id,
data['product_qty'], data['mode'], context=context)
return {}
diff --git a/addons/mrp/wizard/mrp_workcenter_load.py b/addons/mrp/wizard/mrp_workcenter_load.py
index db08b170ee1..7f6dfd16b85 100644
--- a/addons/mrp/wizard/mrp_workcenter_load.py
+++ b/addons/mrp/wizard/mrp_workcenter_load.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 .
#
##############################################################################
@@ -24,7 +24,7 @@ from osv import fields, osv
class mrp_workcenter_load(osv.osv_memory):
_name = 'mrp.workcenter.load'
_description = 'Workcenter Load'
-
+
_columns = {
'time_unit': fields.selection([('day', 'Day by day'),('week', 'Per week'),('month', 'Per month')],'Type of period', required=True),
'measure_unit': fields.selection([('hours', 'Amount in hours'),('cycles', 'Amount in cycles')],'Amount measuring unit', required=True),
@@ -35,18 +35,18 @@ class mrp_workcenter_load(osv.osv_memory):
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
+ @param context: A standard dictionary
@return : Report
- """
+ """
datas = {'ids' : context.get('active_ids',[])}
res = self.read(cr, uid, ids, ['time_unit','measure_unit'])
- res = res and res[0] or {}
+ res = res and res[0] or {}
datas['form'] = res
-
- return {
- 'type' : 'ir.actions.report.xml',
- 'report_name':'mrp.workcenter.load',
- 'datas' : datas,
+
+ return {
+ 'type' : 'ir.actions.report.xml',
+ 'report_name':'mrp.workcenter.load',
+ 'datas' : datas,
}
mrp_workcenter_load()
diff --git a/addons/mrp_jit/i18n/id.po b/addons/mrp_jit/i18n/id.po
index 715aa5e435d..56468c2ac89 100644
--- a/addons/mrp_jit/i18n/id.po
+++ b/addons/mrp_jit/i18n/id.po
@@ -7,16 +7,16 @@ 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-09 13:52+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-08-18 10:20+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:49+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
msgid "MRP JIT"
-msgstr ""
+msgstr "MRP JIT"
diff --git a/addons/mrp_jit/i18n/mn.po b/addons/mrp_jit/i18n/mn.po
new file mode 100644
index 00000000000..1bce3df93a8
--- /dev/null
+++ b/addons/mrp_jit/i18n/mn.po
@@ -0,0 +1,23 @@
+# Mongolian 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-14 08:43+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-15 06:21+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: mrp_jit
+#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
+msgid "MRP JIT"
+msgstr "Бодит цагийн үйлдвэрлэл"
diff --git a/addons/mrp_jit/i18n/sv.po b/addons/mrp_jit/i18n/sv.po
index 569310776bb..c9957b63f40 100644
--- a/addons/mrp_jit/i18n/sv.po
+++ b/addons/mrp_jit/i18n/sv.po
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:08+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-08-13 08:31+0000\n"
+"Last-Translator: Anders Eriksson (Mobila System) \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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
msgid "MRP JIT"
-msgstr ""
+msgstr "MRP JIT"
diff --git a/addons/mrp_jit/i18n/zh_TW.po b/addons/mrp_jit/i18n/zh_TW.po
index fce5f3ab1c6..02978bf5aaf 100644
--- a/addons/mrp_jit/i18n/zh_TW.po
+++ b/addons/mrp_jit/i18n/zh_TW.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:08+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-08-13 12:49+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_jit
diff --git a/addons/mrp_operations/i18n/de.po b/addons/mrp_operations/i18n/de.po
index 910fc86bdc4..69d1fe158bc 100644
--- a/addons/mrp_operations/i18n/de.po
+++ b/addons/mrp_operations/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:41+0000\n"
+"PO-Revision-Date: 2010-08-29 10:18+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 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
@@ -133,7 +133,7 @@ msgstr "Kurzbezeichnung (Start / Stop)"
#. module: mrp_operations
#: field:mrp.production.workcenter.line,uom:0
msgid "UOM"
-msgstr "UoM"
+msgstr "ME"
#. module: mrp_operations
#: view:mrp_operations.operation.code:0
diff --git a/addons/mrp_operations/i18n/nl.po b/addons/mrp_operations/i18n/nl.po
index 0c8104412ba..818b1c42cbd 100644
--- a/addons/mrp_operations/i18n/nl.po
+++ b/addons/mrp_operations/i18n/nl.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-09-16 16:24+0000\n"
+"PO-Revision-Date: 2010-08-13 11:34+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-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
diff --git a/addons/mrp_operations/i18n/tr.po b/addons/mrp_operations/i18n/tr.po
index 3a2ab26052d..1a680f6d3bc 100644
--- a/addons/mrp_operations/i18n/tr.po
+++ b/addons/mrp_operations/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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-12 04:03+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml
index a576566602a..285f5ff43da 100644
--- a/addons/mrp_operations/mrp_operations_view.xml
+++ b/addons/mrp_operations/mrp_operations_view.xml
@@ -3,7 +3,7 @@
+ groups="base.group_extended"/>
mrp.production.form.inherit
diff --git a/addons/mrp_operations/process/mrp_operation_process.xml b/addons/mrp_operations/process/mrp_operation_process.xml
index 17bc98d4643..2b59b87cfaf 100644
--- a/addons/mrp_operations/process/mrp_operation_process.xml
+++ b/addons/mrp_operations/process/mrp_operation_process.xml
@@ -28,7 +28,6 @@
-
@@ -39,7 +38,6 @@
-
@@ -50,7 +48,6 @@
-
@@ -61,7 +58,6 @@
-
diff --git a/addons/mrp_repair/i18n/de.po b/addons/mrp_repair/i18n/de.po
index ca18b951c0c..5237e04774f 100644
--- a/addons/mrp_repair/i18n/de.po
+++ b/addons/mrp_repair/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 08:03+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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair
@@ -212,7 +212,7 @@ msgstr "Beginn Reparatur"
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr "Menge (UoM)"
+msgstr "Menge (ME)"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
@@ -606,7 +606,7 @@ msgstr "Reparaturreferenz"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
-msgstr "UoM"
+msgstr "ME"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
@@ -623,7 +623,7 @@ msgstr "Abbrechen Reparatur ...??"
#: field:mrp.repair.fee,product_uom:0
#: field:mrp.repair.line,product_uom:0
msgid "Product UoM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: mrp_repair
#: field:mrp.repair,partner_invoice_id:0
diff --git a/addons/mrp_repair/i18n/pt_BR.po b/addons/mrp_repair/i18n/pt_BR.po
index 09a63128099..f2a51abd785 100644
--- a/addons/mrp_repair/i18n/pt_BR.po
+++ b/addons/mrp_repair/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-03 08:06+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-13 08:40+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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair
@@ -25,7 +25,7 @@ msgstr ""
#: field:mrp.repair.fee,repair_id:0
#: field:mrp.repair.line,repair_id:0
msgid "Repair Order Ref"
-msgstr ""
+msgstr "Referência da Ordem"
#. module: mrp_repair
#: field:mrp.repair.line,move_id:0
@@ -45,12 +45,12 @@ msgstr "Valor sem impostos"
#. module: mrp_repair
#: field:mrp.repair,state:0
msgid "Repair State"
-msgstr ""
+msgstr "Estado do Reparo"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Printing Date"
-msgstr ""
+msgstr "Data de impressão"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom_qty:0
@@ -61,7 +61,7 @@ msgstr "Quantidade"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Definir como Rascunho"
#. module: mrp_repair
#: selection:mrp.repair,state:0
@@ -71,40 +71,40 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair,address_id:0
msgid "Delivery Address"
-msgstr ""
+msgstr "Endereço de Entrega"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Make Invoice"
-msgstr ""
+msgstr "Faturar"
#. module: mrp_repair
#: field:mrp.repair.fee,price_subtotal:0
#: field:mrp.repair.line,price_subtotal:0
msgid "Subtotal"
-msgstr "Sub-total"
+msgstr "Subtotal"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Invoice address :"
-msgstr "Endereço de faturamento"
+msgstr "Endereço de Faturamento :"
#. module: mrp_repair
#: field:mrp.repair,guarantee_limit:0
msgid "Guarantee limit"
-msgstr ""
+msgstr "Limite de garantia"
#. module: mrp_repair
#: field:mrp.repair,amount_tax:0
#: field:mrp.repair.fee,tax_id:0
#: field:mrp.repair.line,tax_id:0
msgid "Taxes"
-msgstr ""
+msgstr "Impostos"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Net Total :"
-msgstr ""
+msgstr "Total Líquido"
#. module: mrp_repair
#: rml:repair.order:0
@@ -114,27 +114,27 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Operations"
-msgstr ""
+msgstr "Operações"
#. module: mrp_repair
#: field:mrp.repair,move_id:0
msgid "Move"
-msgstr ""
+msgstr "Movimento"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
msgid "Repair Orders"
-msgstr "Ordens de Serviços"
+msgstr "Ordens de Reparo"
#. module: mrp_repair
#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
msgid "Quotation / Order"
-msgstr ""
+msgstr "Cotação / Ordem"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Extra Info"
-msgstr ""
+msgstr "Info. Extra"
#. module: mrp_repair
#: field:mrp.repair,partner_id:0
@@ -145,39 +145,39 @@ msgstr "Parceiro"
#: model:ir.actions.act_window,name:mrp_repair.action_repair_quotation_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_quotation
msgid "Repairs in quotation"
-msgstr "Ordens de Serviços em Orçamento"
+msgstr "Reparos em cotação"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Confirmado"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Recreate Invoice"
-msgstr ""
+msgstr "Recriar Fatura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repairs order"
-msgstr ""
+msgstr "Ordens de Reparo"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Order N° :"
-msgstr ""
+msgstr "Ordem de Reparo N° :"
#. module: mrp_repair
#: field:mrp.repair,prodlot_id:0
#: rml:repair.order:0
msgid "Lot Number"
-msgstr "Numero do Lote"
+msgstr "Número do Lote"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Under Repair"
-msgstr ""
+msgstr "Em Reparo"
#. module: mrp_repair
#: field:mrp.repair,fees_lines:0
@@ -197,33 +197,33 @@ msgstr ""
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "To be Invoiced"
-msgstr ""
+msgstr "Para ser Faturado"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Shipping address :"
-msgstr ""
+msgstr "Endereço de Entrega :"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Start Repair"
-msgstr ""
+msgstr "Iniciar Reparo"
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr ""
+msgstr "Quantidade (UdM)"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
#: field:mrp.repair.line,to_invoice:0
msgid "To Invoice"
-msgstr ""
+msgstr "Faturar"
#. module: mrp_repair
#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
msgid "Repairs"
-msgstr ""
+msgstr "Reparos"
#. module: mrp_repair
#: field:mrp.repair,picking_id:0
@@ -238,29 +238,29 @@ msgstr "Total :"
#. module: mrp_repair
#: field:mrp.repair,pricelist_id:0
msgid "Pricelist"
-msgstr ""
+msgstr "Lista de Preços"
#. module: mrp_repair
#: help:mrp.repair,state:0
msgid "Gives the state of the Repair Order"
-msgstr ""
+msgstr "Dá o estado da Ordem de Reparo"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,quotation_notes:0
msgid "Quotation Notes"
-msgstr ""
+msgstr "Observações da Cotação"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_progress_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_progress
msgid "Repairs in progress"
-msgstr ""
+msgstr "Reparo em andamento"
#. module: mrp_repair
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr "XML inválido para Arquitetura da View"
+msgstr "Invalid XML for View Architecture!"
#. module: mrp_repair
#: help:mrp.repair,guarantee_limit:0
@@ -274,7 +274,7 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repair Line"
-msgstr ""
+msgstr "Linha do Reparo"
#. module: mrp_repair
#: rml:repair.order:0
@@ -284,12 +284,12 @@ msgstr "N° :"
#. module: mrp_repair
#: field:mrp.repair,invoice_method:0
msgid "Invoice Method"
-msgstr ""
+msgstr "Método de Faturamento"
#. module: mrp_repair
#: field:mrp.repair,repaired:0
msgid "Repaired"
-msgstr "Consertado"
+msgstr "Reparado"
#. module: mrp_repair
#: wizard_field:mrp.repair.make_invoice,init,group:0
@@ -300,101 +300,100 @@ msgstr ""
#: field:mrp.repair.fee,invoice_line_id:0
#: field:mrp.repair.line,invoice_line_id:0
msgid "Invoice Line"
-msgstr ""
+msgstr "Linha da Fatura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Total amount"
-msgstr ""
+msgstr "Valor total"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Canceled"
-msgstr ""
+msgstr "Cancelado"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "Before Repair"
-msgstr ""
+msgstr "Antes de ser Reparado"
#. module: mrp_repair
#: field:mrp.repair,location_id:0
msgid "Current Location"
-msgstr ""
+msgstr "Local Atual"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,yes:0
msgid "Yes"
-msgstr ""
+msgstr "Sim"
#. module: mrp_repair
#: field:mrp.repair,invoiced:0
#: field:mrp.repair.fee,invoiced:0
#: field:mrp.repair.line,invoiced:0
msgid "Invoiced"
-msgstr ""
+msgstr "Faturado"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,end:0
msgid "No"
-msgstr ""
+msgstr "Não"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
#: wizard_button:mrp.repair.make_invoice,init,invoice:0
msgid "Create invoices"
-msgstr ""
+msgstr "Criar faturas"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Add"
-msgstr ""
+msgstr "Adicionar"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Draft"
-msgstr ""
+msgstr "Rascunho"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_form
#: model:ir.ui.menu,name:mrp_repair.menu_repair_form
msgid "New Repair"
-msgstr ""
+msgstr "Novo Reparo"
#. module: mrp_repair
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
-"O nome do objeto precisa iniciar com x_ e não conter nenhum caracter "
-"especial!"
+"The Object name must start with x_ and not contain any special character !"
#. module: mrp_repair
#: field:mrp.repair,amount_untaxed:0
msgid "Untaxed Amount"
-msgstr ""
+msgstr "Valor sem Impostos"
#. module: mrp_repair
#: field:mrp.repair.line,state:0
msgid "Status"
-msgstr ""
+msgstr "Situação"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Guarantee Limit"
-msgstr ""
+msgstr "Limite de Garantia"
#. module: mrp_repair
#: field:mrp.repair,product_id:0
#: rml:repair.order:0
msgid "Product to Repair"
-msgstr ""
+msgstr "Produto para Reparar"
#. module: mrp_repair
#: help:mrp.repair,pricelist_id:0
msgid "The pricelist comes from the selected partner, by default."
-msgstr ""
+msgstr "A tabela de preços vem do parceiro selecionado, por padrão."
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
@@ -402,69 +401,71 @@ msgid ""
"This operation will cancel the Repair process, but will not cancel it's "
"Invoice. Do you want to continue?"
msgstr ""
+"Esta operação irá cancelar o processo de reparação, mas não irá cancelar "
+"a(s) fatura(s). Você deseja continuar?"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Cotação"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Compute"
-msgstr ""
+msgstr "Calcular"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Confirm Repair"
-msgstr ""
+msgstr "Confirmar Reparo"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Quotation"
-msgstr ""
+msgstr "Cotação do Reparo"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "End Repair"
-msgstr ""
+msgstr "Finalizar Reparo"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "History"
-msgstr ""
+msgstr "Histórico"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair
msgid "Repairs Order"
-msgstr ""
+msgstr "Ordens de Reparo"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_ready_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_ready
msgid "Repairs Ready to Start"
-msgstr ""
+msgstr "Reparo Pronto para Iniciar"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Qty"
-msgstr ""
+msgstr "Qtd"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Done"
-msgstr ""
+msgstr "Concluído"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_2binvoiced_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_2binvoiced
msgid "Repairs to be invoiced"
-msgstr ""
+msgstr "Reparos a serem faturados"
#. module: mrp_repair
#: field:mrp.repair,invoice_id:0
msgid "Invoice"
-msgstr ""
+msgstr "Nota Fiscal"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -475,32 +476,32 @@ msgstr ""
#: selection:mrp.repair,state:0
#: wizard_button:mrp.repair.make_invoice,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Cancelado"
#. module: mrp_repair
#: field:mrp.repair.line,location_dest_id:0
msgid "Dest. Location"
-msgstr ""
+msgstr "Local de Destino"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Operation Line(s)"
-msgstr ""
+msgstr "Linhas de Operação(s)"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_line
msgid "Repair Operations Lines"
-msgstr ""
+msgstr "Linhas de Operações do Reparo"
#. module: mrp_repair
#: field:mrp.repair,location_dest_id:0
msgid "Delivery Location"
-msgstr ""
+msgstr "Local de Entrega"
#. module: mrp_repair
#: model:ir.module.module,shortdesc:mrp_repair.module_meta_information
msgid "Products Repairs Module"
-msgstr ""
+msgstr "Módulo de Reparos de Produtos"
#. module: mrp_repair
#: help:mrp.repair,invoice_method:0
@@ -509,41 +510,44 @@ msgid ""
"selected is different from 'No Invoice', it also allow you to select the "
"pricelist and invoicing address."
msgstr ""
+"Este campo permite que você mude o fluxo de trabalho(Workflow) da Ordem de "
+"Reparo. Se o valor selecionado for diferente de 'Não Faturar', você poderá "
+"selecionar a Lista de Preços e o endereço de Faturamento."
#. module: mrp_repair
#: field:mrp.repair.fee,price_unit:0
#: field:mrp.repair.line,price_unit:0
#: rml:repair.order:0
msgid "Unit Price"
-msgstr ""
+msgstr "Preço Unitário"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
msgid "Do you really want to create the invoices ?"
-msgstr ""
+msgstr "Você realmente deseja criar as faturas ?"
#. module: mrp_repair
#: field:mrp.repair.fee,name:0
#: field:mrp.repair.line,name:0
#: rml:repair.order:0
msgid "Description"
-msgstr ""
+msgstr "Descrição"
#. module: mrp_repair
#: field:mrp.repair,operations:0
msgid "Operation Lines"
-msgstr ""
+msgstr "Linhas de Operação"
#. module: mrp_repair
#: field:mrp.repair.fee,product_id:0
#: field:mrp.repair.line,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Produto"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoice Corrected"
-msgstr ""
+msgstr "Fatura Corrigida"
#. module: mrp_repair
#: help:mrp.repair,deliver_bool:0
@@ -553,118 +557,125 @@ msgid ""
"that you can select the locations in the Info tab, if you have the extended "
"view."
msgstr ""
+"Marque esta caixa se você deseja gerenciar a entrega uma vez que o produto "
+"seja reparado. Se marcado, será criado uma embalagem com o produto "
+"selecionado. Observe que você pode selecionar os locais na aba de "
+"Informações, se você tiver a interface configurada para 'Visão "
+"ampliada(Extended view)'."
#. module: mrp_repair
#: field:mrp.repair.line,type:0
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Price"
-msgstr ""
+msgstr "Preço"
#. module: mrp_repair
#: field:mrp.repair,deliver_bool:0
msgid "Deliver"
-msgstr ""
+msgstr "Entregar"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,internal_notes:0
msgid "Internal Notes"
-msgstr ""
+msgstr "Notas Internas"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Taxes:"
-msgstr ""
+msgstr "Impostos:"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.wizard_mrp_repair_make_invoice
msgid "Make invoices"
-msgstr ""
+msgstr "Faça faturas"
#. module: mrp_repair
#: field:mrp.repair,name:0
msgid "Repair Ref"
-msgstr ""
+msgstr "Ref do Reparo"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
-msgstr ""
+msgstr "UdM"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Remove"
-msgstr ""
+msgstr "Remover"
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
msgid "Cancel Repair...??"
-msgstr ""
+msgstr "Cancelar Reparo...??"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom:0
#: field:mrp.repair.line,product_uom:0
msgid "Product UoM"
-msgstr ""
+msgstr "UdM do Produto"
#. module: mrp_repair
#: field:mrp.repair,partner_invoice_id:0
msgid "Invoicing Address"
-msgstr ""
+msgstr "Endereço de Faturamento"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "After Repair"
-msgstr ""
+msgstr "Depois de ser Reparado"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoicing"
-msgstr ""
+msgstr "Faturamento"
#. module: mrp_repair
#: field:mrp.repair.line,location_id:0
msgid "Source Location"
-msgstr ""
+msgstr "Local de Origem"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Quality"
-msgstr ""
+msgstr "Qualidade"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.action_cancel_repair
#: view:mrp.repair:0
msgid "Cancel Repair"
-msgstr ""
+msgstr "Cancelar Reparo"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "No Invoice"
-msgstr ""
+msgstr "Não Faturar"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "States"
-msgstr ""
+msgstr "Status"
#. module: mrp_repair
#: help:mrp.repair,partner_id:0
msgid ""
"This field allow you to choose the parner that will be invoiced and delivered"
msgstr ""
+"Este campo permite que você escolha o Parceiro para qual será Faturado e "
+"Entregue"
#. module: mrp_repair
#: field:mrp.repair,amount_total:0
msgid "Total"
-msgstr ""
+msgstr "Total"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Ready to Repair"
-msgstr ""
+msgstr "Pronto para Reparar"
diff --git a/addons/mrp_repair/i18n/tr.po b/addons/mrp_repair/i18n/tr.po
index 33c51ec8c36..97426f85575 100644
--- a/addons/mrp_repair/i18n/tr.po
+++ b/addons/mrp_repair/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-11 04:57+0000\n"
+"PO-Revision-Date: 2010-08-29 09:39+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index 248234d8952..99037a91994 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -41,7 +41,7 @@ class mrp_repair(osv.osv):
@param field_name: Name of field.
@param arg: Argument
@param context: A standard dictionary for contextual values
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
res = {}
cur_obj = self.pool.get('res.currency')
@@ -59,7 +59,7 @@ class mrp_repair(osv.osv):
""" Calculates taxed amount.
@param field_name: Name of field.
@param arg: Argument
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
res = {}
cur_obj = self.pool.get('res.currency')
@@ -82,7 +82,7 @@ class mrp_repair(osv.osv):
""" Calculates total amount.
@param field_name: Name of field.
@param arg: Argument
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
res = {}
untax = self._amount_untaxed(cr, uid, ids, field_name, arg, context)
@@ -167,7 +167,7 @@ class mrp_repair(osv.osv):
def onchange_product_id(self, cr, uid, ids, product_id=None):
""" On change of product sets some values.
@param product_id: Changed product
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
return {'value': {
'prodlot_id': False,
@@ -183,7 +183,7 @@ class mrp_repair(osv.osv):
destination location, partner and partner address.
@param prod_id: Id of product in current record.
@param move_id: Changed move.
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
data = {}
data['value'] = {}
@@ -210,11 +210,11 @@ class mrp_repair(osv.osv):
return True
def onchange_partner_id(self, cr, uid, ids, part, address_id):
- """ On change of partner sets the values of partner address,
+ """ On change of partner sets the values of partner address,
partner invoice address and pricelist.
@param part: Changed id of partner.
@param address_id: Address id from current record.
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
part_obj = self.pool.get('res.partner')
pricelist_obj = self.pool.get('product.pricelist')
@@ -240,7 +240,7 @@ class mrp_repair(osv.osv):
destination location, move and guarantee limit.
@param lot: Changed id of production lot.
@param product_id: Product id from current record.
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
prodlot_obj = self.pool.get('stock.production.lot')
move_obj = self.pool.get('stock.move')
@@ -275,7 +275,7 @@ class mrp_repair(osv.osv):
def action_cancel_draft(self, cr, uid, ids, *args):
""" Cancels repair order when it is in 'Draft' state.
@param *arg: Arguments
- @return: True
+ @return: True
"""
if not len(ids):
return False
@@ -292,7 +292,7 @@ class mrp_repair(osv.osv):
""" Repair order state is set to 'To be invoiced' when invoice method
is 'Before repair' else state becomes 'Confirmed'.
@param *arg: Arguments
- @return: True
+ @return: True
"""
mrp_line_obj = self.pool.get('mrp.repair.line')
for o in self.browse(cr, uid, ids):
@@ -305,7 +305,7 @@ class mrp_repair(osv.osv):
def action_cancel(self, cr, uid, ids, context=None):
""" Cancels repair order.
- @return: True
+ @return: True
"""
ok=True
mrp_line_obj = self.pool.get('mrp.repair.line')
@@ -320,7 +320,7 @@ class mrp_repair(osv.osv):
def action_invoice_create(self, cr, uid, ids, group=False, context=None):
""" Creates invoice(s) for repair order.
@param group: It is set to true when group invoice is to be generated.
- @return: Invoice Ids.
+ @return: Invoice Ids.
"""
res = {}
invoices_group = {}
@@ -328,7 +328,7 @@ class mrp_repair(osv.osv):
inv_obj = self.pool.get('account.invoice')
repair_line_obj = self.pool.get('mrp.repair.line')
repair_fee_obj = self.pool.get('mrp.repair.fee')
- for repair in self.browse(cr, uid, ids, context=context):
+ for repair in self.browse(cr, uid, ids, context=context):
res[repair.id] = False
if repair.state in ('draft','cancel') or repair.invoice_id:
continue
@@ -382,14 +382,14 @@ class mrp_repair(osv.osv):
'invoice_id': inv_id,
'name': name,
'origin': repair.name,
- 'account_id': account_id,
+ 'account_id': account_id,
'quantity': operation.product_uom_qty,
'invoice_line_tax_id': [(6,0,[x.id for x in operation.tax_id])],
'uos_id': operation.product_uom.id,
'price_unit': operation.price_unit,
'price_subtotal': operation.product_uom_qty*operation.price_unit,
'product_id': operation.product_id and operation.product_id.id or False
- })
+ })
repair_line_obj.write(cr, uid, [operation.id], {'invoiced': True, 'invoice_line_id': invoice_line_id})
for fee in repair.fees_lines:
if fee.to_invoice == True:
@@ -401,42 +401,42 @@ class mrp_repair(osv.osv):
'invoice_id': inv_id,
'name': name,
'origin': repair.name,
- 'account_id': a,
+ 'account_id': account_id,
'quantity': fee.product_uom_qty,
'invoice_line_tax_id': [(6,0,[x.id for x in fee.tax_id])],
'uos_id': fee.product_uom.id,
'product_id': fee.product_id and fee.product_id.id or False,
'price_unit': fee.price_unit,
'price_subtotal': fee.product_uom_qty*fee.price_unit
- })
+ })
repair_fee_obj.write(cr, uid, [fee.id], {'invoiced': True, 'invoice_line_id': invoice_fee_id})
res[repair.id] = inv_id
return res
def action_repair_ready(self, cr, uid, ids, context=None):
""" Writes repair order state to 'Ready'
- @return: True
+ @return: True
"""
self.write(cr, uid, ids, {'state': 'ready'})
return True
def action_invoice_cancel(self, cr, uid, ids, context=None):
""" Writes repair order state to 'Exception in invoice'
- @return: True
+ @return: True
"""
self.write(cr, uid, ids, {'state': 'invoice_except'})
return True
def action_repair_start(self, cr, uid, ids, context=None):
""" Writes repair order state to 'Under Repair'
- @return: True
+ @return: True
"""
self.write(cr, uid, ids, {'state': 'under_repair'})
return True
def action_invoice_end(self, cr, uid, ids, context=None):
""" Writes repair order state to 'Ready' if invoice method is Before repair.
- @return: True
+ @return: True
"""
for order in self.browse(cr, uid, ids):
val = {}
@@ -448,9 +448,9 @@ class mrp_repair(osv.osv):
return True
def action_repair_end(self, cr, uid, ids, context=None):
- """ Writes repair order state to 'To be invoiced' if invoice method is
+ """ Writes repair order state to 'To be invoiced' if invoice method is
After repair else state is set to 'Ready'.
- @return: True
+ @return: True
"""
for order in self.browse(cr, uid, ids):
val = {}
@@ -470,7 +470,7 @@ class mrp_repair(osv.osv):
def action_repair_done(self, cr, uid, ids, context=None):
""" Creates stock move and picking for repair order.
- @return: Picking ids.
+ @return: Picking ids.
"""
res = {}
move_obj = self.pool.get('stock.move')
@@ -516,7 +516,7 @@ class mrp_repair(osv.osv):
'location_id': repair.location_id.id,
'location_dest_id': repair.location_dest_id.id,
'tracking_id': False,
- 'state': 'assigned',
+ 'state': 'assigned',
})
wf_service.trg_validate(uid, 'stock.picking', picking, 'button_confirm', cr)
self.write(cr, uid, [repair.id], {'state': 'done', 'picking_id': picking})
@@ -530,7 +530,7 @@ mrp_repair()
class ProductChangeMixin(object):
- def product_id_change(self, cr, uid, ids, pricelist, product, uom=False,
+ def product_id_change(self, cr, uid, ids, pricelist, product, uom=False,
product_uom_qty=0, partner_id=False, guarantee_limit=False):
""" On change of product it sets product quantity, tax account, name,
uom of product, unit price and price subtotal.
@@ -574,7 +574,7 @@ class ProductChangeMixin(object):
'message':
"Couldn't find a pricelist line matching this product and quantity.\n"
"You have to change either the product, the quantity or the pricelist."
- }
+ }
else:
result.update({'price_unit': price, 'price_subtotal': price*product_uom_qty})
@@ -594,7 +594,7 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
""" Calculates amount.
@param field_name: Name of field.
@param arg: Argument
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
res = {}
cur_obj=self.pool.get('res.currency')
@@ -672,17 +672,17 @@ mrp_repair_line()
class mrp_repair_fee(osv.osv, ProductChangeMixin):
_name = 'mrp.repair.fee'
_description = 'Repair Fees Line'
-
+
def copy_data(self, cr, uid, id, default=None, context=None):
if not default: default = {}
default.update({'invoice_line_id': False, 'invoiced': False})
return super(mrp_repair_fee, self).copy_data(cr, uid, id, default, context)
-
+
def _amount_line(self, cr, uid, ids, field_name, arg, context):
""" Calculates amount.
@param field_name: Name of field.
@param arg: Argument
- @return: Dictionary of values.
+ @return: Dictionary of values.
"""
res = {}
cur_obj = self.pool.get('res.currency')
diff --git a/addons/mrp_repair/mrp_repair_workflow.xml b/addons/mrp_repair/mrp_repair_workflow.xml
index f4f9baf191a..51485597dc3 100644
--- a/addons/mrp_repair/mrp_repair_workflow.xml
+++ b/addons/mrp_repair/mrp_repair_workflow.xml
@@ -6,7 +6,7 @@
mrp.repair
True
-
+
@@ -32,7 +32,7 @@
Ready Repair
- function
+ function
action_repair_ready()
@@ -50,19 +50,12 @@
wkf_repair_done()
XOR
-
Start Repair
- function
+ function
action_repair_start()
-
+
invoice_end
@@ -75,21 +68,6 @@
function
action_repair_end()
-
-
-
cancel
@@ -106,25 +84,25 @@
-
-
-
+
+
+
repair_confirm
-
+
cancel
-
+
- invoice_method=='b4repair'
+ invoice_method=='b4repair'
@@ -133,17 +111,11 @@
(invoice_method=='after_repair' or invoice_method=='none')
-
-
action_invoice_create
-
+
@@ -177,8 +149,8 @@
-
- action_repair_end
+
+ action_repair_end
diff --git a/addons/mrp_repair/wizard/make_invoice.py b/addons/mrp_repair/wizard/make_invoice.py
index 5619f80681d..971c7f97319 100644
--- a/addons/mrp_repair/wizard/make_invoice.py
+++ b/addons/mrp_repair/wizard/make_invoice.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,19 +15,19 @@
# 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 netsvc
-from osv import osv, fields
+from osv import osv, fields
class make_invoice(osv.osv_memory):
_name = 'mrp.repair.make_invoice'
_description = 'Make Invoice'
-
+
_columns = {
- 'group': fields.boolean('Group by partner invoice address'),
+ 'group': fields.boolean('Group by partner invoice address'),
}
def make_invoices(self, cr, uid, ids, context):
@@ -35,15 +35,15 @@ class make_invoice(osv.osv_memory):
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: List of IDs selected
- @param context: A standard dictionary
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
@return: Loads the view of new invoice(s).
"""
inv = self.browse(cr, uid, ids[0])
- order_obj = self.pool.get('mrp.repair')
- newinv = order_obj.action_invoice_create(cr, uid, context['active_ids'],
- group=inv.group,context=context)
-
+ order_obj = self.pool.get('mrp.repair')
+ newinv = order_obj.action_invoice_create(cr, uid, context['active_ids'],
+ group=inv.group,context=context)
+
return {
'domain': [('id','in', newinv.values())],
'name': 'Invoices',
diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_subproduct/__openerp__.py
index b1c9db1ccf9..9e27fa91b19 100644
--- a/addons/mrp_subproduct/__openerp__.py
+++ b/addons/mrp_subproduct/__openerp__.py
@@ -36,7 +36,10 @@ With this module:
'website': 'http://www.openerp.com',
'depends': ['base', 'mrp'],
'init_xml': [],
- 'update_xml': ['security/ir.model.access.csv', 'mrp_subproduct_view.xml'],
+ 'update_xml': [
+ 'security/ir.model.access.csv',
+ 'mrp_subproduct_view.xml'
+ ],
'demo_xml': [],
'test': ['test/mrp_subproduct.yml'],
'installable': True,
diff --git a/addons/mrp_subproduct/i18n/de.po b/addons/mrp_subproduct/i18n/de.po
index ce3627a8161..64ac58bca0c 100644
--- a/addons/mrp_subproduct/i18n/de.po
+++ b/addons/mrp_subproduct/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 08:08+0000\n"
+"PO-Revision-Date: 2010-08-29 10:17+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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_subproduct
@@ -57,7 +57,7 @@ msgstr "Produkt Menge"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_uom:0
msgid "Product UOM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: mrp_subproduct
#: field:mrp.subproduct,bom_id:0
diff --git a/addons/mrp_subproduct/i18n/mn.po b/addons/mrp_subproduct/i18n/mn.po
new file mode 100644
index 00000000000..a3aa3655d70
--- /dev/null
+++ b/addons/mrp_subproduct/i18n/mn.po
@@ -0,0 +1,91 @@
+# Mongolian 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-14 08:43+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-15 06:21+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: mrp_subproduct
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Дэлгэцийн XML алдаатай!"
+
+#. module: mrp_subproduct
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
+
+#. module: mrp_subproduct
+#: view:mrp.bom:0
+msgid "sub products"
+msgstr "хоёрдогч бүтээгдэхүүнүүд"
+
+#. module: mrp_subproduct
+#: field:mrp.subproduct,product_id:0
+msgid "Product"
+msgstr "Бүтээгдэхүүн"
+
+#. module: mrp_subproduct
+#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct
+msgid "Mrp Sub Product"
+msgstr "Хоёрдогч бүтээгдэхүүн"
+
+#. module: mrp_subproduct
+#: field:mrp.subproduct,subproduct_type:0
+msgid "Quantity Type"
+msgstr "Тоолох төрөл"
+
+#. module: mrp_subproduct
+#: field:mrp.subproduct,product_qty:0
+msgid "Product Qty"
+msgstr "Бүтээгдэхүүний тоо"
+
+#. module: mrp_subproduct
+#: field:mrp.subproduct,product_uom:0
+msgid "Product UOM"
+msgstr "Бүтээгдэхүүний хэмжих нэгж"
+
+#. module: mrp_subproduct
+#: field:mrp.subproduct,bom_id:0
+msgid "BoM"
+msgstr "Материалын тооцоо"
+
+#. module: mrp_subproduct
+#: view:mrp.bom:0
+msgid "Sub Products"
+msgstr "Хоёрдогч бүтээгдэхүүнүүд"
+
+#. module: mrp_subproduct
+#: selection:mrp.subproduct,subproduct_type:0
+msgid "Variable"
+msgstr "Хувьсах"
+
+#. module: mrp_subproduct
+#: field:mrp.bom,sub_products:0
+msgid "sub_products"
+msgstr "sub_products"
+
+#. module: mrp_subproduct
+#: selection:mrp.subproduct,subproduct_type:0
+msgid "Fixed"
+msgstr "Тогтсон"
+
+#. module: mrp_subproduct
+#: model:ir.module.module,shortdesc:mrp_subproduct.module_meta_information
+msgid "MRP Sub Product"
+msgstr "Хоёрдогч бүтээгдэхүүн"
diff --git a/addons/mrp_subproduct/i18n/tr.po b/addons/mrp_subproduct/i18n/tr.po
index a1e099676a2..75733fe5d9e 100644
--- a/addons/mrp_subproduct/i18n/tr.po
+++ b/addons/mrp_subproduct/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:26+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_subproduct
diff --git a/addons/multi_company/__openerp__.py b/addons/multi_company/__openerp__.py
index fdae2efa3cd..b47a156d547 100644
--- a/addons/multi_company/__openerp__.py
+++ b/addons/multi_company/__openerp__.py
@@ -38,7 +38,6 @@
'init_xml': [],
'update_xml': [
'res_company_view.xml'
- #'security/ir.model.access.csv',
],
'demo_xml': [
'multi_company_demo.xml'
diff --git a/addons/multi_company/i18n/mn.po b/addons/multi_company/i18n/mn.po
new file mode 100644
index 00000000000..1e6f184303f
--- /dev/null
+++ b/addons/multi_company/i18n/mn.po
@@ -0,0 +1,198 @@
+# Mongolian 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-12-08 11:46+0000\n"
+"PO-Revision-Date: 2010-08-14 08:44+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-15 06:21+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: multi_company
+#: help:multi_company.default,object_id:0
+msgid "Object affect by this rules"
+msgstr "Энэ дүрэмд хамрагдах объект"
+
+#. module: multi_company
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
+
+#. module: multi_company
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+"Алдаа: Үндсэн нэгж худалдан авах нэгж хоёул нэг ангилалд хамаарах ёстой."
+
+#. module: multi_company
+#: constraint:res.partner:0
+msgid "The VAT doesn't seem to be correct."
+msgstr "НӨАТ буруу байж магадгүй."
+
+#. module: multi_company
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Үйлдлийн тодорхойлолтод буруу моделийн нэр байна."
+
+#. module: multi_company
+#: model:res.company,overdue_msg:multi_company.res_company_odoo
+#: model:res.company,overdue_msg:multi_company.res_company_oerp_be
+#: model:res.company,overdue_msg:multi_company.res_company_oerp_editor
+#: model:res.company,overdue_msg:multi_company.res_company_oerp_in
+#: model:res.company,overdue_msg:multi_company.res_company_oerp_us
+msgid ""
+"Would your payment have been carried out after this mail was sent, please "
+"consider the present one as void. Do not hesitate to contact our accounting "
+"department"
+msgstr ""
+
+#. module: multi_company
+#: field:multi_company.default,company_dest_id:0
+msgid "Default Company"
+msgstr "Үндсэн компани"
+
+#. module: multi_company
+#: field:multi_company.default,object_id:0
+msgid "Object"
+msgstr "Объект"
+
+#. module: multi_company
+#: model:ir.module.module,shortdesc:multi_company.module_meta_information
+#: view:multi_company.default:0
+msgid "Multi Company"
+msgstr "Олон компани"
+
+#. module: multi_company
+#: model:ir.module.module,description:multi_company.module_meta_information
+msgid ""
+"This module add the possibility to easily manage \n"
+" the default value for each object\n"
+" "
+msgstr ""
+"Энэ модуль нь объект бүрт үндсэн утгыг хялбар \n"
+" удирдах боломж нэмнэ.\n"
+" "
+
+#. module: multi_company
+#: field:multi_company.default,company_id:0
+msgid "Main Company"
+msgstr "Үндсэн компани"
+
+#. module: multi_company
+#: view:multi_company.default:0
+msgid "Condition"
+msgstr "Нөхцөл"
+
+#. module: multi_company
+#: help:multi_company.default,company_dest_id:0
+msgid "Company to store the current record"
+msgstr "Энэ бичлэгийг хадгалах компани"
+
+#. module: multi_company
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Дэлгэцийн XML алдаатай!"
+
+#. module: multi_company
+#: field:multi_company.default,name:0
+msgid "Name"
+msgstr "Нэр"
+
+#. module: multi_company
+#: constraint:product.template:0
+msgid "Error: UOS must be in a different category than the UOM"
+msgstr "Алдаа: Борлуулах нэгжийн ангилал хэмжих нэгжийнхээс өөр байх ёстой"
+
+#. module: multi_company
+#: model:product.category,name:multi_company.Odoo1
+msgid "Odoo Offers"
+msgstr "Odoo санал"
+
+#. module: multi_company
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "Алдаа! Рекурсив компани үүсгэж болохгүй."
+
+#. module: multi_company
+#: help:multi_company.default,name:0
+msgid "Name it to easily find a record"
+msgstr "Бичлэгийг хялбар олохын тулд нэрлэх хэрэгтэй"
+
+#. module: multi_company
+#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
+msgid "Multi company"
+msgstr "Олон компани"
+
+#. module: multi_company
+#: model:ir.model,name:multi_company.model_multi_company_default
+msgid "multi_company.default"
+msgstr "multi_company.default"
+
+#. module: multi_company
+#: help:multi_company.default,company_id:0
+msgid "Company where the user is connected"
+msgstr "Хэрэглэгч холбогдсон компани"
+
+#. module: multi_company
+#: model:ir.actions.act_window,name:multi_company.action_inventory_form
+msgid "Default Company per Object"
+msgstr "Объект бүрийн үндсэн компани"
+
+#. module: multi_company
+#: field:multi_company.default,expression:0
+msgid "Expression"
+msgstr "Илэрхийлэл"
+
+#. module: multi_company
+#: model:product.template,name:multi_company.product_product_odoo1_product_template
+msgid "Odoo Offer"
+msgstr "Odoo санал"
+
+#. module: multi_company
+#: field:multi_company.default,sequence:0
+msgid "Sequence"
+msgstr "Дугаарлалт"
+
+#. module: multi_company
+#: constraint:product.category:0
+msgid "Error ! You can not create recursive categories."
+msgstr "Алдаа! Рекурсив ангилал үүсгэж болохгүй."
+
+#. module: multi_company
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Алдаа: Буруу зураасан код"
+
+#. module: multi_company
+#: help:multi_company.default,expression:0
+msgid "Expression, must be True to match"
+msgstr "Тулгахын тулд илэрхийлэл True байх ёстой"
+
+#. module: multi_company
+#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
+msgid "Default company per Object"
+msgstr "Объект бүрийн үндсэн компани"
+
+#. module: multi_company
+#: code:addons/multi_company/multi_company.py:0
+#, python-format
+msgid " (copy)"
+msgstr " (Хуулах)"
+
+#. module: multi_company
+#: view:multi_company.default:0
+msgid "Matching"
+msgstr "Тулгалт"
diff --git a/addons/multi_company/multi_company_demo.xml b/addons/multi_company/multi_company_demo.xml
index abc3387f15c..308a9e927e5 100644
--- a/addons/multi_company/multi_company_demo.xml
+++ b/addons/multi_company/multi_company_demo.xml
@@ -1,7 +1,7 @@
-
+
OpenERP Corp.
@@ -20,8 +20,8 @@
Odoo
-
-
+
+
OpenERP Corp.
@@ -56,7 +56,7 @@
Odoo
-
+
@@ -104,7 +104,7 @@
-
+
@@ -312,11 +312,11 @@
-
+
-
+
@@ -379,90 +379,7 @@
-
-
-
-
-
-
diff --git a/addons/olap/__openerp__.py b/addons/olap/__openerp__.py
index 1171cdd23f9..76d119322e2 100644
--- a/addons/olap/__openerp__.py
+++ b/addons/olap/__openerp__.py
@@ -46,8 +46,7 @@
"data/olap_security.xml",
'security/ir.model.access.csv'
],
- "demo_xml" : ["data/olap_demo.xml"
- ],
+ "demo_xml" : ["data/olap_demo.xml"],
"active": False,
"installable": True
}
diff --git a/addons/olap/data/olap_cube_view.xml b/addons/olap/data/olap_cube_view.xml
index 4ffbab0ff60..1afc1a5d520 100644
--- a/addons/olap/data/olap_cube_view.xml
+++ b/addons/olap/data/olap_cube_view.xml
@@ -3,7 +3,7 @@
-
+
bi.load.db.form
bi.load.db.wizard
@@ -22,7 +22,7 @@
-
+
Load database Structure
bi.load.db.wizard
@@ -33,10 +33,10 @@
new
-
-
+
+
-
+
Olap Warehouse
olap.warehouse.wizard
@@ -51,7 +51,7 @@
-
+
Olap Warehouse
ir.actions.act_window
@@ -60,7 +60,7 @@
form
new
-
+
-
+
-
+
Parameters Configuration
olap.parameters.config.wizard
@@ -83,7 +83,6 @@
-
@@ -99,21 +98,9 @@
-
-
+
Parameters Configuration
ir.actions.act_window
@@ -122,7 +109,7 @@
form
new
-
+
-
+
Server Parameters Configuration
This wizard will configure the URL of the web client
-
-
+
+
-
+
bi.auto.configure.form
bi.auto.configure.wizard
@@ -154,7 +141,7 @@
-
+
Auto Configuration
bi.auto.configure.wizard
@@ -165,13 +152,13 @@
new
-
-
-
+
+
+
# ------------------------------------------------------------------
# Olap Schema
# ------------------------------------------------------------------
-
+
olap.schema.tree
olap.schema
@@ -183,7 +170,7 @@
-
+
olap.schema.form
olap.schema
@@ -218,19 +205,19 @@
-
+
Olap Schemas
olap.schema
form
-
+
-
+
# ------------------------------------------------------------------
# Olap Cubes Table
# ------------------------------------------------------------------
@@ -268,23 +255,23 @@
-
+
Olap Cube Tables
olap.cube.table
form
-
+
-
+
# ------------------------------------------------------------------
# Olap Cubes
# ------------------------------------------------------------------
-
+
olap.cube.tree
olap.cube
@@ -296,7 +283,7 @@
-
+
olap.cube.form
olap.cube
@@ -310,24 +297,24 @@
-
+
Olap Cubes
olap.cube
form
-
+
-
-
+
+
# ------------------------------------------------------------------
# Olap Dimensions
# ------------------------------------------------------------------
-
+
olap.dimension.tree
olap.dimension
@@ -339,7 +326,7 @@
-
+
olap.dimension.form
olap.dimension
@@ -351,23 +338,23 @@
-
+
Olap Dimensions
olap.dimension
form
-
+
-
+
# ------------------------------------------------------------------
# Olap Hierarchies
# ------------------------------------------------------------------
-
+
olap.hierarchy.tree
olap.hierarchy
@@ -379,7 +366,7 @@
-
+
olap.hierarchy.form
olap.hierarchy
@@ -389,32 +376,28 @@
-
-
-
-
+
Olap Hierarchies
olap.hierarchy
form
-
+
-
-
+
+
# ------------------------------------------------------------------
# Olap Levels
# ------------------------------------------------------------------
-
+
olap.level.tree
olap.level
@@ -431,7 +414,7 @@
-
+
olap.level.form
olap.level
@@ -450,24 +433,24 @@
-
+
Olap Level
olap.level
form
-
+
-
-
+
+
# ------------------------------------------------------------------
# Olap Measure
# ------------------------------------------------------------------
-
+
olap.measure.tree
olap.measure
@@ -479,7 +462,7 @@
-
+
olap.measure.form
olap.measure
@@ -507,19 +490,19 @@
-
+
Olap Measures
olap.measure
form
-
+
-
+
# ------------------------------------------------------------------
# Olap Saved Query
# ------------------------------------------------------------------
@@ -538,7 +521,7 @@
-
+
olap.saved.query.mdx
olap.saved.query
@@ -554,7 +537,7 @@
-
+
olap.saved.query.form
olap.saved.query
@@ -576,22 +559,22 @@
-
+
Olap Saved Query
olap.saved.query
form
tree,form,mdx
-
+
-
+
-
+
olap.query.logs
olap.query.logs
@@ -605,7 +588,7 @@
-
+
olap.query.logs.form
olap.query.logs
@@ -622,21 +605,21 @@
-
+
All Logs
olap.query.logs
form
-
+
-
+
-
+
olap.query.logs
olap.query.logs
@@ -649,7 +632,7 @@
-
+
olap.query.logs
olap.query.logs
@@ -662,9 +645,9 @@
-
+
-
+
olap.query.logs.form
olap.query.logs
@@ -680,7 +663,7 @@
-
+
My Logs
olap.query.logs
@@ -688,12 +671,12 @@
tree,form,mdx
[('user_id','=',uid)]
-
+
-
+
diff --git a/addons/olap/data/olap_cube_workflow.xml b/addons/olap/data/olap_cube_workflow.xml
index cedfbcc686b..eaa97476c97 100644
--- a/addons/olap/data/olap_cube_workflow.xml
+++ b/addons/olap/data/olap_cube_workflow.xml
@@ -6,52 +6,42 @@
olap.schema
True
-
+
True
none
-
+
dbconnect
function
action_dbconnect()
-
+
dbload
function
action_dbload()
-
+
dbconfigure
function
action_dbconfigure()
-
+
True
dbready
function
- action_dbready()
+ action_dbready()
-
-
@@ -69,19 +59,12 @@
dbconfigure
-
+
dbready
-
diff --git a/addons/olap/data/olap_fact_view.xml b/addons/olap/data/olap_fact_view.xml
index f01db863f6e..86c417e7c12 100644
--- a/addons/olap/data/olap_fact_view.xml
+++ b/addons/olap/data/olap_fact_view.xml
@@ -77,8 +77,6 @@
-
-
diff --git a/addons/olap/data/olap_wizard.xml b/addons/olap/data/olap_wizard.xml
index 5f677e7a8c6..3299061ab3e 100644
--- a/addons/olap/data/olap_wizard.xml
+++ b/addons/olap/data/olap_wizard.xml
@@ -3,53 +3,42 @@
+ string="Query Builder"
+ model="olap.schema"
+ name="olap.query_builder"
+ menu= "False"
+ multi="True"
+ id="bi_conf_cube_query_builder"/>
+
-
+
+
-
-
-
-
-
-
-
-
+
diff --git a/addons/olap/i18n/et.po b/addons/olap/i18n/et.po
index 53217eb9ded..15cda55bfcd 100644
--- a/addons/olap/i18n/et.po
+++ b/addons/olap/i18n/et.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-11-26 05:24+0000\n"
-"PO-Revision-Date: 2010-08-03 08:15+0000\n"
+"PO-Revision-Date: 2010-08-17 10:28+0000\n"
"Last-Translator: lyyser \n"
"Language-Team: Estonian \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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap
@@ -103,7 +103,7 @@ msgstr "Salasõna logimiseks"
#: field:olap.application.field,application_id:0
#: field:olap.application.table,application_id:0
msgid "Application Id"
-msgstr ""
+msgstr "Rakenduse ID"
#. module: olap
#: model:ir.actions.todo,note:olap.config_auto_directory
@@ -378,7 +378,7 @@ msgstr ""
#. module: olap
#: field:olap.fact.database,db_login:0
msgid "Database login"
-msgstr ""
+msgstr "Andmebaasi sisselogimine"
#. module: olap
#: model:ir.ui.menu,name:olap.menu_view_olap_application_table_form
diff --git a/addons/olap/i18n/nl.po b/addons/olap/i18n/nl.po
new file mode 100644
index 00000000000..0a5c91249ee
--- /dev/null
+++ b/addons/olap/i18n/nl.po
@@ -0,0 +1,1399 @@
+# 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-11-26 05:24+0000\n"
+"PO-Revision-Date: 2010-08-19 06:42+0000\n"
+"Last-Translator: FULL NAME \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-08-20 03:40+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Hide"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_saved_query_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_saved_query_form
+#: view:olap.saved.query:0
+msgid "Olap Saved Query"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,time:0
+#: field:olap.saved.query,time:0
+msgid "Time"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid "Auto Configure Structure"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Olap fact database"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,value_sql:0
+msgid ""
+"You can provide valid sql expression. Make sure it have function with fully "
+"qualified column name like (sum,avg ...)(tablename.columnname (+,- ...) "
+"tablename.columnname)"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,schema_id:0
+msgid "Schema id"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,database_id:0
+msgid "Database Connection"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "MySQL"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_password:0
+msgid "Database password"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.tables:0
+msgid "Olap database tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Connection url"
+msgstr ""
+
+#. module: olap
+#: view:olap.application.table:0
+msgid "Olap Application Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.parameters.config.wizard,host_name:0
+msgid "Server Name"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_password:0
+msgid "Password for the login."
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,application_id:0
+#: field:olap.application.table,application_id:0
+msgid "Application Id"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.todo,note:olap.config_auto_directory
+msgid "This wizard will configure the URL of the web client"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_fact_database_form
+#: model:ir.ui.menu,name:olap.menu_bi_conf_fact
+msgid "Fact Databases"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_browser_url
+msgid "Cube Browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_dimension_form
+msgid "Olap Dimension"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_database_columns
+msgid "Olap Database Columns"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "BI Web Client."
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_port:0
+msgid " Port to be used in connection"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,primary_key:0
+msgid "Primary Key"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,table_id:0
+msgid "Table Id"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "This wizard will automatically configure the web client for BI."
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,type:0
+msgid "Database type"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query_builder,back:0
+#: wizard_view:olap.query_builder,init:0
+msgid "Cube Fetcher"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,info:0
+#: wizard_view:olap.load.table,ok:0
+msgid "Your database structure has been correctly loaded"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_parameters_config_wizard
+msgid "Olap Server Parameters"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_cube_table_form
+msgid "Olap Cube Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,formatstring:0
+msgid "Format string"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,exec,exec:0
+#: wizard_button:olap.query_builder,ok,exec:0
+msgid "Execute"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.application.configuration,configure,end:0
+#: wizard_button:olap.fact.database.test_connection,init,end:0
+#: wizard_button:olap.load.table,info,end:0
+#: wizard_button:olap.query.logs.clear,info,end:0
+#: wizard_button:olap.query.logs.clear,ok,end:0
+#: view:olap.warehouse.wizard:0
+msgid "Ok"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_conf_known_application
+msgid "Known Application"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,level:0
+#: wizard_field:olap.query_builder,ok,level:0
+msgid "Level"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,column_id_name:0
+#: field:olap.measure,value_column_id_name:0
+msgid "Column ID"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid ""
+"We will load the complete structure of the database by introspection, so "
+"that you will be able to work on it, and specify a better structure "
+"according to your reporting needs."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_form
+msgid "Olap Applicatiion"
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,name:0
+msgid "Query Name"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,mdx_query:0
+#: wizard_field:olap.query_builder,ok,mdx_query:0
+msgid "MDX Query"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_bi_auto_configure_wizard
+msgid "bi.auto.configure.wizard"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,primary_key:0
+msgid "Primary key"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.act_bi_auto_configure
+msgid "Auto Configuration"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,note:0
+msgid "Schema description"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.act_bi_load_db_wizard
+msgid "Load database Structure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_level
+#: view:olap.level:0
+msgid "Olap level"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "None (0000.00)"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_host:0
+msgid "Database host"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_fact_database
+msgid "Olap Fact Database"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid "Auto Congifuring Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,name:0
+msgid "Application name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,column_link_id:0
+msgid "Relational Column"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,type:0
+msgid "Level class"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,name:0
+msgid "Cube name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_table_form
+msgid "Olap Applicatiion Table"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_saved_query
+msgid "olap.saved.query"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,column_name:0
+msgid "Columns Name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_hierarchy_form
+msgid "Olap Hierarchies"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,ready:0
+msgid "Ready"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,measure_type:0
+#: field:olap.measure,value_column:0
+msgid "Fact Table Column"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_database_tables_form
+#: field:olap.application,table_ids:0
+#: view:olap.fact.database:0
+#: field:olap.fact.database,table_ids:0
+msgid "Tables"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application
+msgid "Olap application"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Schema is ready to use"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_designer_url
+msgid "Cube Designer"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_login:0
+msgid "Database login"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_table_form
+msgid "Application Table"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query.logs.clear,info:0
+#: wizard_view:olap.query.logs.clear,ok:0
+msgid "Logs Cleared successfully"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_schema
+#: model:ir.ui.menu,name:olap.menu_action_olap_schema_form
+#: view:olap.schema:0
+msgid "Olap Schema"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_form
+msgid "Application"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,mdx_query_output:0
+#: wizard_field:olap.query_builder,ok,mdx_query_output:0
+msgid "MDX Query Output"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,primary_key_table:0
+msgid "Primary key table"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,table_name:0
+msgid ""
+"The name of the table on which the column is defined. If False, take the "
+"table from the cube."
+msgstr ""
+
+#. module: olap
+#: view:olap.warehouse.wizard:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_dimension_form
+msgid "Olap Dimensions"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,user_id:0
+msgid "Tiny ERP User"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_application_configuration
+msgid "Configure from Application"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_port:0
+msgid "Database port"
+msgstr ""
+
+#. module: olap
+#: help:olap.parameters.config.wizard,host_port:0
+msgid ""
+"Put the port for the server. Put 8080 if its not clear."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "The Structure is Loaded"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,cube_id:0
+#: field:olap.measure,cube_id:0
+#: field:olap.query.logs,cube_id:0
+#: field:olap.saved.query,cube_id:0
+msgid "Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table,available_table_ids:0
+msgid "Available Tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Configure Manually"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,related_to:0
+msgid "Related To"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Olap database columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,field_id:0
+msgid "Link Field"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Mark as Configured"
+msgstr ""
+
+#. module: olap
+#: view:olap.application.field:0
+msgid "Olap Application Field"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Comma Seperator (0,000)"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,agregator:0
+msgid "Agregator"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,configure:0
+msgid "Your database structure (Open ERP) has been sucessfully configured."
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: olap
+#: help:olap.parameters.config.wizard,host_name:0
+msgid ""
+"Put here the server address or IP Put localhost if its not "
+"clear."
+msgstr ""
+
+#. module: olap
+#: view:olap.database.tables:0
+msgid "Database tables"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Reload Structure"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,init:0
+msgid "This will Auto Configure Application"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid "Load Data Structure"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+#: view:bi.load.db.wizard:0
+#: wizard_button:olap.application.configuration,init,end:0
+#: wizard_button:olap.load.table,init,end:0
+#: view:olap.parameters.config.wizard:0
+#: wizard_button:olap.query.logs.clear,init,end:0
+#: wizard_button:olap.query_builder,exec,end:0
+#: wizard_button:olap.query_builder,ok,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid ""
+"After having loaded the structure, you will be able to hide/show or rename "
+"tables and columns to simplify end-users interface. The following database "
+"will be loaded:"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_level_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_level_form
+#: view:olap.level:0
+msgid "Olap Level"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,loaded:0
+msgid "Loaded"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_name:0
+msgid "Name of the database to be used for analysis."
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_login:0
+msgid "Login for the database name specified."
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,dimension_id:0
+#: wizard_field:olap.query_builder,exec,dimension:0
+#: wizard_field:olap.query_builder,ok,dimension:0
+msgid "Dimension"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application_table
+msgid "Olap application table"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+msgid ""
+"We will load the complete structure of the database by introspection, "
+"so that you will be able to work on it, and specify a better structure "
+"according to your reporting needs."
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,axis_keys:0
+msgid "Axis Keys"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,query_log:0
+msgid "Query Logging"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,measure_type:0
+msgid "Measure Type"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,fact_database_id:0
+msgid "Database Id"
+msgstr ""
+
+#. module: olap
+#: help:olap.fact.database,db_host:0
+msgid "Give hostname to make connection to the database."
+msgstr ""
+
+#. module: olap
+#: field:olap.level,hierarchy_id:0
+msgid "Hierarchy"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "The Structure is Configured."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_schema_form
+msgid "Olap Schemas"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,table_id:0
+msgid "Fact table"
+msgstr ""
+
+#. module: olap
+#: view:bi.auto.configure.wizard:0
+msgid ""
+"This will Auto Configure Application. This will help to increase the "
+"readability of the tables and columns by giving it meaningful and easy to "
+"comprehend name. You can hides particular data and columns by reconfiguring "
+"the structure option."
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_application_field_form
+msgid "Olap Applicatiion Field"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,query:0
+#: field:olap.saved.query,query:0
+#: view:olap.warehouse.wizard:0
+#: field:olap.warehouse.wizard,query:0
+msgid "Query"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Auto Application Configuration"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Postfix Default Currency(0000.00 EUR)"
+msgstr ""
+
+#. module: olap
+#: field:bi.load.db.wizard,db_name:0
+#: wizard_field:olap.load.table,init,db_name:0
+msgid "Database Name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,measure_ids:0
+msgid "Measures"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_conf_cube_query_builder
+#: wizard_view:olap.query_builder,exec:0
+#: wizard_view:olap.query_builder,ok:0
+msgid "Query Builder"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,dimension_ids:0
+msgid "Dimensions"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_cube
+#: view:olap.cube:0
+msgid "Olap cube"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_warehouse
+#: model:ir.model,name:olap.model_olap_warehouse_wizard
+#: model:ir.ui.menu,name:olap.menu_bi_warehouse
+msgid "Olap Warehouse"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_application_field_form
+msgid "Application Field"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_dimension
+#: view:olap.dimension:0
+msgid "Olap dimension"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,name:0
+msgid "Application field name"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Connection parameters"
+msgstr ""
+
+#. module: olap
+#: field:bi.auto.configure.wizard,name:0
+#: field:bi.load.db.wizard,fact_table:0
+#: wizard_field:olap.load.table,init,fact_table:0
+msgid "Fact Name"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+msgid "Database columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.table,table_name:0
+#: field:olap.cube.table,name:0
+#: field:olap.level,table_name:0
+#: field:olap.measure,table_name:0
+msgid "Table name"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,measure_type:0
+msgid "Select between auto column or sql expression for the measures"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_load_column
+msgid "Open Columns"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_database_columns_form
+#: field:olap.database.tables,columns:0
+msgid "Columns"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_test_connection
+#: view:olap.fact.database:0
+msgid "Test Connection"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_measure_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_measure_form
+msgid "Olap Measures"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.application.configuration,init,configure:0
+#: view:olap.parameters.config.wizard:0
+msgid "Configure"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+msgid ""
+"After having loaded the structure, you will be able to hide/show or "
+"rename tables and columns to simplify end-users interface. The following "
+"database will be loaded:"
+msgstr ""
+
+#. module: olap
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,hierarchy:0
+#: wizard_field:olap.query_builder,ok,hierarchy:0
+msgid "Hiearchy"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,measure_type:0
+#: field:olap.measure,value_sql:0
+msgid "SQL Expression"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_menu_olap_load_table
+msgid "Load Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,level_ids:0
+msgid "Levels"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_application_field
+msgid "Olap application field"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_database_columns_form
+msgid "Database Columns"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,active:0
+#: field:olap.database.tables,active:0
+msgid "Active"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,datatype:0
+msgid "Integer"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,init:0
+msgid " Auto Configure "
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "Sum"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query.logs.clear,init,user_name:0
+#: field:olap.saved.query,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,count:0
+msgid "Count"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,name:0
+msgid "End-User Name"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Postfix Default Currency with comma seperator (0,000.00 EUR)"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,datatype:0
+msgid "Datatype"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,back,ok:0
+#: wizard_button:olap.query_builder,init,ok:0
+msgid "Fetch Data"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Prefix Default Currency with comma seperator (EUR 0,000.00)"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,info:0
+#: wizard_view:olap.load.table,ok:0
+#: wizard_view:olap.query.logs.clear,info:0
+#: wizard_view:olap.query.logs.clear,ok:0
+msgid "Load Data"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,query_ids:0
+msgid "Queries"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "Oracle"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_cube_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_cube_form
+#: model:ir.ui.menu,name:olap.menu_bi_conf_cubes
+msgid "Olap Cubes"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_cube_table_form
+msgid "Olap Cubes Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.measure,name:0
+msgid "Measure name"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,connection_type:0
+msgid "Socket"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,connection_type:0
+msgid "Connection type"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "count"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,db_name:0
+msgid "Database name"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,type:0
+msgid "Type"
+msgstr ""
+
+#. module: olap
+#: view:olap.database.columns:0
+#: view:olap.database.tables:0
+msgid "Show"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.query_builder,exec,back:0
+#: wizard_button:olap.query_builder,ok,back:0
+msgid "Change cube"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_view_olap_database_tables_form
+#: view:olap.cube.table:0
+#: field:olap.cube.table,line_ids:0
+msgid "Database Tables"
+msgstr ""
+
+#. module: olap
+#: help:olap.level,table_name:0
+msgid ""
+"The name of the table on which the column is defined. If False, take the "
+"table from the hierarchy."
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Nothing has been Configured"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,name:0
+msgid "Dimension name"
+msgstr ""
+
+#. module: olap
+#: wizard_button:olap.load.table,ok,end:0
+msgid "Continue and Configure Structure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_measure
+#: view:olap.measure:0
+msgid "Olap measure"
+msgstr ""
+
+#. module: olap
+#: help:olap.cube,table_id:0
+msgid "Table(s) for cube."
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,exec,measure:0
+#: wizard_field:olap.query_builder,ok,measure:0
+msgid "Measure"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,column_db_name:0
+msgid "Column DBName"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "We Can Start building Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,table_id:0
+msgid "Database Table"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,name:0
+msgid "Schema name"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_query_logs_my_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_query_logs_my_form
+#: view:olap.query.logs:0
+msgid "My Logs"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Information"
+msgstr ""
+
+#. module: olap
+#: wizard_field:olap.query_builder,back,cube_schema:0
+#: wizard_field:olap.query_builder,init,cube_schema:0
+msgid "Select Cube"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,table_id:0
+msgid "Fact table(s)"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.url,name:olap.menu_url_cube_designer
+msgid "name_menu_url_cube_designer"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_config_bi_parameters
+msgid "Parameters Configuration"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Connect to Database"
+msgstr ""
+
+#. module: olap
+#: selection:olap.schema,state:0
+msgid "Database Connected"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,table_name:0
+#: field:olap.application.table,name:0
+msgid "Application table name"
+msgstr ""
+
+#. module: olap
+#: help:olap.hierarchy,table_id:0
+msgid "Table(s) to make hierarchy on the cube."
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "General information"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,query:0
+msgid "Application Query"
+msgstr ""
+
+#. module: olap
+#: help:olap.cube,query_log:0
+msgid "Enabling this will log all the queries in the browser"
+msgstr ""
+
+#. module: olap
+#: field:olap.saved.query,mdx_id:0
+msgid "Module"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,is_hidden:0
+#: field:olap.application.table,is_hidden:0
+#: field:olap.database.columns,hide:0
+#: field:olap.database.tables,hide:0
+msgid "Hidden"
+msgstr ""
+
+#. module: olap
+#: field:olap.dimension,hierarchy_ids:0
+msgid "Hierarchies"
+msgstr ""
+
+#. module: olap
+#: field:olap.query.logs,result_size:0
+msgid "Result Size"
+msgstr ""
+
+#. module: olap
+#: view:olap.application:0
+msgid "Olap Application"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_database_tables
+msgid "Olap Database Tables"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,formatstring:0
+msgid "Prefix Default Currency (EUR 0000.00)"
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Olap cube_table"
+msgstr ""
+
+#. module: olap
+#: view:olap.parameters.config.wizard:0
+msgid "Parameters Configure"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_hierarchy
+#: view:olap.hierarchy:0
+msgid "Olap hierarchy"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_cube_table
+#: model:ir.model,name:olap.model_olap_cube_table_line
+msgid "Olap cube table"
+msgstr ""
+
+#. module: olap
+#: field:olap.application.field,field_name:0
+msgid "Field name"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_olap_query_logs
+msgid "Olap query logs"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,name:0
+msgid "Fact name"
+msgstr ""
+
+#. module: olap
+#: help:olap.measure,formatstring:0
+msgid " Let you specify how the measure to be displayed in cube browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_server_parameters
+msgid "Server Parameters"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.load.table,init:0
+#: wizard_button:olap.load.table,init,ok:0
+#: view:olap.schema:0
+msgid "Load Database Structure"
+msgstr ""
+
+#. module: olap
+#: field:olap.level,name:0
+msgid "Level name"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube,schema_id:0
+#: field:olap.query.logs,schema_id:0
+#: field:olap.saved.query,schema_id:0
+msgid "Schema"
+msgstr ""
+
+#. module: olap
+#: field:olap.fact.database,connection_url:0
+#: field:olap.schema,app_detect:0
+msgid "Connection URL"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,cube_ids:0
+msgid "Cubes"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "ReConfigure Structure"
+msgstr ""
+
+#. module: olap
+#: field:olap.application,field_ids:0
+msgid "Fields"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,agregator:0
+msgid "Average"
+msgstr ""
+
+#. module: olap
+#: view:bi.load.db.wizard:0
+msgid "Load Database Tables"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_action_olap_hierarchy_form
+msgid "Olap Hierarchy"
+msgstr ""
+
+#. module: olap
+#: field:olap.cube.table.line,cube_table_id:0
+msgid "Cube Table"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi
+msgid "Businesss Intelligence"
+msgstr ""
+
+#. module: olap
+#: model:ir.model,name:olap.model_bi_load_db_wizard
+msgid "bi.load.db.wizard"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.url,name:olap.menu_url_cube_browser
+msgid "name_menu_url_cube_browser"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_view_olap_fact_database_form
+msgid "Databases"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,name:0
+msgid "Hierarchy name"
+msgstr ""
+
+#. module: olap
+#: model:ir.module.module,description:olap.module_meta_information
+msgid ""
+"\n"
+" Base module to manage Olap schemas. Cube designer.\n"
+" "
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Joined Tables"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,loaded:0
+msgid "Loading Datastructure"
+msgstr ""
+
+#. module: olap
+#: view:olap.cube.table:0
+msgid "Joined Table"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,type:0
+msgid "PostgreSQL"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.query.logs.clear,init:0
+msgid " To Load Data"
+msgstr ""
+
+#. module: olap
+#: field:olap.hierarchy,sequence:0
+#: field:olap.level,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: olap
+#: model:ir.ui.menu,name:olap.menu_bi_conf_tools
+msgid "Tools"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,state:0
+msgid "Schema State"
+msgstr ""
+
+#. module: olap
+#: selection:olap.measure,datatype:0
+msgid "Float"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.act_window,name:olap.action_olap_query_logs_form
+#: model:ir.ui.menu,name:olap.menu_action_olap_query_logs_form
+#: view:olap.query.logs:0
+msgid "All Logs"
+msgstr ""
+
+#. module: olap
+#: selection:olap.fact.database,connection_type:0
+#: field:olap.parameters.config.wizard,host_port:0
+msgid "Port"
+msgstr ""
+
+#. module: olap
+#: view:olap.fact.database:0
+msgid "Fact database"
+msgstr ""
+
+#. module: olap
+#: model:ir.module.module,shortdesc:olap.module_meta_information
+msgid "olap"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.columns,name:0
+msgid "Column Name"
+msgstr ""
+
+#. module: olap
+#: field:olap.database.tables,table_db_name:0
+msgid "Table Name"
+msgstr ""
+
+#. module: olap
+#: wizard_view:olap.application.configuration,configure:0
+msgid "Auto Configure"
+msgstr ""
+
+#. module: olap
+#: field:olap.schema,configure:0
+msgid "Configuring Datastructure"
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_load_configuration_table
+msgid "Open Configuration"
+msgstr ""
+
+#. module: olap
+#: view:olap.schema:0
+msgid "Configure Automatically "
+msgstr ""
+
+#. module: olap
+#: model:ir.actions.wizard,name:olap.bi_clear_logs
+#: model:ir.ui.menu,name:olap.menu_bi_clear_logs
+#: wizard_button:olap.query.logs.clear,init,ok:0
+msgid "Clear Logs"
+msgstr ""
diff --git a/addons/olap/olap.py b/addons/olap/olap.py
index 7e5198abb6d..b76adc66b08 100644
--- a/addons/olap/olap.py
+++ b/addons/olap/olap.py
@@ -203,7 +203,7 @@ class olap_schema(osv.osv ):
'state': lambda * a: 'none',
'configure': lambda * a: False,
'ready': lambda * a: False
- }
+ }
def action_dbconnect(self, cr, uid, ids, context = {}):
""" Connect DB with postgres ,Or MySql,Or Orcale
@@ -497,7 +497,7 @@ class olap_database_columns(osv.osv):
'text': 'Text',
'date': 'Date',
'time': 'TimeStamp without Time Zone',
- 'number': 'NUMBER',
+ 'number': 'NUMBER',
}
def _datatypes_get(self, *args, **argv):
@@ -718,9 +718,9 @@ class olap_database_columns(osv.osv):
if context['parent_id']:
parent_id = context['parent_id']
val = {
- 'cube_table_id': parent_id,
- 'table_id': table_id,
- 'field_id': ids[0]
+ 'cube_table_id': parent_id,
+ 'table_id': table_id,
+ 'field_id': ids[0]
}
id = self.pool.get('olap.cube.table.line').create(cr, uid, val, context)
@@ -993,7 +993,7 @@ class olap_cube_table(osv.osv):
relation = 'olap.database.columns',
string = 'Available Tables',
type = "many2many"
- ),
+ ),
}
_defaults = {
@@ -1070,8 +1070,8 @@ class olap_cube(osv.osv):
}
_defaults = {
- 'schema_id': _set_schema
- }
+ 'schema_id': _set_schema
+ }
olap_cube()
@@ -1091,8 +1091,8 @@ class olap_query_logs(osv.osv):
}
_defaults = {
- 'count':lambda * args: 0
- }
+ 'count':lambda * args: 0
+ }
olap_query_logs()
@@ -1120,7 +1120,7 @@ class olap_dimension(osv.osv):
'hierarchy_ids': fields.one2many('olap.hierarchy', 'dimension_id', 'Hierarchies'),
}
_defaults = {
- 'cube_id': _set_cube,
+ 'cube_id': _set_cube,
}
olap_dimension()
@@ -1414,15 +1414,15 @@ class olap_saved_query(osv.osv):
_decription = "Olap Saved Query"
_columns = {
- 'name': fields.text('Query Name', size = 64),
- 'user_id': fields.many2one('res.users', 'User'),
- 'query': fields.text('Query', required = True),
- 'cube_id': fields.many2one('olap.cube', 'Cube', required = True),
- 'mdx_id': fields.char('Module', size=64),
- 'schema_id': fields.many2one('olap.schema', 'Schema', required = True),
- 'time': fields.datetime('Time', required = True),
- 'axis_keys': fields.text('Axis Keys'),
- }
+ 'name': fields.text('Query Name', size = 64),
+ 'user_id': fields.many2one('res.users', 'User'),
+ 'query': fields.text('Query', required = True),
+ 'cube_id': fields.many2one('olap.cube', 'Cube', required = True),
+ 'mdx_id': fields.char('Module', size=64),
+ 'schema_id': fields.many2one('olap.schema', 'Schema', required = True),
+ 'time': fields.datetime('Time', required = True),
+ 'axis_keys': fields.text('Axis Keys'),
+ }
olap_saved_query()
# Wizard for the Load Data Structure
@@ -1865,11 +1865,11 @@ class bi_auto_configure_wizard(osv.osv_memory):
_columns = {
'name': fields.char('Fact Name' , size = 64, readonly = True),
- }
+ }
_defaults = {
- 'name': _get_name,
- }
+ 'name': _get_name,
+ }
def action_load(self, cr, uid, ids, context = None):
"""
@@ -2078,12 +2078,12 @@ class olap_warehouse_wizard(osv.osv_memory):
return {'type': 'ir.actions.act_window_close' }
_columns = {
- 'query': fields.text('Query', readonly=True),
- }
+ 'query': fields.text('Query', readonly=True),
+ }
_defaults = {
'query': _get_queries,
- }
+ }
olap_warehouse_wizard()
@@ -2152,14 +2152,14 @@ class olap_parameters_config_wizard(osv.osv_memory):
its not clear.", required = True),
'config_logo': fields.binary('Image', readonly=True),
'progress': fields.float('Configuration Progress', readonly=True),
- }
+ }
_defaults = {
'host_name': _get_host,
'host_port': _get_port,
'progress': _progress,
'config_logo': _get_image,
- }
+ }
def action_cancel(self, cr, uid, ids, conect = None):
"""
@@ -2171,11 +2171,11 @@ class olap_parameters_config_wizard(osv.osv_memory):
"""
return {
- 'view_type': 'form',
- "view_mode": 'form',
- 'res_model': 'ir.actions.configuration.wizard',
- 'type': 'ir.actions.act_window',
- 'target':'new',
+ 'view_type': 'form',
+ "view_mode": 'form',
+ 'res_model': 'ir.actions.configuration.wizard',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
}
def action_config(self, cr, uid, ids, context = None):
@@ -2203,11 +2203,11 @@ class olap_parameters_config_wizard(osv.osv_memory):
':' + (conf.host_port or '8080') + '/designer'})
return {
- 'view_type': 'form',
- "view_mode": 'form',
- 'res_model': 'ir.actions.configuration.wizard',
- 'type': 'ir.actions.act_window',
- 'target':'new',
+ 'view_type': 'form',
+ "view_mode": 'form',
+ 'res_model': 'ir.actions.configuration.wizard',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
}
olap_parameters_config_wizard()
diff --git a/addons/olap/wizard/olap_query_logs_clear.py b/addons/olap/wizard/olap_query_logs_clear.py
index 6d8f4a0ef45..d4f85a8d0af 100644
--- a/addons/olap/wizard/olap_query_logs_clear.py
+++ b/addons/olap/wizard/olap_query_logs_clear.py
@@ -26,7 +26,7 @@ class olap_query_logs_clear(osv.osv_memory):
_description = "Olap Query Logs Clear"
_columns = {
- 'user_name':fields.char('User', size=64, required=True, readonly=True),
+ 'user_name':fields.char('User', size=64, required=True, readonly=True),
}
def _getdata(self, cr, uid, context={}):
@@ -35,7 +35,7 @@ class olap_query_logs_clear(osv.osv_memory):
_defaults = {
'user_name': _getdata
- }
+ }
def clear_logs(self, cr, uid, part, context={}):
"""
@@ -52,11 +52,11 @@ class olap_query_logs_clear(osv.osv_memory):
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
value = {
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'olap.query.logs.clear.msg',
- 'views': [(id2, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'olap.query.logs.clear.msg',
+ 'views': [(id2, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
'target': 'new'
}
return value
diff --git a/addons/olap/wizard/wizard_load_configured_table.py b/addons/olap/wizard/wizard_load_configured_table.py
index da9a23cd1ba..7aea2f9da14 100644
--- a/addons/olap/wizard/wizard_load_configured_table.py
+++ b/addons/olap/wizard/wizard_load_configured_table.py
@@ -33,20 +33,14 @@ import netsvc
class wizard_load_configured_table(wizard.interface):
def _get_table_data(self, cr, uid, data, context={}):
pool_obj = pooler.get_pool(cr.dbname)
-
-# vals={}
-# vals['configure']=True
-# vals['state']='dbconfigure'
-# pooler.get_pool(cr.dbname).get('olap.schema').write(cr,uid,data['id'],vals)
-
wf_service = netsvc.LocalService('workflow')
wf_service.trg_validate(uid, 'olap.schema', data['id'], 'dbconfigure', cr)
-
+
lines=pool_obj.get('olap.schema').read(cr, uid, data['id'],context={})
fact_ids=pool_obj.get('olap.database.tables').search(cr, uid, ([('fact_database_id','=',lines['database_id'][0])]),context={})
model_data_ids = pool_obj.get('ir.model.data').search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_olap_database_tables_form')],context={})
resource_id = pool_obj.get('ir.model.data').read(cr,uid,model_data_ids,fields=['res_id'])[0]['res_id']
-
+
return {
'domain': "[('id','in', ["+','.join(map(str,fact_ids))+"])]",
'name': 'Database Tables',
@@ -56,7 +50,7 @@ class wizard_load_configured_table(wizard.interface):
'views': [(False,'tree'),(resource_id,'form')],
'type': 'ir.actions.act_window'
}
-
+
states = {
'init' : {
'actions' : [],
diff --git a/addons/olap/wizard/wizard_load_data.py b/addons/olap/wizard/wizard_load_data.py
index 989c6330469..b24d5464b2e 100644
--- a/addons/olap/wizard/wizard_load_data.py
+++ b/addons/olap/wizard/wizard_load_data.py
@@ -101,7 +101,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
WHERE table_schema = 'public'""")
for col in cr_db.fetchall():
- val={
+ val = {
'table_id': tables[col[0]],
'column_db_name': col[1],
'type': col[2],
@@ -126,7 +126,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
constraint_type = 'PRIMARY KEY')""")
print "Updating the Primary Key Constraint"
for constraint in cr_db.fetchall():
- val={
+ val = {
'primary_key':True
}
@@ -155,7 +155,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
constraint_type = 'FOREIGN KEY')""")
for constraint in cr_db.fetchall():
- val={
+ val = {
'related_to':tables[for_key[constraint[2]]]
}
id_to_write=filter(lambda x:(int(cols[x][1])==int(tables[constraint[0]])and (constraint[1]==cols[x][0])),cols)
@@ -209,7 +209,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
for col in cr_db.fetchall():
- val={
+ val = {
'table_id': tables[col[0]],
'column_db_name': col[1],
'type': col[2],
@@ -237,14 +237,14 @@ def olap_db_connect(self,cr,uid,part,context={}):
for constraint in cr_db.fetchall():
if constraint[0]:
- val={
- 'related_to':tables[constraint[1]]
- }
+ val = {
+ 'related_to':tables[constraint[1]]
+ }
else:
- val={
- 'primary_key':True
- }
+ val = {
+ 'primary_key':True
+ }
id_to_write=filter(lambda x:(int(cols[x][1])==int(tables[constraint[3]])and(constraint[2]==cols[x][0])),cols)
col_id=tcol.write(cr,uid,int(id_to_write[0]),val,context)
@@ -304,7 +304,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
type_col='varchar'
else:
type_col=col[2]
- val={
+ val = {
'table_id': tables[col[0]],
'column_db_name': col[1],
'type': type_col,
@@ -331,7 +331,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
temp = cr_db.fetchall()
pk_table = {}
for constraint in temp:
- val={
+ val = {
'primary_key' : True
}
pk_table[constraint[2]] = constraint[0]
@@ -364,7 +364,7 @@ def olap_db_connect(self,cr,uid,part,context={}):
for constraint in temp:
rel_constraint_name=constraints_map[constraint[2]]
req_table = pk_table[rel_constraint_name]
- val={
+ val = {
'related_to' : tables[req_table]
}
id_to_write=filter(lambda x:(int(cols[x][1])==int(tables[constraint[0]])and (constraint[1]==cols[x][0])),cols)
diff --git a/addons/olap/wizard/wizard_query_builder.py b/addons/olap/wizard/wizard_query_builder.py
index 3b69c1cf996..64bc7888868 100644
--- a/addons/olap/wizard/wizard_query_builder.py
+++ b/addons/olap/wizard/wizard_query_builder.py
@@ -136,15 +136,13 @@ query_builder_form = """
"""
query_builder_fields={
-
-
- 'dimension':{'string':'Dimension','type':'text'},
- 'hierarchy':{'string':'Hiearchy','type':'text'},
- 'level':{'string':'Level','type':'text'},
- 'measure':{'string':'Measure','type':'text'},
- 'mdx_query':{'string':'MDX Query','type':'text'},
- 'mdx_query_output':{'string':'MDX Query Output','type':'text'},
- }
+ 'dimension':{'string':'Dimension','type':'text'},
+ 'hierarchy':{'string':'Hiearchy','type':'text'},
+ 'level':{'string':'Level','type':'text'},
+ 'measure':{'string':'Measure','type':'text'},
+ 'mdx_query':{'string':'MDX Query','type':'text'},
+ 'mdx_query_output':{'string':'MDX Query Output','type':'text'},
+}
query_builder_fetch_form = """
@@ -185,10 +183,8 @@ def _execute_mdx(self, cr, uid, data, context):
ok = True
if not ok:
continue
- #print ' '*COLSPAN,
output =' '*COLSPAN
log.add(output)
- # print (('%-'+str(ROWSPAN)+'s ' ) * len(axis[1])) % tuple(map(lambda x: str(len(x[0])==i and x[1] or ''),axis[1]))
output=(('%-'+str(ROWSPAN)+'s ' ) * len(axis[1])) % tuple(map(lambda x: str(len(x[0])==i and x[1] or ''),axis[1]))
log.add(output)
@@ -197,23 +193,18 @@ def _execute_mdx(self, cr, uid, data, context):
print "--------------------------------------",x
temp=(axis[0].pop(0)[1])
print "--------------------------------------",temp
- # print ('%-'+str(COLSPAN)+'s')% (' '*(len(axis[0][0][0])-1)*2 + (temp),),
output =('%-'+str(COLSPAN)+'s')% (str(x)+str(temp))
log.add("\n")
log.add(output)
- #output=(temp)
for row in col:
if row==[False]:
- # print ('%-'+str(ROWSPAN)+'s')%('',),
output=('%-'+str(ROWSPAN)+'s')%('')
log.add(output)
else:
- # print ('%-'+str(ROWSPAN)+'s')%(row,),
output=('%-'+str(ROWSPAN)+'s')%(row)
log.add(output)
- #print
log.add("\n")
return {'mdx_query_output':log()}
diff --git a/addons/olap_crm/i18n/it.po b/addons/olap_crm/i18n/it.po
new file mode 100644
index 00000000000..a1c45470805
--- /dev/null
+++ b/addons/olap_crm/i18n/it.po
@@ -0,0 +1,31 @@
+# Italian 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-11-26 05:29+0000\n"
+"PO-Revision-Date: 2010-08-19 05:41+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Italian \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-20 03:40+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap_crm
+#: model:ir.module.module,description:olap_crm.module_meta_information
+msgid ""
+"\n"
+" Sale module will load the data in olap tables\n"
+" "
+msgstr ""
+
+#. module: olap_crm
+#: model:ir.module.module,shortdesc:olap_crm.module_meta_information
+msgid "olap_crm"
+msgstr "olap_crm"
diff --git a/addons/olap_crm/olap_crm.xml b/addons/olap_crm/olap_crm.xml
index 619e133e609..2fe3d2bffd9 100644
--- a/addons/olap_crm/olap_crm.xml
+++ b/addons/olap_crm/olap_crm.xml
@@ -7,7 +7,7 @@ CUSTOM CUBE FOR CRM
-->
- Open ERP CRM Database
+ OpenERP CRM Database
crm
postgres
postgres
@@ -68,10 +68,10 @@ cube table and cube table line
True
-
+
-
+
id
id
@@ -95,7 +95,7 @@ cube table and cube table line
True
-
+
id
id
@@ -144,7 +144,7 @@ cube table and cube table line
int4
-
+
canal_id
@@ -265,7 +265,7 @@ cube table and cube table line
DIMENSION Sections
-->
-
+
Sections
@@ -378,7 +378,7 @@ Category
-
+
Channels
@@ -428,7 +428,7 @@ Measures
avg(crm_case.planned_cost)
cr_postfix_comma
-
+
Planned Revenue
@@ -438,7 +438,7 @@ Measures
sum
cr_postfix_comma
-
+
Planned Revenue
@@ -447,7 +447,7 @@ Measures
crm_case
sum
-
+
Probability
@@ -456,7 +456,7 @@ Measures
crm_case
sum
-d
+
diff --git a/addons/olap_extract/wizard_olap_extract.py b/addons/olap_extract/wizard_olap_extract.py
index 75e546bd7b6..1e52884a1fa 100644
--- a/addons/olap_extract/wizard_olap_extract.py
+++ b/addons/olap_extract/wizard_olap_extract.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 .
#
##############################################################################
@@ -39,15 +39,15 @@ field1 = {
class wizard_olap_extract(wizard.interface):
-
+
def zipper(self,zipname,filename,mode="a"):
z = zipfile.ZipFile(zipname+".zip", mode)
z.write(filename)
print "\n",z.printdir()
-
-
+
+
def write_csv(self,filename,content=[]):
- fid = open(filename, 'w')
+ fid = open(filename, 'w')
if fid == -1:
print 'File: temp.csv not found or could not be opened'
return False
@@ -55,20 +55,20 @@ class wizard_olap_extract(wizard.interface):
writer=csv.writer(fid, 'TINY',delimiter=',')
for row in content:
writer.writerow(row)
- fid.close
+ fid.close
return True
-
+
def table_depth(self,cr,uid,list=[],context={}):
res={}
templeft={}
tempright={}
for table_id in list:
- lines=pooler.get_pool(cr.dbname).get('olap.cube.table').browse(cr, uid,table_id,context)
+ lines=pooler.get_pool(cr.dbname).get('olap.cube.table').browse(cr, uid,table_id,context)
res[str(lines.id)] = ["cubetable_"+str(lines.id),lines.name and lines.name or '',lines.table_alias and lines.table_alias or '',lines.key_left and lines.key_left or '',lines.key_right and lines.key_right or '',lines.table_left_id.id and "cubetable_"+str(lines.table_left_id.id) or '',lines.table_right_id.id and "cubetable_"+str(lines.table_right_id.id) or '']
if(lines.table_left_id.id):
templeft = self.table_depth(cr,uid,[lines.table_left_id.id],context)
-
+
if templeft:
for temp in templeft:
if not res.has_key(temp):
@@ -76,24 +76,24 @@ class wizard_olap_extract(wizard.interface):
if(lines.table_right_id.id):
- tempright = self.table_depth(cr,uid,[lines.table_right_id.id],context)
-
+ tempright = self.table_depth(cr,uid,[lines.table_right_id.id],context)
+
if tempright:
for temp in tempright:
if not res.has_key(temp):
res[temp]= tempright[temp]
return res
-
-
+
+
def _extract_schema(self, cr, uid, data, context={}):
_name = data['form']['module_name']
_modulename = "olap_"+_name
-
+
dirname = _modulename
if not os.path.isdir("./addons/" + dirname + "/"):
- os.mkdir("./addons/" + dirname + "/")
-
+ os.mkdir("./addons/" + dirname + "/")
+
os.chdir("./addons/"+dirname)
_init = "import %s" % _modulename
@@ -101,17 +101,17 @@ class wizard_olap_extract(wizard.interface):
f.write(_init)
f.close()
self.zipper(_modulename, "__init__.py","w")
-
+
_init_files = {
- "1":"olap.fact.database.csv",
- "2":"olap.schema.csv",
- "5":"olap.cube.table.csv",
- "6":"olap.cube.csv",
- "7":"olap.dimension.csv",
- "8":"olap.hierarchy.csv",
- "9":"olap.level.csv",
- "10":"olap.measure.csv"
- }
+ "1":"olap.fact.database.csv",
+ "2":"olap.schema.csv",
+ "5":"olap.cube.table.csv",
+ "6":"olap.cube.csv",
+ "7":"olap.dimension.csv",
+ "8":"olap.hierarchy.csv",
+ "9":"olap.level.csv",
+ "10":"olap.measure.csv"
+ }
_init_xml = """"%(1)s",
"%(2)s",
"%(5)s",
@@ -121,7 +121,7 @@ class wizard_olap_extract(wizard.interface):
"%(9)s",
"%(10)s",
""" % _init_files
-
+
data['modulename'] = _modulename
data['init_xml'] = _init_xml
@@ -144,36 +144,36 @@ class wizard_olap_extract(wizard.interface):
f = open("__terp__.py","w")
f.write(_terp)
- f.close()
- self.zipper(_modulename, "__terp__.py")
-
+ f.close()
+ self.zipper(_modulename, "__terp__.py")
+
schema_id = data['id']
lines=pooler.get_pool(cr.dbname).get('olap.schema').browse(cr, uid, schema_id,context)
-
+
_extract=[]
_extract.append(['id','name','db_name','db_login','db_password'])
_extract.append(["db_"+str(lines.database_id.id),lines.database_id.name,lines.database_id.db_name,lines.database_id.db_login,lines.database_id.db_password])
self.write_csv('olap.fact.database.csv',_extract)
self.zipper(_modulename, "olap.fact.database.csv")
-
+
_extract=[]
_extract.append(['id','name','database_id:id','loaded','configure','ready','state','note'])
_extract.append(["schema_"+str(lines.id),lines.name,"db_"+str(lines.database_id.id),lines.loaded and lines.loaded or '',lines.configure and lines.configure or '', lines.ready and lines.ready or '',lines.state,lines.note and lines.note or ''])
self.write_csv('olap.schema.csv',_extract)
- self.zipper(_modulename, "olap.schema.csv")
-
+ self.zipper(_modulename, "olap.schema.csv")
+
cube_ids = lines.cube_ids
_extractcubes=[]
_extractcubes.append(['id','name','table_id:id','schema_id:id'])
-
+
_extractmeasures=[]
- _extractmeasures.append(['id','name','cube_id:id','value_column','value_sql','agregator','datatype','formatstring'])
-
+ _extractmeasures.append(['id','name','cube_id:id','value_column','value_sql','agregator','datatype','formatstring'])
+
_extractdimension=[]
_extractdimension.append(['id','name','foreign_key','foreign_key_table','cube_id:id'])
-
+
_extracthiers=[]
_extracthiers.append(['id','name','primary_key','primary_key_table','field_name','member_all','member_default','sequence','type','dimension_id:id','table_id:id'])
@@ -182,26 +182,26 @@ class wizard_olap_extract(wizard.interface):
_cube_table_ids = []
for cube in cube_ids:
- _extractcubes.append(["cube_"+str(cube.id),cube.name,"cubetable_"+str(cube.table_id.id),"schema_"+str(cube.schema_id.id)])
- _cube_table_ids.append(cube.table_id.id)
-
+ _extractcubes.append(["cube_"+str(cube.id),cube.name,"cubetable_"+str(cube.table_id.id),"schema_"+str(cube.schema_id.id)])
+ _cube_table_ids.append(cube.table_id.id)
+
measure_ids = cube.measure_ids
for measure in measure_ids:
- _extractmeasures.append(["msr_"+str(measure.id),measure.name,"cube_"+str(measure.cube_id.id),measure.value_column and measure.value_column or '',measure.value_sql and measure.value_sql or '',measure.agregator,measure.datatype and measure.datatype or '',measure.formatstring])
-
+ _extractmeasures.append(["msr_"+str(measure.id),measure.name,"cube_"+str(measure.cube_id.id),measure.value_column and measure.value_column or '',measure.value_sql and measure.value_sql or '',measure.agregator,measure.datatype and measure.datatype or '',measure.formatstring])
+
dimension_ids = cube.dimension_ids
for dimension in dimension_ids:
_extractdimension.append(["dim_"+str(dimension.id),dimension.name,dimension.foreign_key and dimension.foreign_key or '',dimension.foreign_key_table and dimension.foreign_key_table or '',"cube_"+str(dimension.cube_id.id)])
-
+
hiers_ids = dimension.hierarchy_ids
for hier in hiers_ids:
_extracthiers.append(["hier_"+str(hier.id),hier.name,hier.primary_key,hier.primary_key_table and hier.primary_key_table or '',hier.field_name,hier.member_all,hier.member_default,hier.sequence,hier.type,"dim_"+str(hier.dimension_id.id),"cubetable_"+str(hier.table_id.id)])
_cube_table_ids.append(hier.table_id.id)
-
+
level_ids = hier.level_ids
for level in level_ids:
_extractlevels.append(["lvl_"+str(level.id),level.name,level.column_name,level.column_id_name,level.type,level.table_name,level.sequence,"hier_"+str(level.hierarchy_id.id)])
-
+
res={}
_extract=[]
_extract.append(['id','name','table_alias','key_left','key_right','table_left_id:id','table_right_id:id'])
@@ -209,37 +209,37 @@ class wizard_olap_extract(wizard.interface):
key = res.keys()
key = map(lambda x: int(x),key)
key.sort()
-
+
for k in key:
_extract.append(res[str(k)])
-
+
self.write_csv('olap.cube.csv',_extractcubes)
self.zipper(_modulename, "olap.cube.csv")
-
+
self.write_csv('olap.measure.csv',_extractmeasures)
- self.zipper(_modulename, "olap.measure.csv")
-
+ self.zipper(_modulename, "olap.measure.csv")
+
self.write_csv('olap.dimension.csv',_extractdimension)
self.zipper(_modulename, "olap.dimension.csv")
-
+
self.write_csv('olap.hierarchy.csv',_extracthiers)
- self.zipper(_modulename, "olap.hierarchy.csv")
-
+ self.zipper(_modulename, "olap.hierarchy.csv")
+
self.write_csv('olap.level.csv',_extractlevels)
- self.zipper(_modulename, "olap.level.csv")
+ self.zipper(_modulename, "olap.level.csv")
self.write_csv('olap.cube.table.csv',_extract)
- self.zipper(_modulename, "olap.cube.table.csv")
+ self.zipper(_modulename, "olap.cube.table.csv")
return {}
-
+
states = {
-
+
'init': {
'actions': [],
'result': {'type':'form','arch':form1, 'fields':field1, 'state':[('end','Cancel'),('ok','OK')]}
- },
-
+ },
+
'ok' : {
'actions' : [],
'result' : {'type' : 'action' ,'action':_extract_schema,'state':'end'}
diff --git a/addons/olap_sale/i18n/it.po b/addons/olap_sale/i18n/it.po
new file mode 100644
index 00000000000..734d3c768b2
--- /dev/null
+++ b/addons/olap_sale/i18n/it.po
@@ -0,0 +1,34 @@
+# Italian 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-11-26 05:29+0000\n"
+"PO-Revision-Date: 2010-08-18 10:28+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Italian \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-19 03:49+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: olap_sale
+#: model:ir.module.module,description:olap_sale.module_meta_information
+msgid ""
+"\n"
+" Sale module will load the data in olap tables\n"
+" "
+msgstr ""
+"\n"
+" Il modulo di Vendita caricherà i dati in tabelle OLAP\n"
+" "
+
+#. module: olap_sale
+#: model:ir.module.module,shortdesc:olap_sale.module_meta_information
+msgid "olap_sale"
+msgstr "olap_sale"
diff --git a/addons/olap_sale/olap_sale.xml b/addons/olap_sale/olap_sale.xml
index f5a355de34d..ec815e10458 100644
--- a/addons/olap_sale/olap_sale.xml
+++ b/addons/olap_sale/olap_sale.xml
@@ -65,7 +65,7 @@ cube table and cube table line
res_partner_address
True
-
+
res_country
@@ -87,7 +87,7 @@ cube table and cube table line
True
-
+
product_id
product_id
@@ -105,15 +105,7 @@ cube table and cube table line
True
True
-
+
id
id
@@ -265,16 +257,6 @@ cube table and cube table line
True
-
order_id
order_id
@@ -360,7 +342,7 @@ cube table and cube table line
varchar
True
-
+
country_id
@@ -369,7 +351,7 @@ cube table and cube table line
True
-
+
city
@@ -388,16 +370,6 @@ cube table and cube table line
True
-
product_uom_qty
product_uom_qty
@@ -425,7 +397,7 @@ cube table and cube table line
diff --git a/addons/outlook/README b/addons/outlook/README
new file mode 100644
index 00000000000..404f2121c6a
--- /dev/null
+++ b/addons/outlook/README
@@ -0,0 +1,31 @@
+OpenERP Outlook PLUG-IN Installation Guide
+
+Pre requirements :
+======================================================================================
+1.Python 2.6+ . python can be downloaded from http://www.python.org/download/releases/ .
+2.Python for Windows extensions - PyWin32 this module for python must be installed for appropriate version of the Python. It can be downloaded from http://sourceforge.net/projects/pywin32/files/ or http://starship.python.net/crew/mhammond/win32/
+
+How to install openerp-outlook plug-in?
+======================================================================================
+1.Open your Python installation directory (e.g.: C:\Python26).
+2.Create folder named “openerp-outlook-plugin”.
+3.Extract your zip file “outlook-plugin.zip” to the folder.
+4.Open the folder outlook-plugin.
+5.And Run “Register-plugin.bat” file.
+6.Run Outlook and Check addin has been registered.
+7.Tools->OpenERP Configuration and test your connection.
+8.See User Guide for More.
+
+How to uninstall openerp-outlook plug-in?
+=====================================================================================
+1.Open the folder outlook-plugin.
+2.And Run “Unregister-plugin.bat” file.
+
+Note : Plug In has been successfully tested with MS Office 2003 and MS Offcie 2007.
+
+
+Enjoy Archiving your Outlook E-mails to OpenERP.
+
+
+
+
diff --git a/addons/outlook/__init__.py b/addons/outlook/__init__.py
index 26c654db9dd..0190f2f396f 100644
--- a/addons/outlook/__init__.py
+++ b/addons/outlook/__init__.py
@@ -18,4 +18,5 @@
# along with this program. If not, see .
#
##############################################################################
+import installer
diff --git a/addons/outlook/__openerp__.py b/addons/outlook/__openerp__.py
index 7a6d56b9e59..742714c6104 100644
--- a/addons/outlook/__openerp__.py
+++ b/addons/outlook/__openerp__.py
@@ -18,14 +18,16 @@
# along with this program. If not, see .
#
##############################################################################
+
+
{
- "name" : "Outlook Interface",
- "version" : "1.0",
- "author" : "OpenERP SA",
- "website" : "http://www.openerp.com/",
- "depends" : ["base", "mail_gateway"],
- "category" : "Generic Modules/Outlook interface",
- "description": '''
+ 'name' : 'Outlook Interface',
+ 'version' : '1.0',
+ 'author' : 'OpenERP SA',
+ 'website' : 'http://www.openerp.com/',
+ 'depends' : ['base', 'mail_gateway'],
+ 'category' : 'Generic Modules/Outlook interface',
+ 'description': '''
This module provide the Outlook plug-in.
Outlook plug-in allows you to select an object that you’d like to add
@@ -34,11 +36,11 @@
mail in mailgate.messages with attachments.
''',
- "init_xml" : [],
- "demo_xml" : [],
- "update_xml" : [],
- "active": False,
- "installable": True
+ 'init_xml' : [],
+ 'demo_xml' : [],
+ 'update_xml' : ['outlook_installer.xml'],
+ 'active': False,
+ 'installable': True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/outlook/installer.py b/addons/outlook/installer.py
new file mode 100755
index 00000000000..b0459ccbaeb
--- /dev/null
+++ b/addons/outlook/installer.py
@@ -0,0 +1,70 @@
+# -*- 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 osv import fields
+from osv import osv
+from tools import config
+
+import base64
+
+class outlook_installer(osv.osv_memory):
+ _name = 'outlook.installer'
+ _inherit = 'res.config.installer'
+
+ def default_get(self, cr, uid, fields, context={}):
+ data = super(outlook_installer, self).default_get(cr, uid, fields, context)
+ doc_file = open(config['addons_path'] + "/outlook/doc/Installation Guide to OpenERP Outlook Plug-in.doc", 'r')
+ data['doc_file'] = base64.encodestring(doc_file.read())
+ file = open(config['addons_path'] + "/outlook/plugin/openerp-outlook-plugin.zip", 'r')
+ data['plugin_file'] = base64.encodestring(file.read())
+ return data
+
+ _columns = {
+ 'name':fields.char('File name', size=34),
+ 'doc_name':fields.char('File name', size=64),
+ 'outlook':fields.boolean('Outlook Module ', help="Allows you to select an object that you’d like to add to your email and its attachments."),
+ 'plugin_file':fields.binary('Outlook Plug-in', readonly=True, help="outlook plug-in file. Save as this file and install this plug-in in outlook."),
+ 'doc_file':fields.binary('Installation Manual', help="The documentation file :- how to install Outlook Plug-in.", readonly=True),
+ 'description':fields.text('Description', readonly=True)
+ }
+
+ _defaults = {
+ 'outlook' : True,
+ 'name' : 'OpenERP-Outlook-PlugIn.zip',
+ 'doc_name' : 'Installation Guide to OpenERP Outlook Plug-in.doc',
+ 'description' : """ * Save the outlook plugin.
+* Follows the step to install outlook plugin.
+Pre-requirements :
+ 1) Python 2.6+ .
+ 2) Python for Windows extensions - PyWin32 this module for python must be installed for appropriate version of the Python.
+
+How to install openerp-outlook plug-in?
+ 1) Extract zip file “openerp-outlook-plugin.zip” .
+ 2) Open the folder openerp-outlook-plugin.
+ 3) And Run “Register-plugin.bat” file.
+ 4) Run Outlook and Check addin has been registered.
+ 5) Tools->OpenERP Configuration and test your connection.
+ 6) See User Guide for More.
+ 7) Keep All extratced files in some safe palce
+ (e.g. python installation Directory "C:\pythonXX\\" or Windows installation Directory "C:\Program Files\\" ).
+"""
+ }
+outlook_installer()
diff --git a/addons/outlook/outlook_installer.xml b/addons/outlook/outlook_installer.xml
new file mode 100755
index 00000000000..85e923512f6
--- /dev/null
+++ b/addons/outlook/outlook_installer.xml
@@ -0,0 +1,125 @@
+
+
+
+
+ outlook.installer.view
+ outlook.installer
+ form
+
+
+
+
+ Outlook Plug-In Installation
+
+
+ Outlook
+
+
+ This Module allows you to select an object that you would like to add to your email and its attachments from MS Outlook. You can select a partner, a task, a project, an analytical account, or any other object and Archived selected mail in mailgate.messages with attachments.
+
+
+ Configure
+
+
+
+ 15
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Outlook Module Installation
+ ir.actions.act_window
+ outlook.installer
+
+ form
+ form
+ new
+
+
+
+
+ 4
+
+
+
+
+
+ outlook.wizard
+ outlook.installer
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Outlook Module Installation
+ ir.actions.act_window
+ outlook.installer
+
+ form
+ form
+ new
+
+
+
+
+
+
+
+
+
diff --git a/addons/outlook/plugin/Register-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
similarity index 100%
rename from addons/outlook/plugin/Register-plugin.bat
rename to addons/outlook/plugin/openerp-outlook-plugin/Register-plugin.bat
diff --git a/addons/outlook/plugin/Unregister-plugin.bat b/addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
similarity index 100%
rename from addons/outlook/plugin/Unregister-plugin.bat
rename to addons/outlook/plugin/openerp-outlook-plugin/Unregister-plugin.bat
diff --git a/addons/outlook/plugin/addin.py b/addons/outlook/plugin/openerp-outlook-plugin/addin.py
similarity index 100%
rename from addons/outlook/plugin/addin.py
rename to addons/outlook/plugin/openerp-outlook-plugin/addin.py
diff --git a/addons/outlook/plugin/chilkat.py b/addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
similarity index 100%
rename from addons/outlook/plugin/chilkat.py
rename to addons/outlook/plugin/openerp-outlook-plugin/chilkat.py
diff --git a/addons/outlook/plugin/dialogs/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/__init__.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/__init__.py
diff --git a/addons/outlook/plugin/dialogs/dialog_map.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dialog_map.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py
diff --git a/addons/outlook/plugin/dialogs/dlgcore.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dlgcore.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgcore.py
diff --git a/addons/outlook/plugin/dialogs/dlgutils.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/dlgutils.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/dlgutils.py
diff --git a/addons/outlook/plugin/dialogs/opt_processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/opt_processors.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/opt_processors.py
diff --git a/addons/outlook/plugin/dialogs/processors.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/processors.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/processors.py
diff --git a/addons/outlook/plugin/dialogs/resources/OpenERP_Logo.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/OpenERP_Logo.bmp
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/OpenERP_Logo.bmp
diff --git a/addons/outlook/plugin/dialogs/resources/__init__.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/__init__.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/__init__.py
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.h b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.h
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.h
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.py
diff --git a/addons/outlook/plugin/dialogs/resources/dialogs.rc b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/dialogs.rc
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/dialogs.rc
diff --git a/addons/outlook/plugin/dialogs/resources/openerp_logo.png b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/openerp_logo.png
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo.png
diff --git a/addons/outlook/plugin/dialogs/resources/openerp_logo1.bmp b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/openerp_logo1.bmp
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/openerp_logo1.bmp
diff --git a/addons/outlook/plugin/dialogs/resources/rc2py.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/rc2py.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rc2py.py
diff --git a/addons/outlook/plugin/dialogs/resources/rcparser.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
similarity index 100%
rename from addons/outlook/plugin/dialogs/resources/rcparser.py
rename to addons/outlook/plugin/openerp-outlook-plugin/dialogs/resources/rcparser.py
diff --git a/addons/outlook/plugin/eml.py b/addons/outlook/plugin/openerp-outlook-plugin/eml.py
similarity index 100%
rename from addons/outlook/plugin/eml.py
rename to addons/outlook/plugin/openerp-outlook-plugin/eml.py
diff --git a/addons/outlook/plugin/manager.py b/addons/outlook/plugin/openerp-outlook-plugin/manager.py
similarity index 100%
rename from addons/outlook/plugin/manager.py
rename to addons/outlook/plugin/openerp-outlook-plugin/manager.py
diff --git a/addons/outlook/plugin/tiny_xmlrpc.py b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
similarity index 100%
rename from addons/outlook/plugin/tiny_xmlrpc.py
rename to addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py
diff --git a/addons/partner_geo_assign/__openerp__.py b/addons/partner_geo_assign/__openerp__.py
index ccfe6ba7c45..e5ef5b5dd9d 100644
--- a/addons/partner_geo_assign/__openerp__.py
+++ b/addons/partner_geo_assign/__openerp__.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 .
#
##############################################################################
@@ -33,7 +33,7 @@ based on geolocalization.
'data': [
'res_partner_view.xml',
'crm_lead_view.xml',
- ],
+ ],
'installable': True,
'active': False,
'certificate': False,
diff --git a/addons/partner_geo_assign/i18n/en_US.po b/addons/partner_geo_assign/i18n/en_US.po
new file mode 100644
index 00000000000..dd55437be2d
--- /dev/null
+++ b/addons/partner_geo_assign/i18n/en_US.po
@@ -0,0 +1,112 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * partner_geo_assign
+#
+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:46:18+0000\n"
+"PO-Revision-Date: 2010-08-20 08:46:18+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: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Network error"
+msgstr "Network error"
+
+#. module: partner_geo_assign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: partner_geo_assign
+#: help:res.partner,partner_weight:0
+msgid "Gives the probability to assign a lead to this partner. (0 means no assignation.)"
+msgstr "Gives the probability to assign a lead to this partner. (0 means no assignation.)"
+
+#. module: partner_geo_assign
+#: model:ir.module.module,description:partner_geo_assign.module_meta_information
+msgid "\n"
+"This is the module used by OpenERP SA to redirect customers to his partners,\n"
+"based on geolocalization.\n"
+" "
+msgstr "\n"
+"This is the module used by OpenERP SA to redirect customers to his partners,\n"
+"based on geolocalization.\n"
+" "
+
+#. module: partner_geo_assign
+#: field:res.partner,partner_weight:0
+msgid "Weight"
+msgstr "Weight"
+
+#. module: partner_geo_assign
+#: model:ir.module.module,shortdesc:partner_geo_assign.module_meta_information
+msgid "Partner Geo-Localisation"
+msgstr "Partner Geo-Localisation"
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localization"
+msgstr "Geo Localization"
+
+#. module: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Could not contact geolocation servers, please make sure you have a working internet connection (%s)"
+msgstr "Could not contact geolocation servers, please make sure you have a working internet connection (%s)"
+
+#. module: partner_geo_assign
+#: 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: partner_geo_assign
+#: field:res.partner,date_localization:0
+msgid "Geo Localization Date"
+msgstr "Geo Localization Date"
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assign"
+msgstr "Geo Assign"
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_latitude:0
+#: field:res.partner,partner_latitude:0
+msgid "Geo Latitude"
+msgstr "Geo Latitude"
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_crm_lead
+msgid "crm.lead"
+msgstr "crm.lead"
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_res_partner
+msgid "Partner"
+msgstr "Partner"
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assignation"
+msgstr "Geo Assignation"
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localize"
+msgstr "Geo Localize"
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_longitude:0
+#: field:res.partner,partner_longitude:0
+msgid "Geo Longitude"
+msgstr "Geo Longitude"
+
diff --git a/addons/partner_geo_assign/i18n/fr.po b/addons/partner_geo_assign/i18n/fr.po
new file mode 100644
index 00000000000..95bdf78088c
--- /dev/null
+++ b/addons/partner_geo_assign/i18n/fr.po
@@ -0,0 +1,109 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * partner_geo_assign
+#
+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:40:20+0000\n"
+"PO-Revision-Date: 2010-08-20 08:40:20+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: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Network error"
+msgstr ""
+
+#. module: partner_geo_assign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: partner_geo_assign
+#: help:res.partner,partner_weight:0
+msgid "Gives the probability to assign a lead to this partner. (0 means no assignation.)"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.module.module,description:partner_geo_assign.module_meta_information
+msgid "\n"
+"This is the module used by OpenERP SA to redirect customers to his partners,\n"
+"based on geolocalization.\n"
+" "
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:res.partner,partner_weight:0
+msgid "Weight"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.module.module,shortdesc:partner_geo_assign.module_meta_information
+msgid "Partner Geo-Localisation"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localization"
+msgstr ""
+
+#. module: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Could not contact geolocation servers, please make sure you have a working internet connection (%s)"
+msgstr ""
+
+#. module: partner_geo_assign
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:res.partner,date_localization:0
+msgid "Geo Localization Date"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assign"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_latitude:0
+#: field:res.partner,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_crm_lead
+msgid "crm.lead"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assignation"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localize"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_longitude:0
+#: field:res.partner,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
diff --git a/addons/partner_geo_assign/i18n/partner_geo_assign.pot b/addons/partner_geo_assign/i18n/partner_geo_assign.pot
new file mode 100644
index 00000000000..95bdf78088c
--- /dev/null
+++ b/addons/partner_geo_assign/i18n/partner_geo_assign.pot
@@ -0,0 +1,109 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * partner_geo_assign
+#
+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:40:20+0000\n"
+"PO-Revision-Date: 2010-08-20 08:40:20+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: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Network error"
+msgstr ""
+
+#. module: partner_geo_assign
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: partner_geo_assign
+#: help:res.partner,partner_weight:0
+msgid "Gives the probability to assign a lead to this partner. (0 means no assignation.)"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.module.module,description:partner_geo_assign.module_meta_information
+msgid "\n"
+"This is the module used by OpenERP SA to redirect customers to his partners,\n"
+"based on geolocalization.\n"
+" "
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:res.partner,partner_weight:0
+msgid "Weight"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.module.module,shortdesc:partner_geo_assign.module_meta_information
+msgid "Partner Geo-Localisation"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localization"
+msgstr ""
+
+#. module: partner_geo_assign
+#: code:addons/partner_geo_assign/partner_geo_assign.py:0
+#, python-format
+msgid "Could not contact geolocation servers, please make sure you have a working internet connection (%s)"
+msgstr ""
+
+#. module: partner_geo_assign
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:res.partner,date_localization:0
+msgid "Geo Localization Date"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assign"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_latitude:0
+#: field:res.partner,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_crm_lead
+msgid "crm.lead"
+msgstr ""
+
+#. module: partner_geo_assign
+#: model:ir.model,name:partner_geo_assign.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:crm.lead:0
+msgid "Geo Assignation"
+msgstr ""
+
+#. module: partner_geo_assign
+#: view:res.partner:0
+msgid "Geo Localize"
+msgstr ""
+
+#. module: partner_geo_assign
+#: field:crm.lead,partner_longitude:0
+#: field:res.partner,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index ff55c06f3b6..cab0fb40dc0 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -41,42 +41,39 @@ Main features :
'update_xml': [
'security/point_of_sale_security.xml',
'security/ir.model.access.csv',
- 'wizard/pos_details.xml',
+ 'wizard/pos_details.xml',
'wizard/pos_add_product.xml',
'wizard/pos_confirm.xml',
'wizard/pos_discount.xml',
'wizard/pos_get_sale.xml',
'wizard/pos_open_statement.xml',
- 'wizard/pos_close_statement.xml',
+ 'wizard/pos_close_statement.xml',
'wizard/pos_box_entries.xml',
'wizard/pos_payment_report_user_view.xml',
'wizard/pos_payment_report_date_view.xml',
- 'wizard/pos_box_out.xml',
+ 'wizard/pos_box_out.xml',
'wizard/pos_sales_user.xml',
- 'wizard/all_closed_cashbox_of_the_day.xml',
+ 'wizard/all_closed_cashbox_of_the_day.xml',
'wizard/pos_sales_user_current_user.xml',
- 'wizard/pos_sale_user_today.xml',
- 'wizard/pos_receipt_view.xml',
- 'wizard/pos_payment_report_user.xml',
+ 'wizard/pos_sale_user_today.xml',
+ 'wizard/pos_receipt_view.xml',
+ 'wizard/pos_payment_report_user.xml',
'wizard/pos_payment_report.xml',
'wizard/pos_payment.xml',
'wizard/pos_scan_product_view.xml',
'wizard/pos_return_view.xml',
'pos_report.xml',
- # 'pos_wizard.xml',
'pos_view.xml',
'report/report_pos_order_view.xml',
'report/report_cash_register_view.xml',
'pos_sequence.xml',
- 'posrule_data.xml',
'pos_data.xml',
'pos_workflow.xml',
'statement_view.xml',
'statement_report.xml',
- 'statement_data.xml',
],
- 'demo_xml': ['pos_demo.xml','singer_statement_demo.xml','multi_company_stock_data.xml'],
-# 'test':['test/pos_test.yml',],
+ 'demo_xml': ['pos_demo.xml','singer_statement_demo.xml','multi_company_stock_data.xml',],
+ 'test':['test/pos_test.yml',],
'installable': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/account_bank_statement.py b/addons/point_of_sale/account_bank_statement.py
index fd23bc3df18..8f5f33c9107 100644
--- a/addons/point_of_sale/account_bank_statement.py
+++ b/addons/point_of_sale/account_bank_statement.py
@@ -37,7 +37,7 @@ class account_journal(osv.osv):
'journal_users': fields.many2many('res.users','pos_journal_users','journal_id','user_id','Users'),
}
_defaults = {
- 'check_dtls': lambda *a:True,
+ 'check_dtls': lambda *a:False,
'auto_cash': lambda *a:True,
}
account_journal()
diff --git a/addons/point_of_sale/i18n/it.po b/addons/point_of_sale/i18n/it.po
index 35a2ec53372..16dc11947a9 100644
--- a/addons/point_of_sale/i18n/it.po
+++ b/addons/point_of_sale/i18n/it.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 08:44+0000\n"
-"Last-Translator: Luca Bedogni \n"
+"PO-Revision-Date: 2010-08-18 09:47+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:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: point_of_sale
@@ -92,7 +92,7 @@ msgstr "Vendite (Cronologia)"
#. module: point_of_sale
#: help:pos.order,user_id:0
msgid "This is the logged in user (not necessarily the salesman)."
-msgstr ""
+msgstr "Questo è l'utente loggato (non necessariamente il venditore)."
#. module: point_of_sale
#: wizard_view:pos.sale.get,init:0
@@ -226,7 +226,7 @@ msgstr "Ordini di Rimborso"
#. module: point_of_sale
#: field:pos.order,last_out_picking:0
msgid "Last Output Picking"
-msgstr ""
+msgstr "Ultimo raccolta in uscita"
#. module: point_of_sale
#: wizard_view:pos.config.journal,init:0
@@ -427,7 +427,7 @@ msgstr "Righe Punto Vendita del Giorno"
#. module: point_of_sale
#: field:pos.order,nb_print:0
msgid "Number of Print"
-msgstr ""
+msgstr "Numero di copie da stampare"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_default_journal
@@ -447,7 +447,7 @@ msgstr "Sconto (%)"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Fiscal Position Remark :"
-msgstr ""
+msgstr "Commento Posizione Fiscale:"
#. module: point_of_sale
#: model:ir.actions.wizard,name:point_of_sale.pos_add_product
@@ -487,7 +487,7 @@ msgstr "Punto Vendita"
#. module: point_of_sale
#: field:pos.order,salesman_id:0
msgid "Salesman"
-msgstr ""
+msgstr "Venditore"
#. module: point_of_sale
#: rml:pos.details:0
@@ -514,7 +514,7 @@ msgstr "Totale del Giorno"
#. module: point_of_sale
#: wizard_button:pos.scan_product,init,add:0
msgid "Add"
-msgstr ""
+msgstr "Aggiungi"
#. module: point_of_sale
#: selection:pos.order,state:0
@@ -576,12 +576,12 @@ msgstr "Utente"
#. module: point_of_sale
#: field:pos.payment,payment_date:0
msgid "Payment Date"
-msgstr ""
+msgstr "Data di pagamento"
#. module: point_of_sale
#: field:pos.payment,payment_name:0
msgid "Payment Name"
-msgstr ""
+msgstr "Nome del Pagamento"
#. module: point_of_sale
#: rml:pos.details:0
@@ -691,12 +691,12 @@ msgstr "Ordine Rimborso:"
#. module: point_of_sale
#: field:report.transaction.pos,no_trans:0
msgid "Number of Transaction"
-msgstr ""
+msgstr "Numero di transazioni"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Net Total:"
-msgstr ""
+msgstr "Imponibile Totale"
#. module: point_of_sale
#: view:pos.order:0
@@ -773,7 +773,7 @@ msgstr "Sconto Totale"
#. module: point_of_sale
#: field:pos.order,invoice_wanted:0
msgid "Create Invoice"
-msgstr ""
+msgstr "Crea la fattura"
#. module: point_of_sale
#: wizard_view:pos.refund_order,init:0
@@ -820,7 +820,7 @@ msgstr "Registro"
#. module: point_of_sale
#: wizard_field:pos.scan_product,init,gencod:0
msgid "Barcode"
-msgstr ""
+msgstr "Codice a barre"
#. module: point_of_sale
#: rml:pos.invoice:0
@@ -840,12 +840,12 @@ msgstr "Righe Punto Vendita"
#. module: point_of_sale
#: rml:pos.invoice:0
msgid "Tel. :"
-msgstr ""
+msgstr "Tel. :"
#. module: point_of_sale
#: field:pos.payment,payment_nb:0
msgid "Piece Number"
-msgstr ""
+msgstr "Numero di pezzi"
#. module: point_of_sale
#: wizard_field:pos.config.journal,init,default_journal_gift:0
@@ -911,7 +911,7 @@ msgstr "Registrazione Contabile"
#: wizard_field:pos.payment,ask_pay,payment_id:0
#: field:pos.payment,payment_id:0
msgid "Payment Term"
-msgstr ""
+msgstr "Termini di pagamento"
#. module: point_of_sale
#: rml:pos.invoice:0
@@ -929,7 +929,7 @@ msgstr "Azioni"
#. module: point_of_sale
#: help:pos.order,salesman_id:0
msgid "This is the salesman actually making the order."
-msgstr ""
+msgstr "Questo è il venditore che attualmente sta facendo l'ordine"
#. module: point_of_sale
#: rml:pos.details:0
@@ -952,12 +952,12 @@ msgstr "Azienda:"
#. module: point_of_sale
#: rml:pos.lines:0
msgid "Print Date"
-msgstr ""
+msgstr "Data di stampa"
#. module: point_of_sale
#: rml:pos.receipt:0
msgid "OPERATION N° :"
-msgstr ""
+msgstr "N° operazione"
#. module: point_of_sale
#: rml:pos.lines:0
diff --git a/addons/point_of_sale/i18n/lt.po b/addons/point_of_sale/i18n/lt.po
index 35cba529ba3..bada548e2a0 100644
--- a/addons/point_of_sale/i18n/lt.po
+++ b/addons/point_of_sale/i18n/lt.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-11 05:38+0000\n"
+"PO-Revision-Date: 2010-08-29 09: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-12 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: point_of_sale
diff --git a/addons/point_of_sale/i18n/tr.po b/addons/point_of_sale/i18n/tr.po
index 3fd7c8e4f40..a3e06ebb07a 100644
--- a/addons/point_of_sale/i18n/tr.po
+++ b/addons/point_of_sale/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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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-12 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: point_of_sale
diff --git a/addons/point_of_sale/pos.py b/addons/point_of_sale/pos.py
index 39d3a294bc7..23b2339d9e9 100644
--- a/addons/point_of_sale/pos.py
+++ b/addons/point_of_sale/pos.py
@@ -64,15 +64,14 @@ class pos_order(osv.osv):
_order = "date_order desc"
- def unlink(self, cr, uid, ids, context={}):
-
+ def unlink(self, cr, uid, ids, context=None):
for rec in self.browse(cr, uid, ids, context=context):
for rec_statement in rec.statement_ids:
if (rec_statement.statement_id and rec_statement.statement_id.state=='confirm') or rec.state=='done':
raise osv.except_osv(_('Invalid action !'), _('Cannot delete a point of sale which is closed or contains confirmed cashboxes!'))
return super(pos_order, self).unlink(cr, uid, ids, context=context)
- def onchange_partner_pricelist(self, cr, uid, ids, part, context={}):
+ def onchange_partner_pricelist(self, cr, uid, ids, part, context=None):
""" Changed price list on_change of partner_id"""
@@ -81,7 +80,7 @@ class pos_order(osv.osv):
pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id
return {'value':{'pricelist_id': pricelist}}
- def _amount_total(self, cr, uid, ids, field_name, arg, context):
+ def _amount_total(self, cr, uid, ids, field_name, arg, context=None):
""" Calculates amount_tax of order line
@param field_names: Names of fields.
@@ -226,8 +225,7 @@ class pos_order(osv.osv):
return res[0]
else:
return False
- def copy(self, cr, uid, id, default=None, context={}):
-
+ def copy(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
default.update({
@@ -291,7 +289,7 @@ class pos_order(osv.osv):
'sale_manager': fields.many2one('res.users', 'Salesman Manager'),
'amount_tax': fields.function(_amount_all, method=True, string='Taxes', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
'amount_total': fields.function(_amount_total, method=True, string='Total'),
- 'amount_paid': fields.function(_amount_all, 'Paid', states={'draft': [('readonly', False)]}, readonly=True, method=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
+ 'amount_paid': fields.function(_amount_all, string='Paid', states={'draft': [('readonly', False)]}, readonly=True, method=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
'amount_return': fields.function(_amount_all, 'Returned', method=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
'lines': fields.one2many('pos.order.line', 'order_id', 'Order Lines', states={'draft': [('readonly', False)]}, readonly=True),
'price_type': fields.selection([
@@ -310,7 +308,6 @@ class pos_order(osv.osv):
'pickings': fields.one2many('stock.picking', 'pos_order', 'Picking', readonly=True),
'picking_id': fields.many2one('stock.picking', 'Last Output Picking', readonly=True),
'first_name': fields.char('First Name', size=64),
-# 'state_2': fields.function(_get_v,type='selection',selection=[('to_verify', 'To Verify'), ('accepted', 'Accepted'),('refused', 'Refused')], string='State', readonly=True, method=True, store=True),
'note': fields.text('Internal Notes'),
'nb_print': fields.integer('Number of Print', readonly=True),
'sale_journal': fields.many2one('account.journal', 'Journal', required=True, states={'draft': [('readonly', False)]}, readonly=True, ),
@@ -335,8 +332,7 @@ class pos_order(osv.osv):
else:
return False
- def _journal_default(self, cr, uid, context={}):
-
+ def _journal_default(self, cr, uid, context=None):
""" To get default pricelist for the order"
@param name: Names of fields.
@return: journal ID
@@ -353,7 +349,6 @@ class pos_order(osv.osv):
'sale_manager': lambda self, cr, uid, context: uid,
'state': lambda *a: 'draft',
'price_type': lambda *a: 'tax_excluded',
-# 'state_2': lambda *a: 'to_verify',
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'pos.order'),
'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'date_validity': lambda *a: (DateTime.now() + DateTime.RelativeDateTime(months=+6)).strftime('%Y-%m-%d'),
@@ -366,9 +361,8 @@ class pos_order(osv.osv):
}
- def test_order_lines(self, cr, uid, order, context={}):
-
- """ Test order line is created or not for the order "
+ def test_order_lines(self, cr, uid, order, context=None):
+ """ Test order line is created or not for the order "
@param name: Names of fields.
@return: True
"""
@@ -379,7 +373,7 @@ class pos_order(osv.osv):
wf_service.trg_validate(uid, 'pos.order', order.id, 'paid', cr)
return True
- def dummy_button(self, cr, uid, order, context={}):
+ def dummy_button(self, cr, uid, order, context=None):
return True
def test_paid(self, cr, uid, ids, context=None):
@@ -459,11 +453,12 @@ class pos_order(osv.osv):
# delete it in the new picking:
line.unlink(context=context)
- def create_picking(self, cr, uid, ids, context={}):
-
+ def create_picking(self, cr, uid, ids, context=None):
"""Create a picking for each order and validate it."""
picking_obj = self.pool.get('stock.picking')
+ property_obj=self.pool.get("ir.property")
+ move_obj=self.pool.get('stock.move')
pick_name=self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out')
orders = self.browse(cr, uid, ids, context)
for order in orders:
@@ -479,7 +474,7 @@ class pos_order(osv.osv):
'invoice_state': 'none',
'auto_picking': True,
'pos_order': order.id,
- })
+ })
self.write(cr, uid, [order.id], {'picking_id': picking_id})
else:
picking_id = order.picking_id.id
@@ -496,17 +491,16 @@ class pos_order(osv.osv):
for line in order.lines:
if line.product_id and line.product_id.type=='service':
continue
- prop_ids = self.pool.get("ir.property").search(cr, uid, [('name', '=', 'property_stock_customer')])
- val = self.pool.get("ir.property").browse(cr, uid, prop_ids[0]).value_reference
+ prop_ids = property_obj.search(cr, uid, [('name', '=', 'property_stock_customer')])
+ val = property_obj.browse(cr, uid, prop_ids[0]).value_reference
cr.execute("select s.id from stock_location s, stock_warehouse w where w.lot_stock_id=s.id and w.id= %d "%(order.shop_id.warehouse_id.id))
res=cr.fetchone()
location_id=res and res[0] or None
-# location_id = order and order.shop_id and order.shop_id.warehouse_id and order.shop_id.warehouse_id.lot_stock_id.id or None
stock_dest_id = val.id
if line.qty < 0:
location_id, stock_dest_id = stock_dest_id, location_id
- self.pool.get('stock.move').create(cr, uid, {
+ move_obj.create(cr, uid, {
'name': 'Stock move (POS %d)' % (order.id, ),
'product_uom': line.product_id.uom_id.id,
'product_uos': line.product_id.uom_id.id,
@@ -556,35 +550,13 @@ class pos_order(osv.osv):
raise osv.except_osv(_('Error'), _('You don\'t have enough access to validate this sale!'))
return True
-# def button_validate(self, cr, uid, ids, *args):
-#
-# """ Check the access for the sale order and update the date_validation
-# @return: True
-# """
-# res_obj = self.pool.get('res.company')
-# try:
-# part_company=res_obj.browse(cr,uid,uid) and res_obj.browse(cr,uid,uid).parent_id and res_obj.browse######(cr,uid,uid).parent_id.id or None
-# except Exception, e:
-# raise osv.except_osv(_('Error'), _('You don\'t have enough access to validate this sale!'))
-# if part_company:
-# raise osv.except_osv(_('Error'), _('You don\'t have enough access to validate this sale!'))
-# for order in self.browse(cr, uid, ids):
-# if not order.date_validation:
-# cr.execute("select max(date) from account_bank_statement_line where pos_statement_id=%d"%(order.id))
-# val=cr.fetchone()
-# val=val and val[0] or None
-# if val:
-# cr.execute("Update pos_order set date_validation='%s', state_2 ='%s' where id = %d"%(val, 'accepted', order.id))
-# return True
-
-
def cancel_order(self, cr, uid, ids, context=None):
""" Changes order state to cancel
@return: True
"""
self.write(cr, uid, ids, {'state': 'cancel'})
- self.cancel_picking(cr, uid, ids, context={})
+ self.cancel_picking(cr, uid, ids, context=context)
return True
def add_payment(self, cr, uid, order_id, data, context=None):
@@ -592,8 +564,10 @@ class pos_order(osv.osv):
"""Create a new payment for the order"""
res_obj = self.pool.get('res.company')
+ statement_obj= self.pool.get('account.bank.statement')
statementl_obj = self.pool.get('account.bank.statement.line')
prod_obj = self.pool.get('product.product')
+ property_obj=self.pool.get('ir.property')
flag=''
curr_c=self.pool.get('res.users').browse(cr, uid, uid).company_id
curr_company=curr_c.id
@@ -601,16 +575,14 @@ class pos_order(osv.osv):
if not order.num_sale and data['num_sale']:
self.write(cr,uid,order_id,{'num_sale': data['num_sale']})
ids_new=[]
-# if order.invoice_wanted and not order.partner_id:
-# raise osv.except_osv(_('Error'), _('Cannot create invoice without a partner.'))
args = {
'amount': data['amount'],
- }
+ }
if 'payment_date' in data.keys():
args['date'] = data['payment_date']
if 'payment_name' in data.keys():
args['name'] = data['payment_name'] + ' ' +order.name
- account_def = self.pool.get('ir.property').get(cr, uid, 'property_account_receivable', 'res.partner', context=context)
+ account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context)
args['account_id'] = order.partner_id and order.partner_id.property_account_receivable and order.partner_id.property_account_receivable.id or account_def.id or curr_c.account_receivable.id
if data.get('is_acc',False):
args['is_acc']=data['is_acc']
@@ -620,7 +592,6 @@ class pos_order(osv.osv):
args['partner_id'] = order.partner_id and order.partner_id.id or None
args['ref'] = order.contract_number or None
- statement_obj= self.pool.get('account.bank.statement')
statement_id = statement_obj.search(cr,uid, [
('journal_id', '=', data['journal']),
('company_id', '=', curr_company),
@@ -660,16 +631,14 @@ class pos_order(osv.osv):
'product_id': product_id,
'qty': qty,
'price_unit': price,
- })
+ })
wf_service = netsvc.LocalService("workflow")
wf_service.trg_write(uid, 'pos.order', order_id, cr)
return order_line_id
- def refund(self, cr, uid, ids, context={}):
-
- """Create a copy of order for refund order"""
-
+ def refund(self, cr, uid, ids, context=None):
+ """Create a copy of order for refund order"""
clone_list = []
line_obj = self.pool.get('pos.order.line')
@@ -693,8 +662,7 @@ class pos_order(osv.osv):
})
return clone_list
- def action_invoice(self, cr, uid, ids, context={}):
-
+ def action_invoice(self, cr, uid, ids, context=None):
"""Create a invoice of order """
res_obj = self.pool.get('res.company')
@@ -954,13 +922,15 @@ class pos_order(osv.osv):
for st in stat_l.move_ids:
for s in st.line_id:
if s.credit:
- account_move_line_obj.copy(cr, uid, s.id, { 'debit': s.credit,
- 'statement_id': False,
- 'credit': s.debit})
account_move_line_obj.copy(cr, uid, s.id, {
- 'statement_id': False,
- 'account_id':order_account
- })
+ 'debit': s.credit,
+ 'statement_id': False,
+ 'credit': s.debit
+ })
+ account_move_line_obj.copy(cr, uid, s.id, {
+ 'statement_id': False,
+ 'account_id':order_account
+ })
self.write(cr,uid,order.id,{'state':'done'})
return True
@@ -990,7 +960,7 @@ class pos_order(osv.osv):
if not context:
context = {}
if context.get('flag',False):
- self.create_picking(cr, uid, ids, context={})
+ self.create_picking(cr, uid, ids, context=None)
self.write(cr, uid, ids, {'state': 'paid'})
else:
context['flag']=True
@@ -1003,7 +973,7 @@ class pos_order(osv.osv):
def action_done(self, cr, uid, ids, context=None):
for order in self.browse(cr, uid, ids, context=context):
if not order.journal_entry:
- self.create_account_move(cr, uid, ids, context={})
+ self.create_account_move(cr, uid, ids, context=None)
return True
def compute_state(self, cr, uid, id):
@@ -1019,7 +989,7 @@ pos_order()
class account_bank_statement(osv.osv):
_inherit = 'account.bank.statement'
- _columns={
+ _columns= {
'user_id': fields.many2one('res.users',ondelete='cascade',string='User', readonly=True),
}
_defaults = {
@@ -1034,7 +1004,7 @@ class account_bank_statement_line(osv.osv):
for line in self.browse(cr, uid, ids):
res[line.id] = line.statement_id and line.statement_id.journal_id and line.statement_id.journal_id.name or None
return res
- _columns={
+ _columns= {
'journal_id': fields.function(_get_statement_journal, method=True,store=True, string='Journal', type='char', size=64),
'am_out':fields.boolean("To count"),
'is_acc':fields.boolean("Is accompte"),
@@ -1123,7 +1093,7 @@ class pos_order_line(osv.osv):
def onchange_dis(self, cr, uid,ids, qty, price_subtotal_incl, discount,*a):
price_sub = price_subtotal_incl
sub_total_discount = price_sub-(price_subtotal_incl*(discount*0.01))
- return {'value': {'price_subtotal_incl':sub_total_discount}}
+ return {'value': {'price_subtotal_incl':sub_total_discount}}
def onchange_ded(self, cr, uid,ids, val_ded,price_u,*a):
pos_order = self.pool.get('pos.order.line')
@@ -1154,6 +1124,13 @@ class pos_order_line(osv.osv):
return {'value': {'notice':'Minimum Discount','price_ded':price*discount*0.01 or 0.0 }}
else :
return {'value': {'notice':'No Discount', 'price_ded':price*discount*0.01 or 0.0}}
+
+ def onchange_qty(self, cr, uid, ids, discount, qty, price, context=None):
+ subtotal = qty * price
+ if discount:
+ subtotal = subtotal - (subtotal * discount / 100)
+ return {'value': {'price_subtotal_incl': subtotal}}
+
_columns = {
'name': fields.char('Line Description', size=512),
'company_id':fields.many2one('res.company', 'Company', required=True),
@@ -1169,7 +1146,7 @@ class pos_order_line(osv.osv):
'discount': fields.float('Discount (%)', digits=(16, 2)),
'order_id': fields.many2one('pos.order', 'Order Ref', ondelete='cascade'),
'create_date': fields.datetime('Creation Date', readonly=True),
- }
+ }
_defaults = {
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'pos.order.line'),
@@ -1180,41 +1157,31 @@ class pos_order_line(osv.osv):
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
-# def _check_qty(self, cr, uid, ids):
-# lines = self.browse(cr, uid, ids)
-# for line in lines:
-# if line.qty <= 0:
-# return False
-# return True
-
-# _constraints = [
-# (_check_qty, 'Order quantity cannot be negative or zero !', ['qty']),
-# ]
-
- def create(self, cr, user, vals, context={}):
+ def create(self, cr, user, vals, context=None):
if vals.get('product_id'):
return super(pos_order_line, self).create(cr, user, vals, context)
return False
- def write(self, cr, user, ids, values, context={}):
+ def write(self, cr, user, ids, values, context=None):
if 'product_id' in values and not values['product_id']:
return False
return super(pos_order_line, self).write(cr, user, ids, values, context)
def _scan_product(self, cr, uid, ean, qty, order):
# search pricelist_id
+ product_obj=self.pool.get('product.product')
pricelist_id = self.pool.get('pos.order').read(cr, uid, [order], ['pricelist_id'] )
if not pricelist_id:
return False
new_line = True
- product_id = self.pool.get('product.product').search(cr, uid, [('ean13','=', ean)])
+ product_id = product_obj.search(cr, uid, [('ean13','=', ean)])
if not product_id:
return False
# search price product
- product = self.pool.get('product.product').read(cr, uid, product_id)
+ product =product_obj.read(cr, uid, product_id)
product_name = product[0]['name']
price = self.price_by_product(cr, uid, 0, pricelist_id[0]['pricelist_id'][0], product_id[0], 1)
@@ -1230,7 +1197,7 @@ class pos_order_line(osv.osv):
'qty': qty,
'name': product_name,
'order_id': order,
- }
+ }
line_id = self.create(cr, uid, vals)
if not line_id:
raise osv.except_osv(_('Error'), _('Create line failed !'))
@@ -1245,7 +1212,13 @@ class pos_order_line(osv.osv):
line_id = order_line_id
price_line = float(qty)*float(price)
- return {'name': product_name, 'product_id': product_id[0], 'price': price, 'price_line': price_line ,'qty': qty }
+ return {
+ 'name': product_name,
+ 'product_id': product_id[0],
+ 'price': price,
+ 'price_line': price_line ,
+ 'qty': qty
+ }
pos_order_line()
@@ -1254,14 +1227,14 @@ class pos_payment(osv.osv):
_name = 'pos.payment'
_description = 'Pos Payment'
- def _journal_get(self, cr, uid, context={}):
+ def _journal_get(self, cr, uid, context=None):
obj = self.pool.get('account.journal')
ids = obj.search(cr, uid, [('type', '=', 'cash')])
res = obj.read(cr, uid, ids, ['id', 'name'], context)
res = [(r['id'], r['name']) for r in res]
return res
- def _journal_default(self, cr, uid, context={}):
+ def _journal_default(self, cr, uid, context=None):
journal_list = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash')])
if journal_list:
return journal_list[0]
@@ -1284,12 +1257,12 @@ class pos_payment(osv.osv):
'payment_date': lambda *a: time.strftime('%Y-%m-%d'),
}
- def create(self, cr, user, vals, context={}):
+ def create(self, cr, user, vals, context=None):
if vals.get('journal_id') and vals.get('amount'):
return super(pos_payment, self).create(cr, user, vals, context)
return False
- def write(self, cr, user, ids, values, context={}):
+ def write(self, cr, user, ids, values, context=None):
if 'amount' in values and not values['amount']:
return False
if 'journal_id' in values and not values['journal_id']:
@@ -1301,7 +1274,7 @@ pos_payment()
class account_move_line(osv.osv):
_inherit = 'account.move.line'
- def create(self, cr, user, vals, context={}):
+ def create(self, cr, user, vals, context=None):
pos_obj = self.pool.get('pos.order')
val_name = vals.get('name', '')
val_ref = vals.get('ref', '')
@@ -1321,8 +1294,7 @@ account_move_line()
class account_move(osv.osv):
_inherit = 'account.move'
-
- def create(self, cr, user, vals, context={}):
+ def create(self, cr, user, vals, context=None):
pos_obj = self.pool.get('pos.order')
val_name = vals.get('name', '')
val_ref = vals.get('ref', '')
@@ -1346,10 +1318,10 @@ class product_product(osv.osv):
'expense_pdt': fields.boolean('Product for expenses'),
'am_out': fields.boolean('Controle for Outgoing Operations'),
'disc_controle': fields.boolean('Discount Controle '),
-}
+ }
_defaults = {
'disc_controle': lambda *a: True,
-}
+ }
product_product()
class stock_picking(osv.osv):
diff --git a/addons/point_of_sale/pos_view.xml b/addons/point_of_sale/pos_view.xml
index a4b81a471b1..2b17fe5ea88 100644
--- a/addons/point_of_sale/pos_view.xml
+++ b/addons/point_of_sale/pos_view.xml
@@ -12,9 +12,8 @@
-
+
@@ -22,14 +21,11 @@
-
-
-
+
-
@@ -48,21 +44,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -83,24 +66,17 @@
-
-
-
-
-
-
-
@@ -196,19 +172,19 @@
- Sales to Invoice
+ Uninvoiced Sales
ir.actions.act_window
pos.order
form
tree,form
- [('state','!=', 'invoiced')]
+ [('state','not in', ('invoiced','done')),('invoice_id','=',False)]
{"search_default_user_id":uid}
-
+
Accepted Sales
ir.actions.act_window
@@ -217,7 +193,7 @@
tree,form
[('state','=', 'paid')]
{"search_default_user_id":uid}
-
+
Point of Sale
@@ -227,7 +203,7 @@
tree,form
[('date_order','<=', time.strftime('%Y-%m-%d 23:59:59'))]
{"search_default_user_id":uid}
-
+
@@ -800,8 +776,6 @@
id="products_for_output_operations"
groups="base.group_system"/>
-
-
-
@@ -910,41 +850,9 @@
tree,form
[('origin','like','POS')]
-
-
diff --git a/addons/point_of_sale/pos_workflow.xml.orig b/addons/point_of_sale/pos_workflow.xml.orig
index a6375642fa8..16b9e116340 100644
--- a/addons/point_of_sale/pos_workflow.xml.orig
+++ b/addons/point_of_sale/pos_workflow.xml.orig
@@ -219,7 +219,6 @@
done
-
diff --git a/addons/point_of_sale/posrule_data.xml b/addons/point_of_sale/posrule_data.xml
index f2ac2d664af..7f165742f03 100644
--- a/addons/point_of_sale/posrule_data.xml
+++ b/addons/point_of_sale/posrule_data.xml
@@ -1,7 +1,6 @@
-
diff --git a/addons/point_of_sale/report/account_statement.py b/addons/point_of_sale/report/account_statement.py
index fcf6189c7ce..fbfd72115ad 100644
--- a/addons/point_of_sale/report/account_statement.py
+++ b/addons/point_of_sale/report/account_statement.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 .
#
##############################################################################
@@ -29,9 +29,9 @@ class account_statement(report_sxw.rml_parse):
super(account_statement, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'get_total':self._get_total,
- })
+ 'time': time,
+ 'get_total':self._get_total,
+ })
def _get_total(self, statement_line_ids):
total = 0.0
for line in statement_line_ids:
diff --git a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
index 316386200fc..137a46c4b45 100644
--- a/addons/point_of_sale/report/all_closed_cashbox_of_the_day.py
+++ b/addons/point_of_sale/report/all_closed_cashbox_of_the_day.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 .
#
##############################################################################
@@ -37,7 +37,7 @@ class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
'get_user':self._get_user,
'get_sub_total':self._get_sub_total,
'get_net_total_starting':self._get_net_total_starting,
- })
+ })
def _get_user(self,line_ids):
sql = "select name from res_users where id = %d"%(line_ids['create_uid'])
self.cr.execute(sql)
@@ -109,7 +109,7 @@ class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
total_starting_bal = 0.0
sql = """ SELECT abs.id,abs.balance_end_real as net_total FROM account_bank_statement as abs
WHERE to_char(date_trunc('day',abs.date),'YYYY-MM-DD')::date = current_date
- and abs.state IN ('confirm','open')
+ and abs.state IN ('confirm','open')
and abs.user_id = %d"""%(user.id)
self.cr.execute(sql)
res = self.cr.dictfetchall()
diff --git a/addons/point_of_sale/report/point_of_sale_report.py b/addons/point_of_sale/report/point_of_sale_report.py
index 10ba94662a2..45716f774fd 100644
--- a/addons/point_of_sale/report/point_of_sale_report.py
+++ b/addons/point_of_sale/report/point_of_sale_report.py
@@ -148,10 +148,8 @@ class report_sales_by_margin_pos(osv.osv):
_description = "Sales by margin"
_auto = False
_columns = {
-# 'pos_name': fields.char('POS Order', size=64, readonly=True),
'product_name':fields.char('Product Name', size=64, readonly=True),
'date_order': fields.date('Order Date',required=True, select=True),
- # 'amount': fields.float('Total', readonly=True, select=True),
'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
'qty': fields.float('Qty', readonly=True, select=True),
'net_margin_per_qty':fields.float('Net margin per Qty', readonly=True, select=True),
@@ -197,14 +195,12 @@ class report_sales_by_margin_pos_month(osv.osv):
_description = "Sales by margin monthly"
_auto = False
_columns = {
-
'product_name':fields.char('Product Name', size=64, readonly=True),
'date_order': fields.date('Order Date',required=True, select=True),
'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
'qty': fields.float('Qty', readonly=True, select=True),
'net_margin_per_qty':fields.float('Net margin per Qty', readonly=True, select=True),
'total':fields.float('Margin', readonly=True, select=True),
-
}
def init(self, cr):
diff --git a/addons/point_of_sale/report/pos_details.py b/addons/point_of_sale/report/pos_details.py
index 885287a30f1..7715f1b78be 100644
--- a/addons/point_of_sale/report/pos_details.py
+++ b/addons/point_of_sale/report/pos_details.py
@@ -96,17 +96,6 @@ class pos_details(report_sxw.rml_parse):
self.total_paid=res3[0]
return res3[0] or False
-# def _get_qty_total(self, objects):
-# #code for the sum of qty_total
-# return reduce(lambda acc, object:
-# acc + reduce(
-# lambda sum_qty, line:
-# sum_qty + line.qty,
-# object.lines,
-# 0),
-# objects,
-# 0)
-
def _get_sum_discount(self, objects):
#code for the sum of discount value
return reduce(lambda acc, object:
@@ -119,18 +108,6 @@ class pos_details(report_sxw.rml_parse):
0.0)
def _get_payments(self, form,user, ignore_gift=False):
-# gift_journal_id = None
-# if ignore_gift:
-# config_journal_ids = self.pool.get("pos.config.journal").search(self.cr, self.uid, [('code', '=', 'GIFT')])
-# if len(config_journal_ids):
-# config_journal = self.pool.get("pos.config.journal").browse(self.cr, self.uid, config_journal_ids, {})[0]
-# gift_journal_id = config_journal.journal_id.id
-#
-# result = {}
-# for obj in objects:
-# for payment in obj.statement_ids:
-# result[payment.journal_id] = result.get(payment.journal_id, 0.0) + payment.amount
-# return result
statement_line_obj = self.pool.get("account.bank.statement.line")
gift_journal_id = None
if ignore_gift:
@@ -200,13 +177,6 @@ class pos_details(report_sxw.rml_parse):
temp.update({'amount':temp2})
return [temp] or False
-# def _get_period(self, form):
-# min_date = form['date_start']
-# max_date = form['date_end']
-# if min_date == max_date:
-# return '%s' % min_date
-# else:
-# return '%s - %s' % (min_date, max_date)
def _get_period(self, form):
return form['date_start']
diff --git a/addons/point_of_sale/report/pos_lines.py b/addons/point_of_sale/report/pos_lines.py
index 6f03605613b..3076e1b6741 100644
--- a/addons/point_of_sale/report/pos_lines.py
+++ b/addons/point_of_sale/report/pos_lines.py
@@ -29,9 +29,9 @@ class pos_lines(report_sxw.rml_parse):
super(pos_lines, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'total_quantity': self.__total_quantity__,
- 'taxes':self.__taxes__,
+ 'time': time,
+ 'total_quantity': self.__total_quantity__,
+ 'taxes':self.__taxes__,
})
diff --git a/addons/point_of_sale/report/pos_payment_report.py b/addons/point_of_sale/report/pos_payment_report.py
index e9541ec3a66..d2f05f85a06 100644
--- a/addons/point_of_sale/report/pos_payment_report.py
+++ b/addons/point_of_sale/report/pos_payment_report.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
@@ -28,10 +28,10 @@ class pos_payment_report(report_sxw.rml_parse):
super(pos_payment_report, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'pos_payment': self._pos_payment,
- 'pos_payment_total':self._pos_payment_total,
- })
+ 'time': time,
+ 'pos_payment': self._pos_payment,
+ 'pos_payment_total':self._pos_payment_total,
+ })
def _pos_payment(self,obj):
data={}
@@ -51,19 +51,13 @@ class pos_payment_report(report_sxw.rml_parse):
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and to_char(date_trunc('day',po.date_order),'YYYY-MM-DD')::date = current_date")
data=self.cr.dictfetchall()
-
+
for d in data:
self.total += d['price_unit'] * d['qty']
return data
def _pos_payment_total(self,o):
-# res=[]
-# self.cr.execute ("select sum(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) " \
-# "from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
-# "where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
-# "and po.state='paid' and po.date_order = current_date and po.id=%d"%(o.id))
-# res=self.cr.fetchone()[0]
return self.total
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 c17ac694fae..af64e45cff4 100644
--- a/addons/point_of_sale/report/pos_payment_report_date.py
+++ b/addons/point_of_sale/report/pos_payment_report_date.py
@@ -28,10 +28,10 @@ class pos_payment_report_date(report_sxw.rml_parse):
super(pos_payment_report_date, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'pos_payment_date': self.__pos_payment_date__,
- 'pos_payment_date_total':self.__pos_payment_date__total__,
- })
+ 'time': time,
+ 'pos_payment_date': self.__pos_payment_date__,
+ 'pos_payment_date_total':self.__pos_payment_date__total__,
+ })
def __pos_payment_date__(self,form):
dt1 = form['date_start'] + ' 00:00:00'
@@ -55,7 +55,7 @@ class pos_payment_report_date(report_sxw.rml_parse):
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id IN %s " \
,(dt1,dt2,tuple(form['user_id'])))
- res=self.cr.fetchone()[0]
+ res=self.cr.fetchone()[0] or 0.0
return res
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 fd7f011c6e9..e84b3b792cc 100644
--- a/addons/point_of_sale/report/pos_payment_report_user.py
+++ b/addons/point_of_sale/report/pos_payment_report_user.py
@@ -27,10 +27,10 @@ class pos_payment_report_user(report_sxw.rml_parse):
super(pos_payment_report_user, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'pos_payment_user': self.__pos_payment_user__,
- 'pos_payment_user_total':self.__pos_payment_user__total__,
- })
+ 'time': time,
+ 'pos_payment_user': self.__pos_payment_user__,
+ 'pos_payment_user_total':self.__pos_payment_user__total__,
+ })
def __pos_payment_user__(self,form):
data={}
diff --git a/addons/point_of_sale/report/pos_sales_user.py b/addons/point_of_sale/report/pos_sales_user.py
index 5bc2bf4b065..b110e4e2d00 100644
--- a/addons/point_of_sale/report/pos_sales_user.py
+++ b/addons/point_of_sale/report/pos_sales_user.py
@@ -28,10 +28,10 @@ class pos_sales_user(report_sxw.rml_parse):
super(pos_sales_user, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'get_data':self._get_data,
+ 'time': time,
+ 'get_data':self._get_data,
- })
+ })
def _get_data(self,form):
dt1 = form['date_start'] + ' 00:00:00'
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 adfff3c5388..4362cc8928c 100644
--- a/addons/point_of_sale/report/pos_sales_user_today.py
+++ b/addons/point_of_sale/report/pos_sales_user_today.py
@@ -28,10 +28,10 @@ class pos_sales_user_today(report_sxw.rml_parse):
super(pos_sales_user_today, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'get_data':self._get_data,
+ 'time': time,
+ 'get_data':self._get_data,
- })
+ })
def _get_data(self,form):
data={}
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 bced93a62a1..bd728441be2 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
@@ -29,12 +29,12 @@ class pos_sales_user_today_current_user(report_sxw.rml_parse):
self.total = 0.0
self.qty = 0.0
self.localcontext.update({
- 'time': time,
- 'get_user':self._get_user,
- 'get_data_current_user':self._get_data_current_user,
- 'get_data_current_user_tot':self._get_data_current_user_tot,
- 'get_data_current_user_qty':self._get_data_current_user_qty,
- })
+ 'time': time,
+ 'get_user':self._get_user,
+ 'get_data_current_user':self._get_data_current_user,
+ 'get_data_current_user_tot':self._get_data_current_user_tot,
+ 'get_data_current_user_qty':self._get_data_current_user_qty,
+ })
def _get_user(self, user):
pos_user={}
@@ -58,15 +58,6 @@ class pos_sales_user_today_current_user(report_sxw.rml_parse):
return data
def _get_data_current_user_tot(self, user):
-# res={}
-# self.cr.execute("select sum(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) " \
-# "from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt ,res_users as ru,res_company as rc " \
-# "where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
-# "and po.date_order = current_date and po.user_id = ru.id and rc.id = %s and ru.id = %s " \
-# ,(str(self.uid),str(user.company_id.id)))
-#
-# res=self.cr.dictfetchone()
-# return res['sum']
return self.total
def _get_data_current_user_qty(self, user):
diff --git a/addons/point_of_sale/report/pos_users_product.py b/addons/point_of_sale/report/pos_users_product.py
index 3805dcc54cb..a61f753ce7d 100644
--- a/addons/point_of_sale/report/pos_users_product.py
+++ b/addons/point_of_sale/report/pos_users_product.py
@@ -28,12 +28,12 @@ class pos_user_product(report_sxw.rml_parse):
super(pos_user_product, self).__init__(cr, uid, name, context)
self.total = 0.0
self.localcontext.update({
- 'time': time,
- 'get_data':self._get_data,
- 'get_user':self._get_user,
- 'get_total':self._get_total,
+ 'time': time,
+ 'get_data':self._get_data,
+ 'get_user':self._get_user,
+ 'get_total':self._get_total,
- })
+ })
def _get_data(self,o):
data={}
sql1=""" SELECT distinct(o.id) from account_bank_statement s, account_bank_statement_line l,pos_order o,pos_order_line i where i.order_id=o.id and o.state='paid' and l.statement_id=s.id and l.pos_statement_id=o.id and s.id=%d"""%(o.id)
diff --git a/addons/point_of_sale/report/report_cash_register.py b/addons/point_of_sale/report/report_cash_register.py
index a7eb4af191c..02945daf77b 100644
--- a/addons/point_of_sale/report/report_cash_register.py
+++ b/addons/point_of_sale/report/report_cash_register.py
@@ -25,15 +25,15 @@ class report_cash_register(osv.osv):
_name = "report.cash.register"
_description = "Point of Sale Cash Register Analysis"
_auto = False
- _columns ={
+ _columns = {
'date': fields.date('Create Date', readonly=True),
'year': fields.char('Year', size=4),
'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),
'day': fields.char('Day', size=128, readonly=True),
- 'user_id':fields.many2one('res.users', 'User', readonly=True),
- 'state':fields.selection([('draft', 'Draft'),('confirm', 'Confirmed')],'State'),
+ 'user_id':fields.many2one('res.users', 'User', readonly=True),
+ 'state':fields.selection([('draft', 'Draft'),('confirm', 'Confirmed')],'State'),
'journal_id': fields.many2one('account.journal', 'Journal'),
'balance_start': fields.float('Opening Balance'),
'balance_end_real': fields.float('Closing Balance'),
@@ -43,9 +43,9 @@ class report_cash_register(osv.osv):
tools.drop_view_if_exists(cr, 'report_cash_register')
cr.execute("""
create or replace view report_cash_register as (
- select
+ select
min(s.id) as id,
- to_date(to_char(s.create_date, 'dd-MM-YYYY'),'dd-MM-YYYY') as date,
+ to_date(to_char(s.create_date, 'dd-MM-YYYY'),'dd-MM-YYYY') as date,
s.user_id as user_id,
s.journal_id as journal_id,
s.state as state,
@@ -54,8 +54,8 @@ class report_cash_register(osv.osv):
to_char(s.create_date, 'YYYY') as year,
to_char(s.create_date, 'MM') as month,
to_char(s.create_date, 'YYYY-MM-DD') as day
- from account_bank_statement as s where s.user_id=1
- group by
+ from account_bank_statement as s where s.user_id=1
+ group by
s.user_id,s.journal_id, s.balance_start, s.balance_end_real,s.state,to_char(s.create_date, 'dd-MM-YYYY'),
to_char(s.create_date, 'YYYY'),
to_char(s.create_date, 'MM'),
diff --git a/addons/point_of_sale/report/report_pos_order.py b/addons/point_of_sale/report/report_pos_order.py
index 51ac18d7cba..373f8006566 100644
--- a/addons/point_of_sale/report/report_pos_order.py
+++ b/addons/point_of_sale/report/report_pos_order.py
@@ -26,7 +26,7 @@ class report_pos_order(osv.osv):
_name = "report.pos.order"
_description = "Point of Sale Orders Statistics"
_auto = False
- _columns ={
+ _columns = {
'date': fields.date('Date Order', readonly=True),
'year': fields.char('Year', size=4, readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
@@ -39,8 +39,6 @@ class report_pos_order(osv.osv):
('advance','Advance'),
('paid', 'Paid'), ('done', 'Done'), ('invoiced', 'Invoiced'), ('cancel', 'Cancel')],
'State'),
-# 'state_2': fields.function([('to_verify', 'To Verify'), ('accepted', 'Accepted'),
-# ('refused', 'Refused')], string='State'),
'user_id':fields.many2one('res.users', 'Salesman', readonly=True),
'price_total':fields.float('Total Price', readonly=True),
'total_discount':fields.float('Total Discount', readonly=True),
diff --git a/addons/point_of_sale/report/report_pos_order_view.xml b/addons/point_of_sale/report/report_pos_order_view.xml
index 1f9d9744609..04356706bcd 100644
--- a/addons/point_of_sale/report/report_pos_order_view.xml
+++ b/addons/point_of_sale/report/report_pos_order_view.xml
@@ -78,9 +78,7 @@
-
-
diff --git a/addons/point_of_sale/statement_data.xml b/addons/point_of_sale/statement_data.xml
index 3ba8df59b13..2780cd0f8d0 100644
--- a/addons/point_of_sale/statement_data.xml
+++ b/addons/point_of_sale/statement_data.xml
@@ -1,6 +1,5 @@
-
diff --git a/addons/point_of_sale/statement_view.xml b/addons/point_of_sale/statement_view.xml
index 9598efbbaf3..cd0c3b8c57d 100644
--- a/addons/point_of_sale/statement_view.xml
+++ b/addons/point_of_sale/statement_view.xml
@@ -11,7 +11,7 @@
-
+
@@ -22,15 +22,16 @@
-
+
-
+ />-->
Cash Register
diff --git a/addons/point_of_sale/statement_wizard.xml b/addons/point_of_sale/statement_wizard.xml
index 8220eda8bed..25f099810b4 100644
--- a/addons/point_of_sale/statement_wizard.xml
+++ b/addons/point_of_sale/statement_wizard.xml
@@ -1,21 +1,6 @@
-
-
\ No newline at end of file
diff --git a/addons/point_of_sale/wizard/pos_receipt.py b/addons/point_of_sale/wizard/pos_receipt.py
index 2f316aab78d..74f865ca06c 100644
--- a/addons/point_of_sale/wizard/pos_receipt.py
+++ b/addons/point_of_sale/wizard/pos_receipt.py
@@ -31,19 +31,15 @@ class pos_receipt(osv.osv_memory):
}
def view_init(self, cr, uid, fields_list, context=None):
- """
+ """
Creates view dynamically and adding fields at runtime.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
+ @param context: A standard dictionary
@return: New arch of view with new columns.
- """
+ """
order_lst = self. pool.get('pos.order').browse(cr, uid, context['active_id'])
-# for order in order_lst:
-# if order.state_2 in ('to_verify'):
-# raise osv.except_osv(_('Error!', 'Can not print the receipt because of discount and/or payment '))
-# True
def print_report(self, cr, uid, ids, context=None):
diff --git a/addons/point_of_sale/wizard/pos_return.py b/addons/point_of_sale/wizard/pos_return.py
index 72a30daf5ec..cbfe4c5365a 100644
--- a/addons/point_of_sale/wizard/pos_return.py
+++ b/addons/point_of_sale/wizard/pos_return.py
@@ -33,18 +33,18 @@ class pos_return(osv.osv_memory):
_description = 'Point of sale return'
def default_get(self, cr, uid, fields, context=None):
- """
+ """
To get default values for the object.
-
+
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
-
- @return: A dictionary which of fields with values.
-
- """
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+
+ @return: A dictionary which of fields with values.
+
+ """
res = super(pos_return, self).default_get(cr, uid, fields, context=context)
order_obj = self.pool.get('pos.order')
@@ -54,44 +54,44 @@ class pos_return(osv.osv_memory):
for order in order_obj.browse(cr, uid, active_ids):
for line in order.lines:
if 'return%s'%(line.id) in fields:
- res['return%s'%(line.id)] = line.qty
+ res['return%s'%(line.id)] = line.qty
return res
-
+
def view_init(self, cr, uid, fields_list, context=None):
- """
+ """
Creates view dynamically and adding fields at runtime.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
+ @param context: A standard dictionary
@return: New arch of view with new columns.
- """
+ """
res = super(pos_return, self).view_init(cr, uid, fields_list, context=context)
- order_obj=self.pool.get('pos.order')
+ order_obj=self.pool.get('pos.order')
if not context:
- context={}
-
- active_ids=context.get('active_ids')
- for order in order_obj.browse(cr, uid, active_ids):
- for line in order.lines:
+ context={}
+
+ active_ids=context.get('active_ids')
+ for order in order_obj.browse(cr, uid, active_ids):
+ for line in order.lines:
if 'return%s'%(line.id) not in self._columns:
self._columns['return%s'%(line.id)] = fields.float("Quantity")
-
- return res
+
+ return res
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
- """
+ """
Changes the view dynamically
-
+
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
-
+ @param context: A standard dictionary
+
@return: New arch of view.
-
- """
+
+ """
result = super(pos_return, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
if not context:
context={}
@@ -104,25 +104,25 @@ class pos_return(osv.osv_memory):
_moves_arch_lst="""
"""
- _line_fields = result['fields']
+ _line_fields = result['fields']
order=order_obj.browse(cr, uid, active_id)
- for line in order.lines:
- quantity=line.qty
+ for line in order.lines:
+ quantity=line.qty
_line_fields.update({
- 'return%s'%(line.id) : {
- 'string': line.product_id.name,
- 'type' : 'float',
- 'required': True,
- 'default':quantity
- },
- })
+ 'return%s'%(line.id) : {
+ 'string': line.product_id.name,
+ 'type' : 'float',
+ 'required': True,
+ 'default':quantity
+ },
+ })
_moves_arch_lst += """
-
+
"""%(line.id)
-
+
_moves_arch_lst+="""
-
+
@@ -130,36 +130,36 @@ class pos_return(osv.osv_memory):
string="Return goods and Exchange" type="object"/>
- """
-
+ """
+
result['arch'] = _moves_arch_lst
- result['fields'] = _line_fields
- return result
-
-
+ result['fields'] = _line_fields
+ return result
+
+
def create_returns(self, cr, uid, data, context):
- """
+ """
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
-
+ @param context: A standard dictionary
+
@return: Return the add product form again for adding more product
-
+
"""
return {
- 'name': _('Add Product'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'pos.add.product',
- 'view_id': False,
- 'target':'new',
- 'views': False,
- 'context': context,
- 'type': 'ir.actions.act_window',
+ 'name': _('Add Product'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'pos.add.product',
+ 'view_id': False,
+ 'target':'new',
+ 'views': False,
+ 'context': context,
+ 'type': 'ir.actions.act_window',
}
def create_returns2(self, cr, uid, ids, context):
- active_id = context.get('active_id', False)
+ active_id = context.get('active_id', False)
order_obj =self.pool.get('pos.order')
line_obj = self.pool.get('pos.order.line')
picking_obj = self.pool.get('stock.picking')
@@ -182,10 +182,10 @@ class pos_return(osv.osv_memory):
location_id = res and res[0] or None
stock_dest_id = val.id
new_picking = picking_obj.copy(cr, uid, order_id.picking_id.id, {'name':'%s (return)' % order_id.name,
- 'move_lines': [],
- 'state':'draft',
+ 'move_lines': [],
+ 'state':'draft',
'type': 'in',
- 'address_id': order_id.partner_id.id,
+ 'address_id': order_id.partner_id.id,
'date': date_cur })
new_order = order_obj.copy(cr, uid, order_id.id, {'name': 'Refund %s'%order_id.name,
'lines':[],
@@ -197,7 +197,7 @@ class pos_return(osv.osv_memory):
qty = data['return%s' %line.id]
except :
qty = line.qty
- new_move = stock_move_obj.create(cr, uid,{
+ new_move = stock_move_obj.create(cr, uid, {
'product_qty': qty ,
'product_uos_qty': uom_obj._compute_qty(cr, uid, qty ,line.product_id.uom_id.id),
'picking_id': new_picking,
@@ -207,7 +207,8 @@ class pos_return(osv.osv_memory):
'location_dest_id': stock_dest_id,
'name': '%s (return)' %order_id.name,
'date': date_cur,
- 'date_planned': date_cur,})
+ 'date_planned': date_cur
+ })
line_obj.copy(cr, uid, line.id, {'qty': -qty, 'order_id': new_order})
order_obj.write(cr,uid, [active_id,new_order], {'state': 'done'})
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
@@ -225,25 +226,25 @@ class pos_return(osv.osv_memory):
'type': 'ir.actions.act_window'
}
return act
-
+
pos_return()
class add_product(osv.osv_memory):
- _inherit = 'pos.add.product'
+ _inherit = 'pos.add.product'
def select_product(self, cr, uid, ids, context):
- """
- To get the product and quantity and add in order .
+ """
+ To get the product and quantity and add in order .
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param context: A standard dictionary
+ @param context: A standard dictionary
@return : Retrun the add product form again for adding more product
- """
-
+ """
+
active_id=context.get('active_id', False)
data = self.read(cr, uid, ids)
data = data and data[0] or False
- if active_id:
+ if active_id:
order_obj = self.pool.get('pos.order')
lines_obj = self.pool.get('pos.order.line')
picking_obj = self.pool.get('stock.picking')
@@ -259,7 +260,7 @@ class add_product(osv.osv_memory):
wf_service = netsvc.LocalService("workflow")
return_boj=self.pool.get('pos.return')
order_obj.add_product(cr, uid, active_id, data['product_id'], data['quantity'], context=context)
-
+
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
prod=data['product_id']
qty=data['quantity']
@@ -269,15 +270,16 @@ class add_product(osv.osv_memory):
res=cr.fetchone()
location_id=res and res[0] or None
stock_dest_id = val.id
-
+
prod_id=prod_obj.browse(cr, uid, prod)
- new_picking=picking_obj.create(cr, uid,{
- 'name':'%s (Added)' %order_id.name,
- 'move_lines':[],
- 'state':'draft',
- 'type':'out',
- 'date':date_cur, })
- new_move=stock_move_obj.create(cr, uid,{
+ new_picking=picking_obj.create(cr, uid, {
+ 'name':'%s (Added)' %order_id.name,
+ 'move_lines':[],
+ 'state':'draft',
+ 'type':'out',
+ 'date':date_cur
+ })
+ new_move=stock_move_obj.create(cr, uid, {
'product_qty': qty,
'product_uos_qty': uom_obj._compute_qty(cr, uid, prod_id.uom_id.id, qty, prod_id.uom_id.id),
'picking_id':new_picking,
@@ -287,37 +289,38 @@ class add_product(osv.osv_memory):
'location_dest_id':stock_dest_id,
'name':'%s (return)' %order_id.name,
'date':date_cur,
- 'date_planned':date_cur,})
-
+ 'date_planned':date_cur
+ })
+
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
picking_obj.force_assign(cr, uid, [new_picking], context)
order_obj.write(cr,uid,active_id,{'picking_id':new_picking})
-
-
- return {
- 'name': _('Add Product'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'pos.add.product',
- 'view_id': False,
- 'target':'new',
- 'context':context,
- 'views': False,
- 'type': 'ir.actions.act_window',
- }
-
+
+
+ return {
+ 'name': _('Add Product'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'pos.add.product',
+ 'view_id': False,
+ 'target':'new',
+ 'context':context,
+ 'views': False,
+ 'type': 'ir.actions.act_window',
+ }
+
def close_action(self, cr, uid, ids, context):
- active_ids=context.get('active_ids', False)
+ active_ids=context.get('active_ids', False)
order_obj = self.pool.get('pos.order')
lines_obj = self.pool.get('pos.order.line')
picking_obj = self.pool.get('stock.picking')
stock_move_obj = self.pool.get('stock.move')
move_obj = self.pool.get('stock.move')
- property_obj= self.pool.get("ir.property")
+ property_obj= self.pool.get("ir.property")
invoice_obj=self.pool.get('account.invoice')
picking_ids = picking_obj.search(cr, uid, [('pos_order', 'in', active_ids), ('state', '=', 'done')])
clone_list = []
- date_cur=time.strftime('%Y-%m-%d')
+ date_cur=time.strftime('%Y-%m-%d %H:%M:%S')
uom_obj = self.pool.get('product.uom')
return_boj=self.pool.get('pos.return')
return_id=return_boj.search(cr,uid,[])
@@ -330,19 +333,20 @@ class add_product(osv.osv_memory):
res=cr.fetchone()
location_id=res and res[0] or None
stock_dest_id = val.id
-
+
order_obj.write(cr,uid,[order_id.id],{'type_rec':'Exchange'})
if order_id.invoice_id:
invoice_obj.refund(cr, uid, [order_id.invoice_id.id], time.strftime('%Y-%m-%d'), False, order_id.name)
- new_picking=picking_obj.create(cr, uid,{
- 'name':'%s (return)' %order_id.name,
- 'move_lines':[], 'state':'draft',
- 'type':'in',
- 'date':date_cur})
+ new_picking=picking_obj.create(cr, uid, {
+ 'name':'%s (return)' %order_id.name,
+ 'move_lines':[], 'state':'draft',
+ 'type':'in',
+ 'date':date_cur
+ })
for line in order_id.lines:
key=('return%s') %line.id
if line.id and data.has_key(key):
- new_move=stock_move_obj.create(cr, uid,{
+ new_move=stock_move_obj.create(cr, uid, {
'product_qty': data['return%s' %line.id ],
'product_uos_qty': uom_obj._compute_qty(cr, uid, data['return%s' %line.id], line.product_id.uom_id.id),
'picking_id':new_picking,
@@ -352,29 +356,30 @@ class add_product(osv.osv_memory):
'location_dest_id':stock_dest_id,
'name':'%s (return)' %order_id.name,
'date':date_cur,
- 'date_planned':date_cur,})
- lines_obj.write(cr,uid,[line.id],{'qty_rfd':(line.qty or 0.0) + data['return%s' %line.id],
- 'qty':line.qty-(data['return%s' %line.id] or 0.0)
+ 'date_planned':date_cur
})
+ lines_obj.write(cr,uid,[line.id], {
+ 'qty_rfd':(line.qty or 0.0) + data['return%s' %line.id],
+ 'qty':line.qty-(data['return%s' %line.id] or 0.0)
+ })
wf_service.trg_validate(uid, 'stock.picking',new_picking,'button_confirm', cr)
picking_obj.force_assign(cr, uid, [new_picking], context)
- obj=order_obj.browse(cr,uid, active_ids[0])
- context.update({'return':'return'})
-
+ obj=order_obj.browse(cr,uid, active_ids[0])
+ context.update({'return':'return'})
+
if obj.amount_total != obj.amount_paid:
return {
- 'name': _('Make Payment'),
- 'context ':context,
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'pos.make.payment',
- 'view_id': False,
- 'target': 'new',
- 'views': False,
- 'type': 'ir.actions.act_window',
-
+ 'name': _('Make Payment'),
+ 'context ':context,
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'pos.make.payment',
+ 'view_id': False,
+ 'target': 'new',
+ 'views': False,
+ 'type': 'ir.actions.act_window',
}
- return True
-
-add_product()
+ return True
+
+add_product()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/point_of_sale/wizard/pos_sales_user.xml b/addons/point_of_sale/wizard/pos_sales_user.xml
index cedd800fc39..bece120d684 100644
--- a/addons/point_of_sale/wizard/pos_sales_user.xml
+++ b/addons/point_of_sale/wizard/pos_sales_user.xml
@@ -1,8 +1,8 @@
-
+
-
+
Sale By User
pos.sale.user
@@ -31,13 +31,6 @@
form
new
-
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/addons/process/__openerp__.py b/addons/process/__openerp__.py
index 829bd13c1a1..9fd4f6b3f73 100644
--- a/addons/process/__openerp__.py
+++ b/addons/process/__openerp__.py
@@ -37,7 +37,10 @@
'website': 'http://www.openerp.com',
'depends': ['base'],
'init_xml': [],
- 'update_xml': ['security/ir.model.access.csv', 'process_view.xml'],
+ 'update_xml': [
+ 'security/ir.model.access.csv',
+ 'process_view.xml'
+ ],
'demo_xml': [],
'installable': True,
'active': False,
diff --git a/addons/process/i18n/ca.po b/addons/process/i18n/ca.po
index cd6faec77c1..2eb28bd37e2 100644
--- a/addons/process/i18n/ca.po
+++ b/addons/process/i18n/ca.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-17 06:56+0000\n"
+"PO-Revision-Date: 2010-08-13 10:58+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-12 03:49+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:19+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: process
diff --git a/addons/process/i18n/mn.po b/addons/process/i18n/mn.po
new file mode 100644
index 00000000000..285bcc943f6
--- /dev/null
+++ b/addons/process/i18n/mn.po
@@ -0,0 +1,306 @@
+# Mongolian 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-14 08:43+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-15 06:19+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Node"
+msgstr "Процессын зангилаа"
+
+#. module: process
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
+
+#. module: process
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Үйлдлийн тодорхойлолтод буруу моделийн нэр байна."
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Roles from Workflow"
+msgstr "Ажлын урсгалын дүрүүд"
+
+#. module: process
+#: field:process.node,menu_id:0
+msgid "Related Menu"
+msgstr "Харгалзах цэс"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: field:process.transition,action_ids:0
+msgid "Buttons"
+msgstr "Товчнууд"
+
+#. module: process
+#: selection:process.node,kind:0
+msgid "State"
+msgstr "Төлөв"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Details"
+msgstr "Дэлгэрэнгүй"
+
+#. module: process
+#: field:process.node,help_url:0
+msgid "Help URL"
+msgstr "Тусламжын вэб сайт"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_node_form
+#: model:ir.model,name:process.model_process_node
+#: model:ir.ui.menu,name:process.menu_process_node_form
+#: view:process.node:0
+#: view:process.process:0
+msgid "Process Nodes"
+msgstr "Процессын зангилаа"
+
+#. module: process
+#: view:process.process:0
+#: field:process.process,node_ids:0
+msgid "Nodes"
+msgstr "Зангилаа"
+
+#. module: process
+#: view:process.node:0
+#: field:process.node,condition_ids:0
+#: view:process.process:0
+msgid "Conditions"
+msgstr "Нөхцөлүүд"
+
+#. module: process
+#: field:process.condition,node_id:0
+msgid "Node"
+msgstr "Зангилаа"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Workflow Trigger"
+msgstr "Ажлын урсгалын триггер"
+
+#. module: process
+#: field:process.transition,note:0
+msgid "Description"
+msgstr "Тодорхойлолт"
+
+#. module: process
+#: model:ir.model,name:process.model_process_transition_action
+msgid "Process Transitions Actions"
+msgstr "Процесс шилжилтийн үйлдлүүд"
+
+#. module: process
+#: field:process.condition,model_id:0
+#: field:process.node,model_id:0
+#: field:process.process,model_id:0
+msgid "Object"
+msgstr "Объект"
+
+#. module: process
+#: field:process.transition,source_node_id:0
+msgid "Source Node"
+msgstr "Гарсан зангилаа"
+
+#. module: process
+#: field:process.transition,transition_ids:0
+msgid "Workflow Transitions"
+msgstr "Ажлын урсгалын шилжилтүүд"
+
+#. module: process
+#: field:process.transition.action,action:0
+msgid "Action ID"
+msgstr "Үйлдлийн ID"
+
+#. module: process
+#: view:process.transition:0
+msgid "Process Transition"
+msgstr "Процессын шилжилт"
+
+#. module: process
+#: model:ir.model,name:process.model_process_condition
+#: view:process.node:0
+#: view:process.process:0
+msgid "Condition"
+msgstr "Нөхцөл"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Dummy"
+msgstr "Хиймэл"
+
+#. module: process
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Дэлгэцийн XML алдаатай!"
+
+#. module: process
+#: field:process.condition,name:0
+#: field:process.node,name:0
+#: field:process.process,name:0
+#: field:process.transition,name:0
+#: field:process.transition.action,name:0
+msgid "Name"
+msgstr "Нэр"
+
+#. module: process
+#: field:process.transition,role_ids:0
+msgid "Roles"
+msgstr "Дүрүүд"
+
+#. module: process
+#: field:process.node,transition_in:0
+msgid "Starting Transitions"
+msgstr "Эхлэлийн шилжилт"
+
+#. module: process
+#: field:process.node,note:0
+#: field:process.process,note:0
+#: view:process.transition:0
+msgid "Notes"
+msgstr "Тэмдэглэл"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: field:process.transition.action,transition_id:0
+msgid "Transition"
+msgstr "Шилжилт"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Roles Required"
+msgstr "Шаардагдах дүрүүд"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Extra Information"
+msgstr "Нэмэлт мэдээлэл"
+
+#. module: process
+#: selection:process.node,kind:0
+#: field:process.node,subflow_id:0
+msgid "Subflow"
+msgstr "Дэд урсгал"
+
+#. module: process
+#: field:process.process,active:0
+msgid "Active"
+msgstr "Идэвхитэй"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Action"
+msgstr "Үйлдэл"
+
+#. module: process
+#: field:process.node,flow_start:0
+msgid "Starting Flow"
+msgstr "Эхлэх урсгал"
+
+#. module: process
+#: field:process.condition,model_states:0
+msgid "Expression"
+msgstr "Илэрхийлэл"
+
+#. module: process
+#: field:process.transition.action,state:0
+msgid "Type"
+msgstr "Төрөл"
+
+#. module: process
+#: field:process.node,transition_out:0
+msgid "Ending Transitions"
+msgstr "Төгсгөлийн шилжилт"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_form
+#: model:ir.model,name:process.model_process_process
+#: model:ir.ui.menu,name:process.menu_process_form
+#: field:process.node,process_id:0
+#: view:process.process:0
+msgid "Process"
+msgstr "Процесс"
+
+#. module: process
+#: model:ir.module.module,shortdesc:process.module_meta_information
+msgid "Enterprise Process"
+msgstr "Байгууллагын процесс"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+#: view:process.transition:0
+msgid "Actions"
+msgstr "Үйлдлүүд"
+
+#. module: process
+#: field:process.node,model_states:0
+msgid "States Expression"
+msgstr "Төлвийн илэрхийлэл"
+
+#. module: process
+#: model:ir.actions.act_window,name:process.action_process_transition_form
+#: model:ir.model,name:process.model_process_transition
+#: model:ir.ui.menu,name:process.menu_process_transition_form
+msgid "Process Transitions"
+msgstr "Процессын шилжилт"
+
+#. module: process
+#: field:process.transition,target_node_id:0
+msgid "Target Node"
+msgstr "Хүрэх зангилаа"
+
+#. module: process
+#: field:process.node,kind:0
+msgid "Kind of Node"
+msgstr "Зангилааны төрөл"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Outgoing Transitions"
+msgstr "Гарах шилжилтүүд"
+
+#. module: process
+#: model:ir.ui.menu,name:process.menu_process
+msgid "Enterprise Processes"
+msgstr "Байгууллагын процессууд"
+
+#. module: process
+#: view:process.node:0
+#: view:process.process:0
+msgid "Transitions"
+msgstr "Шилжилтүүд"
+
+#. module: process
+#: selection:process.transition.action,state:0
+msgid "Object Method"
+msgstr "Объектын метод"
diff --git a/addons/process/i18n/tr.po b/addons/process/i18n/tr.po
index b8b479486f2..e572c3ee3c4 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-11 05:14+0000\n"
+"PO-Revision-Date: 2010-08-29 10:24+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-12 03:50+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: process
diff --git a/addons/process/process.py b/addons/process/process.py
index 0d68fb460be..7bb8593d467 100644
--- a/addons/process/process.py
+++ b/addons/process/process.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 .
#
##############################################################################
@@ -25,22 +25,22 @@ import pooler, tools
from osv import fields, osv
class Env(dict):
-
+
def __init__(self, obj, user):
self.__obj = obj
self.__usr = user
-
+
def __getitem__(self, name):
-
+
if name in ('__obj', '__user'):
return super(ExprContext, self).__getitem__(name)
-
+
if name == 'user':
return self.__user
-
+
if name == 'object':
return self.__obj
-
+
return self.__obj[name]
class process_process(osv.osv):
@@ -85,7 +85,7 @@ class process_process(osv.osv):
def graph_get(self, cr, uid, id, res_model, res_id, scale, context):
pool = pooler.get_pool(cr.dbname)
-
+
process = pool.get('process.process').browse(cr, uid, [id], context)[0]
name = process.name
@@ -135,7 +135,7 @@ class process_process(osv.osv):
if node.menu_id:
data['menu'] = {'name': node.menu_id.complete_name, 'id': node.menu_id.id}
-
+
if node.model_id and node.model_id.model == res_model:
try:
data['active'] = eval(node.model_states, expr_context)
@@ -233,7 +233,7 @@ class process_process(osv.osv):
# calculate graph layout
g = tools.graph(nodes.keys(), map(lambda x: (x['source'], x['target']), transitions.values()))
- g.process(start)
+ g.process(start)
g.scale(*scale) #g.scale(100, 100, 180, 120)
graph = g.result_get()
diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py
index 1f11ebcd22e..1cdc1462f89 100644
--- a/addons/procurement/__openerp__.py
+++ b/addons/procurement/__openerp__.py
@@ -38,8 +38,8 @@
'wizard/make_procurement_view.xml',
'wizard/mrp_procurement_view.xml',
'wizard/orderpoint_procurement_view.xml',
- 'procurement_view.xml',
'wizard/schedulers_all_view.xml',
+ 'procurement_view.xml',
'procurement_workflow.xml',
'process/procurement_process.xml',
"company_view.xml",
diff --git a/addons/procurement/company.py b/addons/procurement/company.py
index dcdff896553..09865b3aa14 100644
--- a/addons/procurement/company.py
+++ b/addons/procurement/company.py
@@ -28,10 +28,10 @@ class company(osv.osv):
help="This is the time frame analysed by the scheduler when "\
"computing procurements. All procurements that are not between "\
"today and today+range are skipped for futur computation."),
- }
+ }
_defaults = {
'schedule_range': 80.0,
- }
+ }
company()
diff --git a/addons/procurement/i18n/en_US.po b/addons/procurement/i18n/en_US.po
new file mode 100644
index 00000000000..61b250516dd
--- /dev/null
+++ b/addons/procurement/i18n/en_US.po
@@ -0,0 +1,838 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * procurement
+#
+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:15:16+0000\n"
+"PO-Revision-Date: 2010-08-20 09:15:16+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: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr "Make Procurements"
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid "Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products."
+msgstr "Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products."
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Planification"
+msgstr "Planification"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No supplier defined for this product !"
+msgstr "No supplier defined for this product !"
+
+#. module: procurement
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: procurement
+#: field:make.procurement,uom_id:0
+msgid "Unit of Measure"
+msgstr "Unit of Measure"
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+msgid "Procurement Method"
+msgstr "Procurement Method"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No address defined for the supplier"
+msgstr "No address defined for the supplier"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr "Compute Stock Minimum Rules Only"
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr "UoS Quantity"
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,name:0
+msgid "Reason"
+msgstr "Reason"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr "Compute Procurements"
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr "Latest error"
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr "Not used in computations, for information purpose only."
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr "Latest procurement"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr "Exception occurred while computing procurement orders."
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid "When a procurement is created the state is set to 'Draft'.\n"
+" If the procurement is confirmed, the state is set to 'Confirmed'. \n"
+"After confirming the state is set to 'Running'.\n"
+" If any exception arises in the order then the state is set to 'Exception'.\n"
+" Once the exception is removed the state becomes 'Ready'.\n"
+" It is in 'Waiting'. state when the procurement is waiting for another one to finish."
+msgstr "When a procurement is created the state is set to 'Draft'.\n"
+" If the procurement is confirmed, the state is set to 'Confirmed'. \n"
+"After confirming the state is set to 'Running'.\n"
+" If any exception arises in the order then the state is set to 'Exception'.\n"
+" Once the exception is removed the state becomes 'Ready'.\n"
+" It is in 'Waiting'. state when the procurement is waiting for another one to finish."
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules Search"
+msgstr "Minimum Stock Rules Search"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid "When the virtual stock goes belong the Min Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr "When the virtual stock goes belong the Min Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr "Scheduler Parameters"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action11
+msgid "Temporary Procurement Exceptions"
+msgstr "Temporary Procurement Exceptions"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "has an exception."
+msgstr "has an exception."
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr "Ready"
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr "Automatic orderpoint"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Confirmed"
+msgstr "Confirmed"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Retry"
+msgstr "Retry"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+#: view:procurement.orderpoint.compute:0
+msgid "Parameters"
+msgstr "Parameters"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Confirm"
+msgstr "Confirm"
+
+#. module: procurement
+#: help:procurement.order,origin:0
+msgid "Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+msgstr "Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
+msgid "Minimum Inventory Rule"
+msgstr "Minimum Inventory Rule"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action4
+msgid "Procurement Exceptions to Fix"
+msgstr "Procurement Exceptions to Fix"
+
+#. module: procurement
+#: field:procurement.order,priority:0
+msgid "Priority"
+msgstr "Priority"
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "State"
+msgstr "State"
+
+#. module: procurement
+#: field:procurement.order,location_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,location_id:0
+msgid "Location"
+msgstr "Location"
+
+#. module: procurement
+#: field:make.procurement,warehouse_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,warehouse_id:0
+msgid "Warehouse"
+msgstr "Warehouse"
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Best price (not yet active!)"
+msgstr "Best price (not yet active!)"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Product & Location"
+msgstr "Product & Location"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute
+msgid "Compute Procurement"
+msgstr "Compute Procurement"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action3
+#: model:ir.module.module,shortdesc:procurement.module_meta_information
+msgid "Procurements"
+msgstr "Procurements"
+
+#. module: procurement
+#: field:res.company,schedule_range:0
+msgid "Scheduler Range Days"
+msgstr "Scheduler Range Days"
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "Ask New Products"
+msgstr "Ask New Products"
+
+#. module: procurement
+#: field:make.procurement,date_planned:0
+msgid "Planned Date"
+msgstr "Planned Date"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Group By"
+msgstr "Group By"
+
+#. module: procurement
+#: field:make.procurement,qty:0
+#: field:procurement.order,product_qty:0
+msgid "Quantity"
+msgstr "Quantity"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock and no minimum orderpoint rule defined."
+msgstr "Not enough stock and no minimum orderpoint rule defined."
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr "Invalid action !"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "References"
+msgstr "References"
+
+#. module: procurement
+#: view:res.company:0
+msgid "Configuration"
+msgstr "Configuration"
+
+#. module: procurement
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr "Invalid arguments"
+
+#. module: procurement
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid "If you encode manually a Procurement, you probably want to use a make to order method."
+msgstr "If you encode manually a Procurement, you probably want to use a make to order method."
+
+#. module: procurement
+#: view:res.company:0
+msgid "MRP & Logistic Scheduler"
+msgstr "MRP & Logistic Scheduler"
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Wizard run all the procurements, and generate task, production order or purchase order based on the product type"
+msgstr "Wizard run all the procurements, and generate task, production order or purchase order based on the product type"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Max Quantity"
+msgstr "Max Quantity"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Reason"
+msgstr "Procurement Reason"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr "Procurement"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr "Procurement Orders"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr "To Fix"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr "Exceptions"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr "Assignment from Production or Purchase Order."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr "Property"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr "Procurement Request"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr "Compute Stock"
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr "Service"
+
+#. module: procurement
+#: model:ir.module.module,description:procurement.module_meta_information
+msgid "\n"
+" This is the module for computing Procurements.\n"
+" "
+msgstr "\n"
+" This is the module for computing Procurements.\n"
+" "
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Min Quantity"
+msgstr "Min Quantity"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr "Urgent"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr "plus"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Please check the Quantity in Procurement Order(s), it should not be less than 1!"
+msgstr "Please check the Quantity in Procurement Order(s), it should not be less than 1!"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid "When the virtual stock goes belong the Max Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr "When the virtual stock goes belong the Max Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr "If the stock of a product is under 0, it will act like an orderpoint"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr "Procurement Lines"
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr "Note"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr "Draft"
+
+#. module: procurement
+#: 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: procurement
+#: view:procurement.order:0
+msgid "Status"
+msgstr "Status"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Procurement "
+msgstr "Procurement "
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid "This is the time frame analysed by the scheduler when computing procurements. All procurements that are not between today and today+range are skipped for futur computation."
+msgstr "This is the time frame analysed by the scheduler when computing procurements. All procurements that are not between today and today+range are skipped for futur computation."
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr "This wizard will schedule procurements."
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid "If the active field is set to true, it will allow you to hide the orderpoint without removing it."
+msgstr "If the active field is set to true, it will allow you to hide the orderpoint without removing it."
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is running."
+msgstr "is running."
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock "
+msgstr "Not enough stock "
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr "Procure Products"
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr "Scheduled date"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr "Exception"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr "Automatic Order Point"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr "Qty Multiple"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr "Companies"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr "Extra Information"
+
+#. module: procurement
+#: help:procurement.order,name:0
+msgid "Procurement name."
+msgstr "Procurement name."
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Qty Multiple must be greater than zero."
+msgstr "Qty Multiple must be greater than zero."
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr "Order to Max"
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr "Date Closed"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr "Late"
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr "Properties composition"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Data Insufficient !"
+msgstr "Data Insufficient !"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr "Property Group"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr "Misc"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Locations"
+msgstr "Locations"
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "from stock"
+msgstr "from stock"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "General Information"
+msgstr "General Information"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr "Run Procurement"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr "Done"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will by rounded up to this multiple."
+msgstr "The procurement quantity will by rounded up to this multiple."
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order:0
+#: selection:procurement.order,state:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr "Reordering Mode"
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr "Source Document"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr "Not urgent"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr "Compute all schedulers"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Current"
+msgstr "Current"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Project_mrp module not installed !"
+msgstr "Project_mrp module not installed !"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Details"
+msgstr "Details"
+
+#. module: procurement
+#: view:board.board:0
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+msgid "Procurement Exceptions"
+msgstr "Procurement Exceptions"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules"
+msgstr "Minimum Stock Rules"
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr "Close Move at end"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr "Scheduled Date"
+
+#. module: procurement
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr "Product"
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+msgid "Description"
+msgstr "Description"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr "min"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Quantity Rules"
+msgstr "Quantity Rules"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr "Running"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product UOM"
+msgstr "Product UOM"
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+msgid "Make to Order"
+msgstr "Make to Order"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "UOM"
+msgstr "UOM"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Waiting"
+msgstr "Waiting"
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "on order"
+msgstr "on order"
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr "Reservation"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr "The way to procurement depends on the product type."
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."
+msgstr "This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is done."
+msgstr "is done."
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr "max"
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr "Product UoS"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "from stock: products assigned."
+msgstr "from stock: products assigned."
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Compute Schedulers"
+msgstr "Compute Schedulers"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Wizard checks all the stock minimum rules and generate procurement order."
+msgstr "Wizard checks all the stock minimum rules and generate procurement order."
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+msgid "Product UoM"
+msgstr "Product UoM"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr "Search Procurement"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr "Very Urgent"
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr "Automatic Orderpoint"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Details"
+msgstr "Procurement Details"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s State!' % s['state']))\n"
+" return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)\n"
+"\n"
+" def onchange_product_id(self, cr, uid, ids, product_id, context={}):\n"
+" \"\"\" Finds UoM and UoS of changed product.\n"
+" @param product_id: Changed id of product.\n"
+" @return: Dictionary of values.\n"
+" \"\"\"\n"
+" if product_id:\n"
+" w = self.pool.get('product.product"
+msgstr "Cannot delete Procurement Order(s) which are in %s State!' % s['state']))\n"
+" return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)\n"
+"\n"
+" def onchange_product_id(self, cr, uid, ids, product_id, context={}):\n"
+" \"\"\" Finds UoM and UoS of changed product.\n"
+" @param product_id: Changed id of product.\n"
+" @return: Dictionary of values.\n"
+" \"\"\"\n"
+" if product_id:\n"
+" w = self.pool.get('product.product"
+
+#. module: procurement
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr "Rules are not supported for osv_memory objects !"
+
diff --git a/addons/procurement/i18n/fr.po b/addons/procurement/i18n/fr.po
new file mode 100644
index 00000000000..36f35bcdc79
--- /dev/null
+++ b/addons/procurement/i18n/fr.po
@@ -0,0 +1,821 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * procurement
+#
+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:51:37+0000\n"
+"PO-Revision-Date: 2010-08-20 08:51:37+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: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid "Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Planification"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No supplier defined for this product !"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,uom_id:0
+msgid "Unit of Measure"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+msgid "Procurement Method"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No address defined for the supplier"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,name:0
+msgid "Reason"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr ""
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Notes"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid "When a procurement is created the state is set to 'Draft'.\n"
+" If the procurement is confirmed, the state is set to 'Confirmed'. \n"
+"After confirming the state is set to 'Running'.\n"
+" If any exception arises in the order then the state is set to 'Exception'.\n"
+" Once the exception is removed the state becomes 'Ready'.\n"
+" It is in 'Waiting'. state when the procurement is waiting for another one to finish."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules Search"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid "When the virtual stock goes belong the Min Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action11
+msgid "Temporary Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "has an exception."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Retry"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+#: view:procurement.orderpoint.compute:0
+msgid "Parameters"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Confirm"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,origin:0
+msgid "Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
+msgid "Minimum Inventory Rule"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action4
+msgid "Procurement Exceptions to Fix"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "State"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,location_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,location_id:0
+msgid "Location"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,warehouse_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Best price (not yet active!)"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Product & Location"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute
+msgid "Compute Procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action3
+#: model:ir.module.module,shortdesc:procurement.module_meta_information
+msgid "Procurements"
+msgstr ""
+
+#. module: procurement
+#: field:res.company,schedule_range:0
+msgid "Scheduler Range Days"
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "Ask New Products"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,date_planned:0
+msgid "Planned Date"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Group By"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,qty:0
+#: field:procurement.order,product_qty:0
+msgid "Quantity"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock and no minimum orderpoint rule defined."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "References"
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "Configuration"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid "If you encode manually a Procurement, you probably want to use a make to order method."
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "MRP & Logistic Scheduler"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Wizard run all the procurements, and generate task, production order or purchase order based on the product type"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Max Quantity"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Reason"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr ""
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr ""
+
+#. module: procurement
+#: model:ir.module.module,description:procurement.module_meta_information
+msgid "\n"
+" This is the module for computing Procurements.\n"
+" "
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Min Quantity"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Please check the Quantity in Procurement Order(s), it should not be less than 1!"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid "When the virtual stock goes belong the Max Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Status"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Procurement "
+msgstr ""
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid "This is the time frame analysed by the scheduler when computing procurements. All procurements that are not between today and today+range are skipped for futur computation."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid "If the active field is set to true, it will allow you to hide the orderpoint without removing it."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is running."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock "
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,name:0
+msgid "Procurement name."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Qty Multiple must be greater than zero."
+msgstr ""
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Data Insufficient !"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Locations"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "from stock"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "General Information"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will by rounded up to this multiple."
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order:0
+#: selection:procurement.order,state:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Current"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Project_mrp module not installed !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Details"
+msgstr ""
+
+#. module: procurement
+#: view:board.board:0
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+msgid "Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+msgid "Description"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Quantity Rules"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product UOM"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+msgid "Make to Order"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "UOM"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Waiting"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "on order"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is done."
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "from stock: products assigned."
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Compute Schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Wizard checks all the stock minimum rules and generate procurement order."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Details"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s State!' % s['state']))\n"
+" return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)\n"
+"\n"
+" def onchange_product_id(self, cr, uid, ids, product_id, context={}):\n"
+" \"\"\" Finds UoM and UoS of changed product.\n"
+" @param product_id: Changed id of product.\n"
+" @return: Dictionary of values.\n"
+" \"\"\"\n"
+" if product_id:\n"
+" w = self.pool.get('product.product"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr ""
+
diff --git a/addons/procurement/i18n/procurement.pot b/addons/procurement/i18n/procurement.pot
new file mode 100644
index 00000000000..36f35bcdc79
--- /dev/null
+++ b/addons/procurement/i18n/procurement.pot
@@ -0,0 +1,821 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * procurement
+#
+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:51:37+0000\n"
+"PO-Revision-Date: 2010-08-20 08:51:37+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: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid "Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Planification"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No supplier defined for this product !"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,uom_id:0
+msgid "Unit of Measure"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+msgid "Procurement Method"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "No address defined for the supplier"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,name:0
+msgid "Reason"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr ""
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Notes"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid "When a procurement is created the state is set to 'Draft'.\n"
+" If the procurement is confirmed, the state is set to 'Confirmed'. \n"
+"After confirming the state is set to 'Running'.\n"
+" If any exception arises in the order then the state is set to 'Exception'.\n"
+" Once the exception is removed the state becomes 'Ready'.\n"
+" It is in 'Waiting'. state when the procurement is waiting for another one to finish."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules Search"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid "When the virtual stock goes belong the Min Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action11
+msgid "Temporary Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "has an exception."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Retry"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+#: view:procurement.orderpoint.compute:0
+msgid "Parameters"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Confirm"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,origin:0
+msgid "Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
+msgid "Minimum Inventory Rule"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action4
+msgid "Procurement Exceptions to Fix"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "State"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,location_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,location_id:0
+msgid "Location"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,warehouse_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Best price (not yet active!)"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Product & Location"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute
+msgid "Compute Procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action3
+#: model:ir.module.module,shortdesc:procurement.module_meta_information
+msgid "Procurements"
+msgstr ""
+
+#. module: procurement
+#: field:res.company,schedule_range:0
+msgid "Scheduler Range Days"
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "Ask New Products"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,date_planned:0
+msgid "Planned Date"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Group By"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,qty:0
+#: field:procurement.order,product_qty:0
+msgid "Quantity"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock and no minimum orderpoint rule defined."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Invalid action !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "References"
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "Configuration"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.cron:0
+msgid "Invalid arguments"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid "If you encode manually a Procurement, you probably want to use a make to order method."
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "MRP & Logistic Scheduler"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Wizard run all the procurements, and generate task, production order or purchase order based on the product type"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Max Quantity"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Reason"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr ""
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr ""
+
+#. module: procurement
+#: model:ir.module.module,description:procurement.module_meta_information
+msgid "\n"
+" This is the module for computing Procurements.\n"
+" "
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Min Quantity"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Please check the Quantity in Procurement Order(s), it should not be less than 1!"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid "When the virtual stock goes belong the Max Quantity, OpenERP generates a procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Status"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Procurement "
+msgstr ""
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid "This is the time frame analysed by the scheduler when computing procurements. All procurements that are not between today and today+range are skipped for futur computation."
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid "If the active field is set to true, it will allow you to hide the orderpoint without removing it."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is running."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Not enough stock "
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr ""
+
+#. module: procurement
+#: help:procurement.order,name:0
+msgid "Procurement name."
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Qty Multiple must be greater than zero."
+msgstr ""
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Data Insufficient !"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Locations"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "from stock"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "General Information"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr ""
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will by rounded up to this multiple."
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order:0
+#: selection:procurement.order,state:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr ""
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Current"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Project_mrp module not installed !"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Details"
+msgstr ""
+
+#. module: procurement
+#: view:board.board:0
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+msgid "Procurement Exceptions"
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+msgid "Description"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Quantity Rules"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product UOM"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+msgid "Make to Order"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "UOM"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Waiting"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "on order"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr ""
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr ""
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "is done."
+msgstr ""
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr ""
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "from stock: products assigned."
+msgstr ""
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Compute Schedulers"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Wizard checks all the stock minimum rules and generate procurement order."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr ""
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr ""
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Details"
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:0
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s State!' % s['state']))\n"
+" return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)\n"
+"\n"
+" def onchange_product_id(self, cr, uid, ids, product_id, context={}):\n"
+" \"\"\" Finds UoM and UoS of changed product.\n"
+" @param product_id: Changed id of product.\n"
+" @return: Dictionary of values.\n"
+" \"\"\"\n"
+" if product_id:\n"
+" w = self.pool.get('product.product"
+msgstr ""
+
+#. module: procurement
+#: constraint:ir.rule:0
+msgid "Rules are not supported for osv_memory objects !"
+msgstr ""
+
diff --git a/addons/procurement/process/procurement_process.xml b/addons/procurement/process/procurement_process.xml
index e12c97b2070..42ee50782a1 100644
--- a/addons/procurement/process/procurement_process.xml
+++ b/addons/procurement/process/procurement_process.xml
@@ -11,6 +11,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml
index 11c1287152c..aa5552f0b0c 100644
--- a/addons/procurement/procurement_view.xml
+++ b/addons/procurement/procurement_view.xml
@@ -4,6 +4,7 @@
+
procurement.order.tree
@@ -67,10 +68,6 @@
-
-
-
-
@@ -140,7 +137,7 @@
form
tree,form
[('state','=','exception')]
- For each customer order line or raw materials in a manufacturing order, there is a procurement form . In normal system use, procurement orders are automatically generated by Open ERP. But if there are configuration problems, the system can remain blocked by a procurement without generating a corresponding document. It is a procurement exception. Some problems are link to timing and will be correct automatically by the system. If there is no procurement rule, the exception must be corrected manually.
+ For each customer order line or raw materials in a manufacturing order, there is a procurement form . In normal system use, procurement orders are automatically generated by OpenERP. But if there are configuration problems, the system can remain blocked by a procurement without generating a corresponding document. It is a procurement exception. Some problems are link to timing and will be correct automatically by the system. If there is no procurement rule, the exception must be corrected manually.
@@ -263,12 +260,8 @@
res_model="stock.warehouse.orderpoint"
src_model="procurement.order"/>
-
-
-
-
-
-
-
+
+
+
diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py
index c0cc0f736b6..7007b13d06d 100644
--- a/addons/procurement/schedulers.py
+++ b/addons/procurement/schedulers.py
@@ -259,7 +259,7 @@ class procurement_order(osv.osv):
'act_from': user_id,
'act_to': user_id,
'body': '\n'.join(report)
- })
+ })
if use_new_cursor:
cr.commit()
cr.close()
diff --git a/addons/procurement/wizard/make_procurement_product.py b/addons/procurement/wizard/make_procurement_product.py
index a7bea3b247a..292cf7faf72 100644
--- a/addons/procurement/wizard/make_procurement_product.py
+++ b/addons/procurement/wizard/make_procurement_product.py
@@ -47,27 +47,27 @@ class make_procurement(osv.osv_memory):
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True),
'date_planned': fields.date('Planned Date', required=True),
}
-
+
_defaults = {
- 'date_planned': lambda *args: time.strftime('%Y-%m-%d'),
- 'qty': lambda *args: 1.0,
+ 'date_planned': lambda *args: time.strftime('%Y-%m-%d'),
+ 'qty': lambda *args: 1.0,
}
-
+
def make_procurement(self, cr, uid, ids, context=None):
""" Creates procurement order for selected product.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: List of IDs selected
- @param context: A standard dictionary
- @return: A dictionary which loads Procurement form view.
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+ @return: A dictionary which loads Procurement form view.
"""
user = self.pool.get('res.users').browse(cr, uid, uid, context).login
wh_obj = self.pool.get('stock.warehouse')
- procurement_obj = self.pool.get('procurement.order')
+ procurement_obj = self.pool.get('procurement.order')
wf_service = netsvc.LocalService("workflow")
data_obj = self.pool.get('ir.model.data')
-
+
for proc in self.browse(cr, uid, ids):
wh = wh_obj.browse(cr, uid, proc.warehouse_id.id, context)
procure_id = procurement_obj.create(cr, uid, {
@@ -79,42 +79,42 @@ class make_procurement(osv.osv_memory):
'location_id': wh.lot_stock_id.id,
'procure_method':'make_to_order',
})
-
+
wf_service.trg_validate(uid, 'procurement.order', procure_id, 'button_confirm', cr)
-
-
+
+
id2 = data_obj._get_id(cr, uid, 'procurement', 'procurement_tree_view')
id3 = data_obj._get_id(cr, uid, 'procurement', 'procurement_form_view')
-
+
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
if id3:
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
-
+
return {
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'procurement.order',
- 'res_id' : procure_id,
- 'views': [(id3,'form'),(id2,'tree')],
- 'type': 'ir.actions.act_window',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'procurement.order',
+ 'res_id' : procure_id,
+ 'views': [(id3,'form'),(id2,'tree')],
+ 'type': 'ir.actions.act_window',
}
-
+
def default_get(self, cr, uid, fields, context=None):
""" To get default values for the object.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
"""
record_id = context and context.get('active_id', False) or False
res = super(make_procurement, self).default_get(cr, uid, fields, context=context)
product_id = self.pool.get('product.product').browse(cr, uid, record_id, context=context).id
if 'product_id' in fields:
- res.update({'product_id':product_id})
+ res.update({'product_id':product_id})
return res
make_procurement()
diff --git a/addons/procurement/wizard/mrp_procurement.py b/addons/procurement/wizard/mrp_procurement.py
index 659a2ad4d51..40977cf0b1a 100644
--- a/addons/procurement/wizard/mrp_procurement.py
+++ b/addons/procurement/wizard/mrp_procurement.py
@@ -25,28 +25,27 @@ from osv import osv, fields
class procurement_compute(osv.osv_memory):
_name = 'procurement.order.compute'
_description = 'Compute Procurement'
-
+
def _procure_calculation_procure(self, cr, uid, ids, context):
try:
proc_obj = self.pool.get('procurement.order')
proc_obj._procure_confirm(cr, uid, use_new_cursor=cr.dbname, context=context)
finally:
pass
- #cr.close()
return {}
-
+
def procure_calculation(self, cr, uid, ids, context):
- """
+ """
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: List of IDs selected
- @param context: A standard dictionary
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
"""
threaded_calculation = threading.Thread(target=self._procure_calculation_procure, args=(cr, uid, ids, context))
threaded_calculation.start()
return {}
-
+
procurement_compute()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/procurement/wizard/mrp_procurement_view.xml b/addons/procurement/wizard/mrp_procurement_view.xml
index c1cf71b1abb..1d071ea300f 100644
--- a/addons/procurement/wizard/mrp_procurement_view.xml
+++ b/addons/procurement/wizard/mrp_procurement_view.xml
@@ -22,13 +22,5 @@
-
-
-
-
-
-
-
-
-
+
diff --git a/addons/procurement/wizard/schedulers_all.py b/addons/procurement/wizard/schedulers_all.py
index 9b2ac6d59b8..11ecb9d2bf2 100644
--- a/addons/procurement/wizard/schedulers_all.py
+++ b/addons/procurement/wizard/schedulers_all.py
@@ -31,7 +31,7 @@ class procurement_compute_all(osv.osv_memory):
'automatic': fields.boolean('Automatic orderpoint',help='Triggers an automatic procurement for all products that have a virtual stock under 0. You should probably not use this option, we suggest using a MTO configuration on products.'),
}
- _defaults ={
+ _defaults = {
'automatic': lambda *a: False,
}
diff --git a/addons/product/i18n/de.po b/addons/product/i18n/de.po
index 158347fc967..fb6a3500bfc 100644
--- a/addons/product/i18n/de.po
+++ b/addons/product/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 08:57+0000\n"
+"PO-Revision-Date: 2010-08-29 10:18+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:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@@ -69,7 +69,7 @@ msgstr "Onsite Senior Intervention"
msgid ""
"The minimal quantity to purchase for this supplier, expressed in the default "
"unit of measure."
-msgstr "Min. Bestellmenge beim Lieferanten, ausgewiesen in der Standard UoM."
+msgstr "Min. Bestellmenge beim Lieferanten, ausgewiesen in der Standard ME."
#. module: product
#: field:product.template,weight_net:0
@@ -314,7 +314,7 @@ msgstr "Fest"
#: model:ir.actions.act_window,name:product.product_uom_categ_form_action
#: model:ir.ui.menu,name:product.menu_product_uom_categ_form_action
msgid "Units of Measure Categories"
-msgstr "UoM Kategorien"
+msgstr "ME Kategorien"
#. module: product
#: help:product.pricelist.item,product_id:0
@@ -366,7 +366,7 @@ msgstr "Fehler! Sie können keine rekursive Kategorien definieren."
#. module: product
#: field:product.template,uom_id:0
msgid "Default UoM"
-msgstr "Standard Menge (UoM)"
+msgstr "Standard Menge (ME)"
#. module: product
#: field:product.template,produce_delay:0
@@ -515,7 +515,7 @@ msgstr "Preisliste"
#: view:product.product:0
#: view:product.template:0
msgid "UOM"
-msgstr "UoM"
+msgstr "ME"
#. module: product
#: model:product.uom,name:product.product_uom_unit
@@ -657,7 +657,9 @@ msgstr ""
#. module: product
#: 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: Die Verkaufseinheit sollte in einer anderen Kategorie sein als die "
+"Mengeneinheit"
#. module: product
#: field:product.category,parent_id:0
@@ -755,7 +757,7 @@ msgstr "Regal"
#. module: product
#: field:product.uom,category_id:0
msgid "UoM Category"
-msgstr "UoM Kategorie"
+msgstr "ME Kategorie"
#. module: product
#: selection:product.ul,type:0
@@ -817,7 +819,7 @@ msgstr "IT components kits"
#. module: product
#: view:product.uom.categ:0
msgid "Units of Measure categories"
-msgstr "UoM Kategorien"
+msgstr "ME Kategorien"
#. module: product
#: field:product.category,sequence:0
@@ -931,7 +933,7 @@ msgstr ""
#. module: product
#: model:ir.model,name:product.model_product_uom
msgid "Product Unit of Measure"
-msgstr "Mengeneinheit (UoM)"
+msgstr "Mengeneinheit (ME)"
#. module: product
#: field:product.template,sale_ok:0
@@ -948,8 +950,8 @@ msgstr "Complete PC With Peripherals"
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 ME muss in "
+"derselben Kategorie sein."
#. module: product
#: model:product.template,name:product.product_product_mb2_product_template
@@ -1059,7 +1061,7 @@ msgstr "Kutzbez. Logistikeinh. (UL)"
#. module: product
#: field:product.template,uom_po_id:0
msgid "Purchase UoM"
-msgstr "Einkauf Menge (UoM)"
+msgstr "Einkauf Menge (ME)"
#. module: product
#: view:product.price.type:0
@@ -1132,7 +1134,7 @@ msgstr "Einkaufsbeschreibung"
#: view:product.product:0
#: view:product.template:0
msgid "Second UoM"
-msgstr "Weitere UoM"
+msgstr "Weitere ME"
#. module: product
#: model:product.category,name:product.product_category_4
@@ -1242,7 +1244,7 @@ msgstr "Variabel"
#. module: product
#: help:product.template,uom_id:0
msgid "Default Unit of Measure used for all stock operation."
-msgstr "Standard UoM für alle Bestandsänderungen."
+msgstr "Standard ME für alle Bestandsänderungen."
#. module: product
#: model:ir.model,name:product.model_product_template
@@ -1422,7 +1424,7 @@ msgstr "Palette"
#. module: product
#: field:pricelist.partnerinfo,price:0
msgid "Unit Price"
-msgstr "Preis/UoM"
+msgstr "Preis/ME"
#. module: product
#: field:product.template,warranty:0
@@ -1509,7 +1511,7 @@ msgstr ""
#. module: product
#: model:ir.model,name:product.model_product_uom_categ
msgid "Product uom categ"
-msgstr "Mengeneinheit (UoM) Kategorie"
+msgstr "Mengeneinheit (ME) Kategorie"
#. module: product
#: wizard_field:product.price_list,init,qty3:0
@@ -1600,8 +1602,8 @@ msgid ""
"Coefficient to convert UOM to UOS\n"
" uom = uos * coeff"
msgstr ""
-"Koeffizient für Konvertierung UoM zu UoS\n"
-"UoM = UoS * Koeff"
+"Koeffizient für Konvertierung ME zu VE (Verkaufseinheit)\n"
+"ME = VE * Koeff"
#. module: product
#: field:product.template,purchase_ok:0
@@ -1611,7 +1613,7 @@ msgstr "kann gekauft werden"
#. module: product
#: field:product.template,uos_coeff:0
msgid "UOM -> UOS Coeff"
-msgstr "UOM -> UOS Koeff"
+msgstr "ME -> VE Koeff"
#. module: product
#: model:product.template,name:product.product_product_cpu2_product_template
@@ -1741,8 +1743,8 @@ msgid ""
"Default Unit of Measure used for purchase orders. It must in the same "
"category than the default unit of measure."
msgstr ""
-"Standard UoM wird für die Beschaffung verwendet. Diese UoM sollte in "
-"derselben Kategorie sein wie die Standard Einheit (UoM)."
+"Standard ME wird für die Beschaffung verwendet. Diese ME sollte in derselben "
+"Kategorie sein wie die Standard Einheit (ME)."
#. module: product
#: constraint:product.product:0
diff --git a/addons/product/i18n/es_EC.po b/addons/product/i18n/es_EC.po
new file mode 100644
index 00000000000..59b777403b8
--- /dev/null
+++ b/addons/product/i18n/es_EC.po
@@ -0,0 +1,1782 @@
+# Spanish (Argentina) translation for openobject-addons
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2009.
+#
+msgid ""
+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 20:03+0000\n"
+"Last-Translator: Silvana Herrera \n"
+"Language-Team: Spanish (Argentina) \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-Generator: Launchpad (build Unknown)\n"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Max. Margin"
+msgstr "Margen máximo"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Base Price"
+msgstr "Precio base"
+
+#. module: product
+#: help:product.template,standard_price:0
+msgid ""
+"The cost of the product for accounting stock valuation. It can serves as a "
+"base price for supplier price."
+msgstr ""
+"El costo del producto para la valuación contable del stock. Puede servir "
+"como precio base para el precio de proveedor."
+
+#. module: product
+#: selection:product.template,type:0
+msgid "Service"
+msgstr "Servicio"
+
+#. module: product
+#: help:product.template,purchase_ok:0
+msgid ""
+"Determine if the product is visible in the list of products within a "
+"selection from a purchase order line."
+msgstr ""
+"Determina si el producto es visible en la lista de productos dentro de una "
+"selección desde una línea de un pedido de compra."
+
+#. module: product
+#: help:product.supplierinfo,name:0
+msgid "Supplier of this product"
+msgstr "Provedor de este producto"
+
+#. module: product
+#: model:product.template,name:product.product_product_ram512_product_template
+msgid "DDR 512MB PC400"
+msgstr "DDR 512MB PC400"
+
+#. module: product
+#: model:product.template,name:product.product_product_0_product_template
+msgid "Onsite Senior Intervention"
+msgstr "Intervención en el mismo lugar consultor senior"
+
+#. module: product
+#: help:product.supplierinfo,qty:0
+msgid ""
+"The minimal quantity to purchase for this supplier, expressed in the default "
+"unit of measure."
+msgstr ""
+"La cantidad mínima a comprar a este proveedor, expresada en la unidad de "
+"medida por defecto."
+
+#. module: product
+#: field:product.template,weight_net:0
+msgid "Net weight"
+msgstr "Peso neto"
+
+#. module: product
+#: help:product.product,incoming_qty:0
+msgid ""
+"Quantities of products that are planned to arrive in selected locations or "
+"all internal if none have been selected."
+msgstr ""
+"Cantidades de productos que está previsto que lleguen en las ubicaciones "
+"seleccionadas o en todas las ubicaciones internas si ninguna ha sido "
+"seleccionada."
+
+#. module: product
+#: help:product.product,virtual_available:0
+msgid ""
+"Futur stock for this product according to the selected location or all "
+"internal if none have been selected. Computed as: Real Stock - Outgoing + "
+"Incoming."
+msgstr ""
+"Stock futuro para este producto según la ubicación seleccionada o todas las "
+"internas si no se ha seleccionado ninguna. Calculado como: Stock real - "
+"Saliente + Entrante."
+
+#. module: product
+#: field:product.packaging,width:0
+msgid "Width"
+msgstr "Ancho"
+
+#. module: product
+#: help:product.pricelist.item,product_tmpl_id:0
+msgid ""
+"Set a template if this rule only apply to a template of product. Keep empty "
+"for all products"
+msgstr ""
+"Indicar una plantilla si esta regla sólo se aplica a una plantilla de "
+"producto. Dejarlo vacío para todos los productos"
+
+#. module: product
+#: field:product.template,procure_method:0
+msgid "Procure Method"
+msgstr "Método de adquisición"
+
+#. module: product
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: product
+#: model:process.process,name:product.process_process_productprocess0
+msgid "Product Process"
+msgstr "Proceso de producto"
+
+#. module: product
+#: help:product.price.type,field:0
+msgid "Associated field in the product form."
+msgstr "Campo asociado en el formulario de producto."
+
+#. module: product
+#: selection:product.template,cost_method:0
+msgid "Standard Price"
+msgstr "Precio estándar"
+
+#. module: product
+#: help:product.packaging,height:0
+msgid "The height of the package"
+msgstr "La altura del paquete"
+
+#. module: product
+#: view:product.pricelist:0
+msgid "Products Price List"
+msgstr "Precio producto"
+
+#. module: product
+#: model:product.category,name:product.cat1
+msgid "Sellable"
+msgstr "Vendible"
+
+#. module: product
+#: model:product.template,name:product.product_product_26_product_template
+msgid "Kit Keyboard + Mouse"
+msgstr "Kit Teclado + Ratón"
+
+#. module: product
+#: field:product.price.type,name:0
+msgid "Price Name"
+msgstr "Nombre precio"
+
+#. module: product
+#: field:product.product,price:0
+msgid "Customer Price"
+msgstr "Precio cliente"
+
+#. module: product
+#: field:product.template,company_id:0
+msgid "Company"
+msgstr "Compañía"
+
+#. module: product
+#: field:product.template,rental:0
+msgid "Rentable Product"
+msgstr "Producto Rentable"
+
+#. module: product
+#: field:product.product,lst_price:0
+msgid "List Price"
+msgstr "Precio lista"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_price_type_action
+#: model:ir.ui.menu,name:product.menu_product_price_type_action
+msgid "Prices Types"
+msgstr "Tipos de precios"
+
+#. module: product
+#: selection:product.template,type:0
+msgid "Stockable Product"
+msgstr "Producto almacenable"
+
+#. module: product
+#: model:product.category,name:product.product_category_services
+msgid "Services"
+msgstr "Servicios"
+
+#. module: product
+#: help:product.template,list_price:0
+msgid ""
+"Base price for computing the customer price. Sometimes called the catalog "
+"price."
+msgstr ""
+"Precio base para calcular el precio de cliente. También llamado el precio de "
+"catálogo."
+
+#. module: product
+#: field:pricelist.partnerinfo,min_quantity:0
+msgid "Quantity"
+msgstr "Cantidad"
+
+#. module: product
+#: model:product.template,name:product.product_product_cpu3_product_template
+msgid "Processor AMD Athlon XP 2200+"
+msgstr "Procesador AMD Athlon XP 2200+"
+
+#. module: product
+#: help:product.price.type,name:0
+msgid "Name of this kind of price."
+msgstr "Nombre de este tipo de precio."
+
+#. module: product
+#: help:product.pricelist.version,date_start:0
+msgid "Starting date for this pricelist version to be valid."
+msgstr "Fecha inicial de esta versión de tarifa para ser válida."
+
+#. module: product
+#: field:product.product,incoming_qty:0
+msgid "Incoming"
+msgstr "Proximo"
+
+#. module: product
+#: selection:product.template,procure_method:0
+msgid "Make to Stock"
+msgstr "Obtener para existencia"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Weigths"
+msgstr "Pesos"
+
+#. module: product
+#: model:product.template,name:product.product_product_fan2_product_template
+msgid "Silent fan"
+msgstr "Ventilador silencioso"
+
+#. module: product
+#: help:product.template,supply_method:0
+msgid ""
+"Produce will generate production order or tasks, according to the product "
+"type. Purchase will trigger purchase orders when requested."
+msgstr ""
+"Producir generará órdenes de producción o tareas, de acuerdo al tipo de "
+"producto. Comprar disparará pedidos de compras cuando sea necesario."
+
+#. module: product
+#: model:process.transition,note:product.process_transition_supplierofproduct0
+msgid "You can see the list of suppliers for that product."
+msgstr "Puede ver la lista de proveedores de dicho producto."
+
+#. module: product
+#: help:product.packaging,rows:0
+msgid "The number of layer on a palet or box"
+msgstr "El número de piso en un palet o caja"
+
+#. module: product
+#: model:product.pricelist.type,name:product.pricelist_type_sale
+#: field:res.partner,property_product_pricelist:0
+msgid "Sale Pricelist"
+msgstr "Tarifa de venta"
+
+#. module: product
+#: field:product.pricelist.item,base_pricelist_id:0
+msgid "If Other Pricelist"
+msgstr "Otro precio de lista"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_normal_action
+#: model:ir.actions.act_window,name:product.product_normal_action_tree
+#: model:ir.ui.menu,name:product.menu_main_product
+#: model:ir.ui.menu,name:product.menu_products
+#: view:product.product:0
+msgid "Products"
+msgstr "Productos"
+
+#. module: product
+#: help:product.pricelist.item,price_round:0
+msgid ""
+"Sets the price so that it is a multiple of this value.\n"
+"Rounding is applied after the discount and before the surcharge.\n"
+"To have prices that end in 9.99, set rounding 10, surcharge -0.01"
+msgstr ""
+"Calcula el precio de modo que sea un múltiplo de este valor.\n"
+"El redondeo se aplica después del descuento y antes del incremento.\n"
+"Para que los precios terminen en 9,99, redondeo 10, incremento -0,01."
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "New Price ="
+msgstr "Nuevo Precio ="
+
+#. module: product
+#: field:product.product,virtual_available:0
+msgid "Virtual Stock"
+msgstr "Existencia virtual"
+
+#. module: product
+#: selection:product.template,mes_type:0
+msgid "Fixed"
+msgstr "Fijo"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_uom_categ_form_action
+#: model:ir.ui.menu,name:product.menu_product_uom_categ_form_action
+msgid "Units of Measure Categories"
+msgstr "Categorías de unidades de medida"
+
+#. module: product
+#: help:product.pricelist.item,product_id:0
+msgid ""
+"Set a product if this rule only apply to one product. Keep empty for all "
+"products"
+msgstr ""
+"Indicar un producto si esta regla sólo se aplica a un producto. Dejarlo "
+"vacío para todos los productos"
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_type
+#: field:product.pricelist,type:0
+#: view:product.pricelist.type:0
+msgid "Pricelist Type"
+msgstr "Tipo de precio"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Base Prices"
+msgstr "Precios base"
+
+#. module: product
+#: model:ir.ui.menu,name:product.menu_price
+msgid "Prices Computations"
+msgstr "Cálculos de precios"
+
+#. module: product
+#: field:product.pricelist.item,name:0
+msgid "Rule Name"
+msgstr "Nombre de regla"
+
+#. module: product
+#: model:ir.ui.menu,name:product.menu_config_product
+msgid "Configuration"
+msgstr "Configuración"
+
+#. module: product
+#: field:product.packaging,rows:0
+msgid "Number of Layer"
+msgstr "Número de piso"
+
+#. module: product
+#: constraint:product.category:0
+msgid "Error ! You can not create recursive categories."
+msgstr "¡Error! No puede crear categorías recursivas."
+
+#. module: product
+#: field:product.template,uom_id:0
+msgid "Default UoM"
+msgstr "UdM por defecto"
+
+#. module: product
+#: field:product.template,produce_delay:0
+msgid "Manufacturing Lead Time"
+msgstr "Plazo de entrega de fabricación"
+
+#. module: product
+#: field:product.supplierinfo,pricelist_ids:0
+msgid "Supplier Pricelist"
+msgstr "Precio provedor"
+
+#. module: product
+#: view:product.packaging:0
+#: view:product.product:0
+msgid "Pallet Dimension"
+msgstr "Dimensión del palet"
+
+#. module: product
+#: field:product.pricelist.item,base:0
+msgid "Based on"
+msgstr "Basado en"
+
+#. module: product
+#: model:product.template,name:product.product_product_24_product_template
+msgid "Keyboard"
+msgstr "Teclado"
+
+#. module: product
+#: field:product.supplierinfo,name:0
+msgid "Partner"
+msgstr "Empresa"
+
+#. module: product
+#: field:product.template,sale_delay:0
+msgid "Customer Lead Time"
+msgstr "Plazo de entrega del cliente"
+
+#. module: product
+#: model:product.template,name:product.product_product_25_product_template
+msgid "Mouse"
+msgstr "Ratón"
+
+#. module: product
+#: help:product.template,cost_method:0
+msgid ""
+"Standard Price: the cost price is fixed and recomputed periodically (usually "
+"at the end of the year), Average Price: the cost price is recomputed at each "
+"reception of products."
+msgstr ""
+"Precio estándar: El precio de coste es fijo y se recalcula periódicamente "
+"(normalmente al finalizar el año), Precio medio: El precio de coste se "
+"recalcula en cada recepción de productos."
+
+#. module: product
+#: field:product.pricelist,name:0
+msgid "Pricelist Name"
+msgstr "Nombre tarifa"
+
+#. module: product
+#: field:product.template,seller_ids:0
+msgid "Partners"
+msgstr "Empresas"
+
+#. module: product
+#: selection:product.template,cost_method:0
+msgid "Average Price"
+msgstr "Precio medio"
+
+#. module: product
+#: model:process.node,note:product.process_node_product0
+msgid "Create new Product"
+msgstr "Crear nuevo producto"
+
+#. module: product
+#: help:product.pricelist.item,name:0
+msgid "Explicit rule name for this pricelist line."
+msgstr "Nombre de regla explícita para esta línea de tarifa."
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Min. Margin"
+msgstr "Margen mín."
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "* ( 1 + "
+msgstr "* ( 1 + "
+
+#. module: product
+#: model:product.template,name:product.product_product_cpu1_product_template
+msgid "Processor AMD Athlon XP 1800+"
+msgstr "Procesador AMD Athlon XP 1800+"
+
+#. module: product
+#: selection:product.template,state:0
+msgid "In Production"
+msgstr "En producción"
+
+#. module: product
+#: field:product.category,child_id:0
+msgid "Child Categories"
+msgstr "Categorías hijas"
+
+#. module: product
+#: model:product.category,name:product.product_category_accessories
+msgid "Accessories"
+msgstr "Accesorios"
+
+#. module: product
+#: field:product.supplierinfo,sequence:0
+msgid "Priority"
+msgstr "Prioridad"
+
+#. module: product
+#: model:product.template,name:product.product_product_20_product_template
+msgid "HDD on demand"
+msgstr "HDD bajo pedido"
+
+#. module: product
+#: field:product.uom,factor_inv:0
+#: field:product.uom,factor_inv_data:0
+msgid "Factor"
+msgstr "Factor"
+
+#. module: product
+#: wizard_button:product.price_list,init,price:0
+msgid "Print"
+msgstr "Imprimir"
+
+#. module: product
+#: model:process.node,name:product.process_node_supplier0
+msgid "Supplier Info"
+msgstr "Info. proveedor"
+
+#. module: product
+#: field:product.ul,type:0
+msgid "Type"
+msgstr "Tipo"
+
+#. module: product
+#: wizard_field:product.price_list,init,price_list:0
+msgid "PriceList"
+msgstr "Precio"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "UOM"
+msgstr "UOM"
+
+#. module: product
+#: model:product.uom,name:product.product_uom_unit
+msgid "PCE"
+msgstr "Unidad"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_pricelist_action2
+#: model:ir.ui.menu,name:product.menu_product_pricelist_action2
+#: model:ir.ui.menu,name:product.menu_product_pricelist_main
+msgid "Pricelists"
+msgstr "Precio"
+
+#. module: product
+#: field:product.supplierinfo,product_name:0
+msgid "Partner Product Name"
+msgstr "Nombre producto empresa"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Miscelleanous"
+msgstr "Miscelleanous"
+
+#. module: product
+#: help:product.pricelist.item,base:0
+msgid "The mode for computing the price for this rule."
+msgstr "El modo de calcular el precio para esta regla."
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_uom_form_action
+#: model:ir.ui.menu,name:product.menu_product_uom_form_action
+#: model:ir.ui.menu,name:product.next_id_16
+#: view:product.uom:0
+msgid "Units of Measure"
+msgstr "Unidades de medida"
+
+#. module: product
+#: field:product.product,partner_ref:0
+msgid "Customer ref"
+msgstr "Ref. cliente"
+
+#. module: product
+#: field:product.supplierinfo,qty:0
+msgid "Minimal Quantity"
+msgstr "Cantidad mínima"
+
+#. module: product
+#: model:product.category,name:product.product_category_pc
+msgid "PC"
+msgstr "PC"
+
+#. module: product
+#: help:product.template,seller_delay:0
+msgid ""
+"This is the average delay in days between the purchase order confirmation "
+"and the reception of goods for this product and for the default supplier. It "
+"is used by the scheduler to order requests based on reordering delays."
+msgstr ""
+"Éste es el plazo promedio en días entre la confirmación del pedido de compra "
+"y la recepción de la mercancía para este producto y para el proveedor por "
+"defecto. El planificador lo utiliza para generar solicitudes basado en los "
+"plazos de los pedidos."
+
+#. module: product
+#: field:product.template,seller_delay:0
+msgid "Supplier Lead Time"
+msgstr "Plazo de entrega del proveedor"
+
+#. module: product
+#: model:product.pricelist.version,name:product.ver0
+msgid "Default Public Pricelist Version"
+msgstr "Verción predeterminada de la lista de precios publica"
+
+#. module: product
+#: field:product.pricelist.type,key:0
+msgid "Key"
+msgstr "Código"
+
+#. module: product
+#: field:product.pricelist.item,price_version_id:0
+msgid "Price List Version"
+msgstr "Versión de tarifa"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Rules Test Match"
+msgstr "Reglas test de concordancia"
+
+#. module: product
+#: help:res.partner,property_product_pricelist:0
+msgid ""
+"This pricelist will be used, instead of the default one, "
+"for sales to the current partner"
+msgstr ""
+"Esta tarifa será usada en lugar de la tarifa por defecto para las ventas a "
+"la empresa actual."
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist
+#: view:product.supplierinfo:0
+msgid "Pricelist"
+msgstr "Precio"
+
+#. module: product
+#: selection:product.template,type:0
+msgid "Consumable"
+msgstr "Consumible"
+
+#. module: product
+#: help:product.price.type,currency_id:0
+msgid "The currency the field is expressed in."
+msgstr "La moneda en que se expresa el campo."
+
+#. module: product
+#: help:product.template,weight:0
+msgid "The gross weight in Kg."
+msgstr "El peso bruto en Kg."
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Box"
+msgstr "Caja"
+
+#. module: product
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "¡XML inválido para la definición de la vista!"
+
+#. module: product
+#: help:product.template,sale_ok:0
+msgid ""
+"Determine if the product can be visible in the list of product within a "
+"selection from a sale order line."
+msgstr ""
+"Indica si el producto es visible en la lista de productos dentro de una "
+"selección desde una línea de un pedido de venta."
+
+#. module: product
+#: constraint:product.template:0
+msgid "Error: UOS must be in a different category than the UOM"
+msgstr "Error: La UdV debe estar en una categoría diferente que la UdM"
+
+#. module: product
+#: field:product.category,parent_id:0
+msgid "Parent Category"
+msgstr "Categoría padre"
+
+#. module: product
+#: selection:product.template,state:0
+msgid "In Development"
+msgstr "En desarrollo"
+
+#. module: product
+#: help:product.pricelist.type,key:0
+msgid ""
+"Used in the code to select specific prices based on the context. Keep "
+"unchanged."
+msgstr ""
+"Utilizado en el código para seleccionar precios específicos basados en el "
+"contexto. Dejarlo tal como está."
+
+#. module: product
+#: help:product.product,outgoing_qty:0
+msgid ""
+"Quantities of products that are planned to leave in selected locations or "
+"all internal if none have been selected."
+msgstr ""
+"Cantidades de productos que están previstos dejar en las ubicaciones "
+"seleccionadas o todas las internas si no se ha seleccionado ninguna."
+
+#. module: product
+#: field:product.packaging,weight:0
+msgid "Total Package Weight"
+msgstr "Total peso paquete"
+
+#. module: product
+#: help:product.template,procure_method:0
+msgid ""
+"'Make to Stock': When needed, take from the stock or wait until re-"
+"supplying. 'Make to Order': When needed, purchase or produce for the "
+"procurement request."
+msgstr ""
+"'Obtener para stock': Cuando sea necesario, tomar del stock o esperar hasta "
+"que sea reabastecido. 'Obtener bajo pedido': Cuando sea necesario, comprar o "
+"producir para la solicitud de abastecimiento."
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Procurement"
+msgstr "Adquisición"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_category_action
+#: model:ir.ui.menu,name:product.menu_product_category_action
+msgid "Products by Category"
+msgstr "Productos por categoría"
+
+#. module: product
+#: model:product.template,name:product.product_product_hdd1_product_template
+msgid "HDD Seagate 7200.8 80GB"
+msgstr "HDD Seagate 7200.8 80GB"
+
+#. module: product
+#: help:product.pricelist.version,active:0
+msgid ""
+"When a version is duplicated it is set to non active, so that the dates do "
+"not overlaps with original version. You should change the dates and "
+"reactivate the pricelist"
+msgstr ""
+
+#. module: product
+#: model:product.template,name:product.product_product_hdd3_product_template
+msgid "HDD Seagate 7200.8 160GB"
+msgstr "HDD Seagate 7200.8 160GB"
+
+#. module: product
+#: view:product.product:0
+msgid "Product Variant"
+msgstr "Variantes de producto"
+
+#. module: product
+#: field:product.packaging,ul:0
+msgid "Type of Package"
+msgstr "Tipo de empaquetado"
+
+#. module: product
+#: field:product.template,loc_rack:0
+msgid "Rack"
+msgstr "Estante"
+
+#. module: product
+#: field:product.uom,category_id:0
+msgid "UoM Category"
+msgstr "Categoria UoM"
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Pack"
+msgstr "Paquete"
+
+#. module: product
+#: field:product.product,ean13:0
+msgid "EAN13"
+msgstr "EAN13"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,description_sale:0
+msgid "Sale Description"
+msgstr "Descripción de venta"
+
+#. module: product
+#: field:product.template,uos_id:0
+msgid "Unit of Sale"
+msgstr "Unidad de venta"
+
+#. module: product
+#: field:product.template,mes_type:0
+msgid "Measure Type"
+msgstr "Tipo de medida"
+
+#. module: product
+#: model:product.uom.categ,name:product.product_uom_categ_kgm
+msgid "Weight"
+msgstr "Peso"
+
+#. module: product
+#: model:product.template,name:product.product_product_22_product_template
+msgid "Processor on demand"
+msgstr "Procesador bajo pedido"
+
+#. module: product
+#: help:product.supplierinfo,product_name:0
+msgid ""
+"Name of the product for this partner, will be used when printing a request "
+"for quotation. Keep empty to use the internal one."
+msgstr ""
+"Nombre del producto para esta empresa, se utilizará al imprimir una petición "
+"de presupuesto. Dejarlo vacío para utilizar el nombre interno."
+
+#. module: product
+#: field:product.template,supply_method:0
+msgid "Supply method"
+msgstr "Método suministro"
+
+#. module: product
+#: model:product.category,name:product.product_category_11
+msgid "IT components kits"
+msgstr "Kits de componentes TI"
+
+#. module: product
+#: view:product.uom.categ:0
+msgid "Units of Measure categories"
+msgstr "Categorías de unidades de medida"
+
+#. module: product
+#: field:product.category,sequence:0
+#: field:product.packaging,sequence:0
+#: field:product.pricelist.item,sequence:0
+msgid "Sequence"
+msgstr "Secuencia"
+
+#. module: product
+#: view:product.supplierinfo:0
+msgid "Supplier Information"
+msgstr "Información del proveedor"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_ul_form_action
+#: model:ir.model,name:product.model_product_packaging
+#: model:ir.ui.menu,name:product.menu_product_ul_form_action
+#: view:product.packaging:0
+#: view:product.product:0
+#: view:product.ul:0
+msgid "Packaging"
+msgstr "Empaquetado"
+
+#. module: product
+#: field:product.price.type,currency_id:0
+#: field:product.pricelist,currency_id:0
+msgid "Currency"
+msgstr "Moneda"
+
+#. module: product
+#: model:product.template,name:product.product_product_cpu_gen_product_template
+msgid "Regular processor config"
+msgstr "Config. procesador normal"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Descriptions"
+msgstr "Descripciones"
+
+#. module: product
+#: model:process.transition,name:product.process_transition_supplierofproduct0
+msgid "Suppliers of Product"
+msgstr "Proveedores del producto"
+
+#. module: product
+#: field:product.pricelist.version,date_start:0
+msgid "Start Date"
+msgstr "Fecha inicial"
+
+#. module: product
+#: view:res.partner:0
+msgid "Sales Properties"
+msgstr "Propiedades de venta"
+
+#. module: product
+#: help:product.product,qty_available:0
+msgid ""
+"Current quantities of products in selected locations or all internal if none "
+"have been selected."
+msgstr ""
+"Cantidades actuales de productos en las ubicaciones seleccionadas o todas "
+"las internas si no se ha seleccionado ninguna."
+
+#. module: product
+#: model:product.template,name:product.product_product_pc1_product_template
+msgid "Basic PC"
+msgstr "PC Básica"
+
+#. module: product
+#: field:product.template,loc_row:0
+msgid "Row"
+msgstr "Fila"
+
+#. module: product
+#: field:product.template,categ_id:0
+msgid "Category"
+msgstr "Categoría"
+
+#. module: product
+#: help:product.pricelist.item,min_quantity:0
+msgid ""
+"The rule only applies if the partner buys/sells more than this quantity."
+msgstr ""
+"La regla sólo se aplica si la empresa compra/vende más que esta cantidad."
+
+#. module: product
+#: model:product.template,name:product.product_product_ram_product_template
+msgid "DDR 256MB PC400"
+msgstr "DDR 256MB PC400"
+
+#. module: product
+#: field:product.product,qty_available:0
+msgid "Real Stock"
+msgstr "Inventario real"
+
+#. module: product
+#: view:product.category:0
+msgid "Product Categories"
+msgstr "Categorías de producto"
+
+#. module: product
+#: help:product.uom,category_id:0
+msgid ""
+"Unit of Measure of a category can be converted between each others in the "
+"same category."
+msgstr ""
+"La unidad de medida de una categoría puede ser convertida a otras de la "
+"misma categoría."
+
+#. module: product
+#: model:ir.model,name:product.model_product_uom
+msgid "Product Unit of Measure"
+msgstr "Unidad de medida del producto"
+
+#. module: product
+#: field:product.template,sale_ok:0
+msgid "Can be sold"
+msgstr "Puede ser vendido"
+
+#. module: product
+#: model:product.template,name:product.product_product_23_product_template
+msgid "Complete PC With Peripherals"
+msgstr "PC completo con periféricos"
+
+#. module: product
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+"Error: La UdM por defecto y la UdM de compra deben estar en la misma "
+"categoría."
+
+#. module: product
+#: model:product.template,name:product.product_product_mb2_product_template
+msgid "Mainboard ASUStek A7V8X-X"
+msgstr "Placa madre ASUStek A7V8X-X"
+
+#. module: product
+#: field:product.uom,factor:0
+msgid "Rate"
+msgstr "Velocidad"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Products Listprices Items"
+msgstr "Elementos de las tarifas de productos"
+
+#. module: product
+#: field:product.uom,rounding:0
+msgid "Rounding Precision"
+msgstr "Precisión de redondeo"
+
+#. module: product
+#: help:product.packaging,width:0
+msgid "The width of the package"
+msgstr "La anchura del paquete"
+
+#. module: product
+#: field:product.packaging,qty:0
+msgid "Quantity by Package"
+msgstr "Cantidad por paquete"
+
+#. module: product
+#: help:product.template,uos_id:0
+msgid ""
+"Used by companies that manages two unit of measure: invoicing and inventory "
+"management. For example, in food industries, you will manage a stock of ham "
+"but invoice in Kg. Keep empty to use the default UOM."
+msgstr ""
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Procurement & Locations"
+msgstr "Abastecimiento & Ubicaciones"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,state:0
+msgid "Status"
+msgstr "Estado:"
+
+#. module: product
+#: field:product.product,outgoing_qty:0
+msgid "Outgoing"
+msgstr "Salida"
+
+#. module: product
+#: selection:product.template,supply_method:0
+msgid "Buy"
+msgstr "Comprar"
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_version
+#: view:product.pricelist:0
+#: view:product.pricelist.version:0
+msgid "Pricelist Version"
+msgstr "versio nde precio"
+
+#. module: product
+#: field:product.pricelist.item,price_round:0
+msgid "Price Rounding"
+msgstr "Redondeo precio"
+
+#. module: product
+#: model:product.price.type,name:product.list_price
+msgid "Public Price"
+msgstr "Precio publico"
+
+#. module: product
+#: field:product.pricelist.item,price_max_margin:0
+msgid "Max. Price Margin"
+msgstr "Margen precio máx."
+
+#. module: product
+#: view:res.partner:0
+msgid "Sales & Purchases"
+msgstr "Ventas & Compras"
+
+#. module: product
+#: model:product.category,name:product.product_category_10
+msgid "IT components"
+msgstr "Componentes TI"
+
+#. module: product
+#: help:product.packaging,weight_ul:0
+msgid "The weight of the empty UL"
+msgstr "El peso del UL vacío"
+
+#. module: product
+#: help:product.packaging,code:0
+msgid "The code of the transport unit."
+msgstr "El código de la unidad de transporte."
+
+#. module: product
+#: field:product.template,uom_po_id:0
+msgid "Purchase UoM"
+msgstr "UdM de compra"
+
+#. module: product
+#: view:product.price.type:0
+msgid "Products Price Type"
+msgstr "Tipo de precios de productos"
+
+#. module: product
+#: field:product.template,product_manager:0
+msgid "Product Manager"
+msgstr "Responsable de producto"
+
+#. module: product
+#: field:product.product,price_extra:0
+msgid "Variant Price Extra"
+msgstr "Precio extra variante"
+
+#. module: product
+#: model:product.template,name:product.product_product_fan_product_template
+msgid "Regular case fan 80mm"
+msgstr "Ventilador normal 80mm"
+
+#. module: product
+#: model:ir.model,name:product.model_product_supplierinfo
+msgid "Information about a product supplier"
+msgstr "Información de un proveedor de producto"
+
+#. module: product
+#: field:product.price.type,active:0
+#: field:product.pricelist,active:0
+#: field:product.pricelist.version,active:0
+#: field:product.product,active:0
+#: field:product.uom,active:0
+msgid "Active"
+msgstr "Activo"
+
+#. module: product
+#: field:product.product,price_margin:0
+msgid "Variant Price Margin"
+msgstr "Margen de precio variante"
+
+#. module: product
+#: wizard_view:product.price_list,init:0
+msgid "Price list"
+msgstr "Precio"
+
+#. module: product
+#: model:product.template,name:product.product_product_pc3_product_template
+msgid "Medium PC"
+msgstr "PC Medio"
+
+#. module: product
+#: model:ir.model,name:product.model_pricelist_partnerinfo
+msgid "pricelist.partnerinfo"
+msgstr "pricelist.partnerinfo"
+
+#. module: product
+#: model:product.price.type,name:product.standard_price
+#: field:product.template,standard_price:0
+msgid "Cost Price"
+msgstr "Precio de costo"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,description_purchase:0
+msgid "Purchase Description"
+msgstr "Descripción de compra"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Second UoM"
+msgstr "UdM secundaria"
+
+#. module: product
+#: model:product.category,name:product.product_category_4
+msgid "Dello Computer"
+msgstr "Ordenador Dello"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Storage Localisation"
+msgstr "Ubicación en el almacén"
+
+#. module: product
+#: help:product.packaging,length:0
+msgid "The length of the package"
+msgstr "La longitud del paquete"
+
+#. module: product
+#: field:product.pricelist.item,price_min_margin:0
+msgid "Min. Price Margin"
+msgstr "Margen precio mín."
+
+#. module: product
+#: help:product.packaging,ean:0
+msgid "The EAN code of the package unit."
+msgstr "El código EAN de la unidad del paquete."
+
+#. module: product
+#: field:product.template,weight:0
+msgid "Gross weight"
+msgstr "Peso bruto"
+
+#. module: product
+#: help:product.product,packaging:0
+msgid ""
+"Gives the different ways to package the same product. This has no impact on "
+"the packing order and is mainly used if you use the EDI module."
+msgstr ""
+"Indica diferente maneras de empaquetar el mismo producto. No influye en el "
+"albarán y es utilizado si se usa el módulo EDI."
+
+#. module: product
+#: model:ir.model,name:product.model_product_category
+#: field:product.pricelist.item,categ_id:0
+msgid "Product Category"
+msgstr "Categoría de producto"
+
+#. module: product
+#: field:product.price.type,field:0
+msgid "Product Field"
+msgstr "Campo de producto"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_pricelist_type_action
+#: model:ir.ui.menu,name:product.menu_product_pricelist_type_action
+msgid "Pricelists Types"
+msgstr "Tipo de precio"
+
+#. module: product
+#: help:product.template,state:0
+msgid "Tells the user if he can use the product or not."
+msgstr "Informa al usuario si puede usar el producto o no."
+
+#. module: product
+#: field:product.supplierinfo,product_code:0
+msgid "Partner Product Code"
+msgstr "Código producto proveedor"
+
+#. module: product
+#: model:product.category,name:product.product_category_3
+msgid "Computer Stuff"
+msgstr "Complementos de ordenador"
+
+#. module: product
+#: field:product.packaging,code:0
+#: field:product.product,code:0
+#: field:product.product,default_code:0
+msgid "Code"
+msgstr "Código"
+
+#. module: product
+#: help:product.uom,factor_inv:0
+msgid ""
+"The coefficient for the formula:\n"
+"coeff (base unit) = 1 (this unit). Factor = 1 / Rate."
+msgstr ""
+"El coeficiente para la fórmula:\n"
+"coef. (unidad base) = 1 (esta unidad). Factor = 1 / Ratio."
+
+#. module: product
+#: view:product.supplierinfo:0
+msgid "Seq"
+msgstr "Seq"
+
+#. module: product
+#: model:product.category,name:product.product_category_8
+msgid "Phone Help"
+msgstr "Ayuda telefónica"
+
+#. module: product
+#: selection:product.template,mes_type:0
+msgid "Variable"
+msgstr "Variable"
+
+#. module: product
+#: help:product.template,uom_id:0
+msgid "Default Unit of Measure used for all stock operation."
+msgstr ""
+"Unidad de medida por defecto utilizada para todas las operaciones de "
+"inventario."
+
+#. module: product
+#: model:ir.model,name:product.model_product_template
+#: field:product.pricelist.item,product_tmpl_id:0
+#: field:product.product,product_tmpl_id:0
+#: view:product.template:0
+msgid "Product Template"
+msgstr "Plantilla de producto"
+
+#. module: product
+#: model:ir.model,name:product.model_product_ul
+msgid "Shipping Unit"
+msgstr "Unidad de transporte"
+
+#. module: product
+#: help:product.uom,rounding:0
+msgid ""
+"The computed quantity will be a multiple of this value. Use 1.0 for products "
+"that can not be split."
+msgstr ""
+"La cantidad calculada será un múltiplo de este valor. Use 1.0 para los "
+"productos que no se puedan dividir."
+
+#. module: product
+#: field:product.packaging,height:0
+msgid "Height"
+msgstr "Altura"
+
+#. module: product
+#: model:product.template,name:product.product_product_pc4_product_template
+msgid "Customizable PC"
+msgstr "PC personalizable"
+
+#. module: product
+#: help:product.pricelist.version,date_end:0
+msgid "Ending date for this pricelist version to be valid."
+msgstr "Fecha final de esta versión de tarifa para ser válida."
+
+#. module: product
+#: field:pricelist.partnerinfo,suppinfo_id:0
+msgid "Partner Information"
+msgstr "Información de empresa"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,type:0
+msgid "Product Type"
+msgstr "Tipo de producto"
+
+#. module: product
+#: model:product.category,name:product.product_category_7
+#: model:product.template,name:product.product_product_1_product_template
+msgid "Onsite Intervention"
+msgstr "Sitio de intervención"
+
+#. module: product
+#: model:product.category,name:product.cat0
+msgid "All products"
+msgstr "Todos los productos"
+
+#. module: product
+#: wizard_button:product.price_list,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: product
+#: help:product.packaging,qty:0
+msgid "The total number of products you can put by palet or box."
+msgstr "El número total de productos que puede poner por paleta o caja."
+
+#. module: product
+#: model:ir.model,name:product.model_product_pricelist_item
+msgid "Pricelist item"
+msgstr "Elemento de la tarifa"
+
+#. module: product
+#: model:ir.actions.wizard,name:product.report_wizard_price
+#: field:product.pricelist.version,pricelist_id:0
+msgid "Price List"
+msgstr "Lista de precios"
+
+#. module: product
+#: model:product.pricelist,name:product.list0
+msgid "Public Pricelist"
+msgstr "Precio publico"
+
+#. module: product
+#: model:product.template,name:product.product_product_21_product_template
+msgid "RAM on demand"
+msgstr "RAM bajo pedido"
+
+#. module: product
+#: selection:product.ul,type:0
+#: model:product.uom.categ,name:product.product_uom_categ_unit
+msgid "Unit"
+msgstr "Unidad"
+
+#. module: product
+#: model:product.template,name:product.product_product_hdd2_product_template
+msgid "HDD Seagate 7200.8 120GB"
+msgstr "HDD Seagate 7200.8 120GB"
+
+#. module: product
+#: wizard_field:product.price_list,init,qty2:0
+msgid "Quantity-2"
+msgstr "Cantidad-2"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Information"
+msgstr "Información"
+
+#. module: product
+#: view:product.product:0
+msgid "Codes"
+msgstr "Códigos"
+
+#. module: product
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
+"especial!"
+
+#. module: product
+#: wizard_field:product.price_list,init,qty4:0
+msgid "Quantity-4"
+msgstr "Cantidad-4"
+
+#. module: product
+#: wizard_field:product.price_list,init,qty5:0
+msgid "Quantity-5"
+msgstr "Cantidad-5"
+
+#. module: product
+#: view:product.packaging:0
+#: view:product.product:0
+msgid "Other Info"
+msgstr "Otra información"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Delays"
+msgstr "Plazos"
+
+#. module: product
+#: field:product.pricelist.version,items_id:0
+msgid "Price List Items"
+msgstr "Elementos de la tarifa"
+
+#. module: product
+#: help:product.supplierinfo,product_code:0
+msgid ""
+"Code of the product for this partner, will be used when printing a request "
+"for quotation. Keep empty to use the internal one."
+msgstr ""
+"Código del producto para esta empresa, se utilizará al imprimir una "
+"petición de presupuesto. Dejarlo vacío para utilizar el código interno."
+
+#. module: product
+#: selection:product.template,state:0
+msgid "Obsolete"
+msgstr "Obsoleto"
+
+#. module: product
+#: selection:product.ul,type:0
+msgid "Pallet"
+msgstr "Palet"
+
+#. module: product
+#: field:pricelist.partnerinfo,price:0
+msgid "Unit Price"
+msgstr "Precio Unitario"
+
+#. module: product
+#: field:product.template,warranty:0
+msgid "Warranty (months)"
+msgstr "Garantía (meses)"
+
+#. module: product
+#: field:product.packaging,ul_qty:0
+msgid "Package by layer"
+msgstr "Paquetes por piso"
+
+#. module: product
+#: help:product.template,type:0
+msgid ""
+"Will change the way procurements are processed. Consumables are stockable "
+"products with infinite stock, or for use when you have no inventory "
+"management in the system."
+msgstr ""
+
+#. module: product
+#: model:process.node,note:product.process_node_supplier0
+msgid "Product suppliers, with their product name, price, etc."
+msgstr "Proveedores del producto, con su nombre de producto, precio, etc."
+
+#. module: product
+#: model:ir.model,name:product.model_product_price_type
+msgid "Price type"
+msgstr "Tipo de precio"
+
+#. module: product
+#: model:ir.model,name:product.model_product_product
+#: model:process.node,name:product.process_node_product0
+#: field:product.packaging,product_id:0
+#: field:product.pricelist.item,product_id:0
+#: view:product.product:0
+#: field:product.supplierinfo,product_id:0
+#: model:res.request.link,name:product.req_link_product
+msgid "Product"
+msgstr "Producto"
+
+#. module: product
+#: field:product.template,volume:0
+msgid "Volume"
+msgstr "Volumen"
+
+#. module: product
+#: field:pricelist.partnerinfo,name:0
+#: field:product.packaging,name:0
+#: view:product.product:0
+#: view:product.template:0
+#: field:product.template,description:0
+msgid "Description"
+msgstr "Descripción"
+
+#. module: product
+#: field:product.packaging,ean:0
+msgid "EAN"
+msgstr "EAN"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Product Description"
+msgstr "Descripción del producto"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid " ) + "
+msgstr " ) + "
+
+#. module: product
+#: help:product.template,sale_delay:0
+msgid ""
+"This is the average time between the confirmation of the customer order and "
+"the delivery of the finished products. It's the time you promise to your "
+"customers."
+msgstr ""
+"Este es el tiempo promedio entre la confirmación del pedido del cliente y la "
+"entrega de los productos terminados. Es el tiempo que promete a sus clientes."
+
+#. module: product
+#: model:ir.model,name:product.model_product_uom_categ
+msgid "Product uom categ"
+msgstr "Categ. UdM de producto"
+
+#. module: product
+#: wizard_field:product.price_list,init,qty3:0
+msgid "Quantity-3"
+msgstr "Cantidad-3"
+
+#. module: product
+#: model:product.ul,name:product.product_ul_box
+msgid "Box 20x20x40"
+msgstr "Caja 20x20x40"
+
+#. module: product
+#: selection:product.template,supply_method:0
+msgid "Produce"
+msgstr "Producir"
+
+#. module: product
+#: selection:product.template,procure_method:0
+msgid "Make to Order"
+msgstr "Obtener bajo pedido"
+
+#. module: product
+#: field:product.pricelist.item,price_surcharge:0
+msgid "Price Surcharge"
+msgstr "Sobrecarga precio"
+
+#. module: product
+#: constraint:product.pricelist.version:0
+msgid "You cannot have 2 pricelist versions that overlap!"
+msgstr ""
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Rounding Method"
+msgstr "Método redondeo"
+
+#. module: product
+#: field:product.product,variants:0
+msgid "Variants"
+msgstr "Variantes"
+
+#. module: product
+#: view:product.pricelist.item:0
+msgid "Price Computation"
+msgstr "Cálculo del precio"
+
+#. module: product
+#: model:product.template,name:product.product_product_mb1_product_template
+msgid "Mainboard ASUStek A7N8X"
+msgstr "Placa madre ASUStek A7N8X"
+
+#. module: product
+#: field:product.template,loc_case:0
+msgid "Case"
+msgstr "Caso"
+
+#. module: product
+#: field:product.pricelist.version,date_end:0
+msgid "End Date"
+msgstr "Fecha final"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_category_action_form
+#: model:ir.ui.menu,name:product.menu_product_category_action_form
+msgid "Products Categories"
+msgstr "Categorías de productos"
+
+#. module: product
+#: field:product.product,packaging:0
+msgid "Logistical Units"
+msgstr "Unidades de logística"
+
+#. module: product
+#: field:product.category,complete_name:0
+#: field:product.category,name:0
+#: field:product.pricelist.type,name:0
+#: field:product.pricelist.version,name:0
+#: field:product.template,name:0
+#: field:product.ul,name:0
+#: field:product.uom,name:0
+#: field:product.uom.categ,name:0
+msgid "Name"
+msgstr "Nombre"
+
+#. module: product
+#: help:product.template,uos_coeff:0
+msgid ""
+"Coefficient to convert UOM to UOS\n"
+" uom = uos * coeff"
+msgstr ""
+"Coeficiente para convertir UdM a UdV\n"
+" udm = udv * coef"
+
+#. module: product
+#: field:product.template,purchase_ok:0
+msgid "Can be Purchased"
+msgstr "Puede ser comprado"
+
+#. module: product
+#: field:product.template,uos_coeff:0
+msgid "UOM -> UOS Coeff"
+msgstr "Coef. UdM -> UdV"
+
+#. module: product
+#: model:product.template,name:product.product_product_cpu2_product_template
+msgid "High speed processor config"
+msgstr "Config. Procesador alta velocidad"
+
+#. module: product
+#: model:product.template,name:product.product_product_pc2_product_template
+msgid "Basic+ PC (assembly on order)"
+msgstr "PC Básico+ (ensamblado bajo pedido)"
+
+#. module: product
+#: field:product.template,cost_method:0
+msgid "Costing Method"
+msgstr "Método costo"
+
+#. module: product
+#: view:product.packaging:0
+#: view:product.product:0
+msgid "Palletization"
+msgstr "Paletización"
+
+#. module: product
+#: view:product.product:0
+#: view:product.template:0
+msgid "Prices & Suppliers"
+msgstr "Precios & Proveedores"
+
+#. module: product
+#: help:product.packaging,weight:0
+msgid "The weight of a full of products palet or box."
+msgstr "El peso de un palet o caja llena de productos."
+
+#. module: product
+#: selection:product.template,state:0
+msgid "End of Lifecycle"
+msgstr "Fin del ciclo de vida"
+
+#. module: product
+#: model:ir.module.module,shortdesc:product.module_meta_information
+msgid "Products & Pricelists"
+msgstr "Productos y tarifas"
+
+#. module: product
+#: help:product.uom,factor:0
+msgid ""
+"The coefficient for the formula:\n"
+"1 (base unit) = coeff (this unit). Rate = 1 / Factor."
+msgstr ""
+"El coeficiente para la fórmula:\n"
+"1 (unidad base) = coef. (esta unidad). Ratio = 1 / Factor."
+
+#. module: product
+#: help:product.template,weight_net:0
+msgid "The net weight in Kg."
+msgstr "El peso neto en Kg."
+
+#. module: product
+#: model:product.template,name:product.product_product_tow1_product_template
+msgid "ATX Mid-size Tower"
+msgstr "Torre de tamaño medio ATX"
+
+#. module: product
+#: field:product.supplierinfo,delay:0
+msgid "Delivery Delay"
+msgstr "Plazo de entrega"
+
+#. module: product
+#: model:ir.actions.act_window,name:product.product_pricelist_action
+#: model:ir.ui.menu,name:product.menu_product_pricelist_action
+#: field:product.pricelist,version_id:0
+msgid "Pricelist Versions"
+msgstr "Versiones de tarifa"
+
+#. module: product
+#: field:product.packaging,weight_ul:0
+msgid "Empty Package Weight"
+msgstr "Peso paquete vacío"
+
+#. module: product
+#: field:product.template,list_price:0
+msgid "Sale Price"
+msgstr "Precio de venta"
+
+#. module: product
+#: help:product.template,produce_delay:0
+msgid ""
+"Average time to produce this product. This is only for the production order "
+"and, if it is a multi-level bill of material, it's only for the level of "
+"this product. Different delays will be summed for all levels and purchase "
+"orders."
+msgstr ""
+"Tiempo promedio para producir este producto. Sólo se utiliza para la orden "
+"de producción y, si es contiene una lista de materiales multi-nivel, sólo "
+"para el nivel de este producto. Diferentes plazos serán sumados para todos "
+"los niveles y pedidos de compra."
+
+#. module: product
+#: wizard_field:product.price_list,init,qty1:0
+msgid "Quantity-1"
+msgstr "Cantidad-1"
+
+#. module: product
+#: field:product.packaging,length:0
+msgid "Length"
+msgstr "Longitud"
+
+#. module: product
+#: model:product.category,name:product.cat2
+msgid "Private"
+msgstr "Privado"
+
+#. module: product
+#: help:product.supplierinfo,delay:0
+msgid ""
+"Delay in days between the confirmation of the purchase order and the "
+"reception of the products in your warehouse. Used by the scheduler for "
+"automatic computation of the purchase order planning."
+msgstr ""
+"Plazo en días entre la confirmación de la orden de compra y la recepción de "
+"los productos en su almacén. Utilizado por el planificador para el cálculo "
+"automático de la orden de compra."
+
+#. module: product
+#: help:product.template,uom_po_id:0
+msgid ""
+"Default Unit of Measure used for purchase orders. It must in the same "
+"category than the default unit of measure."
+msgstr ""
+"Unidad de medida por defecto utilizada en las órdenes de compra. Debe "
+"estar en la misma categoría que la unidad de medida por defecto."
+
+#. module: product
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Error: Código EAN erróneo"
+
+#. module: product
+#: field:product.pricelist.item,min_quantity:0
+msgid "Min. Quantity"
+msgstr "Cantidad mín."
+
+#. module: product
+#: help:product.pricelist.item,categ_id:0
+msgid ""
+"Set a category of product if this rule only apply to products of a category "
+"and his childs. Keep empty for all products"
+msgstr ""
+"Indicar una categoría de producto si esta regla sólo se aplica a productos "
+"de una categoría y a sus descendientes. Dejarlo vacío para todos los "
+"productos"
+
+#. module: product
+#: model:ir.actions.report.xml,name:product.report_product_label
+msgid "Products Labels"
+msgstr "Etiquetas de productos"
+
+#. module: product
+#: help:product.template,volume:0
+msgid "The volume in m3."
+msgstr "El volumen en m3."
+
+#. module: product
+#: model:product.ul,name:product.product_ul_big_box
+msgid "Box 30x40x60"
+msgstr "Caja 30x40x60"
+
+#. module: product
+#: model:product.uom,name:product.product_uom_kgm
+msgid "KGM"
+msgstr "Kg."
+
+#. module: product
+#: field:product.pricelist.item,price_discount:0
+msgid "Price Discount"
+msgstr "Descuento precio"
diff --git a/addons/product/i18n/it.po b/addons/product/i18n/it.po
index 325c1632b6a..b56f06f971b 100644
--- a/addons/product/i18n/it.po
+++ b/addons/product/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 08:58+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-18 10:11+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:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:48+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@@ -458,7 +458,7 @@ msgstr "Margine Minimo"
#. module: product
#: view:product.pricelist.item:0
msgid "* ( 1 + "
-msgstr "( 1 - "
+msgstr "* ( 1 + "
#. module: product
#: model:product.template,name:product.product_product_cpu1_product_template
diff --git a/addons/product/i18n/lt.po b/addons/product/i18n/lt.po
index d613b9dcef9..ce0fb9ba749 100644
--- a/addons/product/i18n/lt.po
+++ b/addons/product/i18n/lt.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-11 05:47+0000\n"
+"PO-Revision-Date: 2010-08-29 10:07+0000\n"
"Last-Translator: Giedrius Slavinskas \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:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: lt\n"
diff --git a/addons/product/i18n/mn.po b/addons/product/i18n/mn.po
index ff35582b85b..042b22c1838 100644
--- a/addons/product/i18n/mn.po
+++ b/addons/product/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-11 14:31+0000\n"
+"PO-Revision-Date: 2010-08-29 10:10+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-12 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@@ -44,7 +44,7 @@ msgstr "Үйлчилгээ"
msgid ""
"Determine if the product is visible in the list of products within a "
"selection from a purchase order line."
-msgstr ""
+msgstr "Худалдан авах захиалгын жагсаалтад энэ бараа харагдах эсэхий заана."
#. module: product
#: help:product.supplierinfo,name:0
@@ -67,6 +67,8 @@ msgid ""
"The minimal quantity to purchase for this supplier, expressed in the default "
"unit of measure."
msgstr ""
+"Энэ нийлүүлэгчээс худалдан авалт хийх хамгийн бага хэмжээ, үндсэн хэмжих "
+"нэгжээр илэрхийлэгдсэн."
#. module: product
#: field:product.template,weight_net:0
@@ -79,6 +81,8 @@ msgid ""
"Quantities of products that are planned to arrive in selected locations or "
"all internal if none have been selected."
msgstr ""
+"Сонгосон эсвэл бүх дотоод байрлал (сонголт байхгүй бол) дээр ирэхээр "
+"төлөвлөгдсөн барааны тоо ширхэг."
#. module: product
#: help:product.product,virtual_available:0
@@ -87,6 +91,9 @@ msgid ""
"internal if none have been selected. Computed as: Real Stock - Outgoing + "
"Incoming."
msgstr ""
+"Сонгосон эсвэл бүх дотоод байрлал (сонголт байхгүй бол) дээрх энэ барааны "
+"ирээдүйн үлдэгдэл. Ирээдүйн үлдэгдэл = Бодид үлдэгдэл - Гарч байгаа + Ирж "
+"байгаа."
#. module: product
#: field:product.packaging,width:0
@@ -99,26 +106,28 @@ msgid ""
"Set a template if this rule only apply to a template of product. Keep empty "
"for all products"
msgstr ""
+"Хэрэв энэ дүрэм зөвхөн барааны загварт үйлчлэх бол уг загварыг сонгоно. Бүх "
+"бараанд хамаатай бол хоосон орхино."
#. module: product
#: field:product.template,procure_method:0
msgid "Procure Method"
-msgstr ""
+msgstr "Нийлүүлэх арга"
#. module: product
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Үйлдлийн тодорхойлолтод буруу моделийн нэр байна."
#. module: product
#: model:process.process,name:product.process_process_productprocess0
msgid "Product Process"
-msgstr ""
+msgstr "Бараа боловсруулах"
#. module: product
#: help:product.price.type,field:0
msgid "Associated field in the product form."
-msgstr ""
+msgstr "Барааны дэлгэц дээр харгалзах талбар."
#. module: product
#: selection:product.template,cost_method:0
@@ -133,7 +142,7 @@ msgstr "Пакетын өндөр"
#. module: product
#: view:product.pricelist:0
msgid "Products Price List"
-msgstr ""
+msgstr "Барааны үнийн жагсаалт"
#. module: product
#: model:product.category,name:product.cat1
@@ -143,12 +152,12 @@ msgstr "Зарж болох"
#. module: product
#: model:product.template,name:product.product_product_26_product_template
msgid "Kit Keyboard + Mouse"
-msgstr ""
+msgstr "Kit гар + Хулгана"
#. module: product
#: field:product.price.type,name:0
msgid "Price Name"
-msgstr ""
+msgstr "Үнийн нэр"
#. module: product
#: field:product.product,price:0
@@ -168,7 +177,7 @@ msgstr "Түрээслэж болох"
#. module: product
#: field:product.product,lst_price:0
msgid "List Price"
-msgstr ""
+msgstr "Нэрлэсэн үнэ"
#. module: product
#: model:ir.actions.act_window,name:product.product_price_type_action
@@ -192,6 +201,7 @@ msgid ""
"Base price for computing the customer price. Sometimes called the catalog "
"price."
msgstr ""
+"Хэрэглэгчийн үнийг гаргах суурь үнэ. Заримдаа каталоги үнэ гэж нэрлэгддэг."
#. module: product
#: field:pricelist.partnerinfo,min_quantity:0
@@ -201,27 +211,27 @@ msgstr "Тоо ширхэг"
#. module: product
#: model:product.template,name:product.product_product_cpu3_product_template
msgid "Processor AMD Athlon XP 2200+"
-msgstr ""
+msgstr "Processor AMD Athlon XP 2200+"
#. module: product
#: help:product.price.type,name:0
msgid "Name of this kind of price."
-msgstr ""
+msgstr "Энэ төрлийн үнийн нэр"
#. module: product
#: help:product.pricelist.version,date_start:0
msgid "Starting date for this pricelist version to be valid."
-msgstr ""
+msgstr "Үнийн хувилбар хэрэгжиж эхлэх огноо."
#. module: product
#: field:product.product,incoming_qty:0
msgid "Incoming"
-msgstr ""
+msgstr "Ирж байгаа"
#. module: product
#: selection:product.template,procure_method:0
msgid "Make to Stock"
-msgstr ""
+msgstr "Агуулахад хийх"
#. module: product
#: view:product.product:0
@@ -232,7 +242,7 @@ msgstr "Жин"
#. module: product
#: model:product.template,name:product.product_product_fan2_product_template
msgid "Silent fan"
-msgstr ""
+msgstr "Чимээгүй сэнс"
#. module: product
#: help:product.template,supply_method:0
@@ -240,27 +250,29 @@ msgid ""
"Produce will generate production order or tasks, according to the product "
"type. Purchase will trigger purchase orders when requested."
msgstr ""
+"Барааны төрөлд зааснаар Үйлдвэрлэх гэдэг нь үйлдвэрлэх захиалга үүсгэнэ. "
+"Худалдан авах гэдэг нь шаардлагатай үед худалдан авах захиалга үүсгэнэ."
#. module: product
#: model:process.transition,note:product.process_transition_supplierofproduct0
msgid "You can see the list of suppliers for that product."
-msgstr ""
+msgstr "Тухайн барааны нийлүүлэгчдийн жагсаалтыг харж болно."
#. module: product
#: help:product.packaging,rows:0
msgid "The number of layer on a palet or box"
-msgstr ""
+msgstr "Палет эсвэл хайраг дэх давхаргын тоо"
#. module: product
#: model:product.pricelist.type,name:product.pricelist_type_sale
#: field:res.partner,property_product_pricelist:0
msgid "Sale Pricelist"
-msgstr ""
+msgstr "Борлуулах үнэ"
#. module: product
#: field:product.pricelist.item,base_pricelist_id:0
msgid "If Other Pricelist"
-msgstr ""
+msgstr "Хэрэв өөр үнийн жагсаалт бол"
#. module: product
#: model:ir.actions.act_window,name:product.product_normal_action
@@ -278,6 +290,9 @@ msgid ""
"Rounding is applied after the discount and before the surcharge.\n"
"To have prices that end in 9.99, set rounding 10, surcharge -0.01"
msgstr ""
+"Энэ утгаар үржүүлж үнийг тогтооно.\n"
+"Үнийн хөнгөлөлт болон нэмэлтийн дараа тоймлолт хийгдэнэ.\n"
+"9.99 үнийг гаргаж авахын тулд тоймлолт нь 10, нэмэлт нь -0.01 байна."
#. module: product
#: view:product.pricelist.item:0
@@ -292,13 +307,13 @@ msgstr "Ирээдүйн үлдэгдэл"
#. module: product
#: selection:product.template,mes_type:0
msgid "Fixed"
-msgstr ""
+msgstr "Тогтсон"
#. module: product
#: model:ir.actions.act_window,name:product.product_uom_categ_form_action
#: model:ir.ui.menu,name:product.menu_product_uom_categ_form_action
msgid "Units of Measure Categories"
-msgstr ""
+msgstr "Хэмжих нэгжийн ангилал"
#. module: product
#: help:product.pricelist.item,product_id:0
@@ -306,24 +321,26 @@ msgid ""
"Set a product if this rule only apply to one product. Keep empty for all "
"products"
msgstr ""
+"Энэ дүрэм зөвхөн нэг бараанд үйлчлэх бол уг барааг сонгоно. Хэрэв бүх "
+"бараанд хамаатай бол хоосон орхино."
#. module: product
#: model:ir.model,name:product.model_product_pricelist_type
#: field:product.pricelist,type:0
#: view:product.pricelist.type:0
msgid "Pricelist Type"
-msgstr ""
+msgstr "Үнийн жагсаалтын төрөл"
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Base Prices"
-msgstr ""
+msgstr "Суурь үнэ"
#. module: product
#: model:ir.ui.menu,name:product.menu_price
msgid "Prices Computations"
-msgstr ""
+msgstr "Үнийн тооцоолол"
#. module: product
#: field:product.pricelist.item,name:0
@@ -348,12 +365,12 @@ msgstr "Алдаа! Рекурсив ангилал үүсгэж болохгү
#. module: product
#: field:product.template,uom_id:0
msgid "Default UoM"
-msgstr ""
+msgstr "Үндсэн хэмжих нэгж"
#. module: product
#: field:product.template,produce_delay:0
msgid "Manufacturing Lead Time"
-msgstr ""
+msgstr "Үйлдвэрлэлийн хүлээлт"
#. module: product
#: field:product.supplierinfo,pricelist_ids:0
@@ -364,17 +381,17 @@ msgstr "Нийлүүлэгчийн үнийн жагсаалт"
#: view:product.packaging:0
#: view:product.product:0
msgid "Pallet Dimension"
-msgstr ""
+msgstr "Палетын хэмжээ"
#. module: product
#: field:product.pricelist.item,base:0
msgid "Based on"
-msgstr ""
+msgstr "Суурь"
#. module: product
#: model:product.template,name:product.product_product_24_product_template
msgid "Keyboard"
-msgstr ""
+msgstr "Гар"
#. module: product
#: field:product.supplierinfo,name:0
@@ -384,7 +401,7 @@ msgstr "Харилцагч"
#. module: product
#: field:product.template,sale_delay:0
msgid "Customer Lead Time"
-msgstr ""
+msgstr "Хэрэглэгчийн хүлээлт"
#. module: product
#: model:product.template,name:product.product_product_25_product_template
@@ -398,11 +415,14 @@ msgid ""
"at the end of the year), Average Price: the cost price is recomputed at each "
"reception of products."
msgstr ""
+"Стандарт үнэ: өртөг тогтмол байх бөгөөд тодорхой хугацааны эцэст (ихэвчлэн "
+"жилийн эцэст) өөрчлөнө, Дундаж үнэ: бараа хүлээн авах бүрт өртөгийг "
+"тооцоолно."
#. module: product
#: field:product.pricelist,name:0
msgid "Pricelist Name"
-msgstr ""
+msgstr "Үнийн жагсаалтын нэр"
#. module: product
#: field:product.template,seller_ids:0
@@ -422,7 +442,7 @@ msgstr "Шинэ бараа үүсгэх"
#. module: product
#: help:product.pricelist.item,name:0
msgid "Explicit rule name for this pricelist line."
-msgstr ""
+msgstr "Энэ мөрөнд таарах тодорхой нэр."
#. module: product
#: view:product.pricelist.item:0
@@ -442,12 +462,12 @@ msgstr "Процессор AMD Athlon XP 1800+"
#. module: product
#: selection:product.template,state:0
msgid "In Production"
-msgstr ""
+msgstr "Үйлдвэрлэх шатанд"
#. module: product
#: field:product.category,child_id:0
msgid "Child Categories"
-msgstr ""
+msgstr "Дэд ангиллууд"
#. module: product
#: model:product.category,name:product.product_category_accessories
@@ -462,13 +482,13 @@ msgstr "Урьтамж"
#. module: product
#: model:product.template,name:product.product_product_20_product_template
msgid "HDD on demand"
-msgstr ""
+msgstr "HDD on demand"
#. module: product
#: field:product.uom,factor_inv:0
#: field:product.uom,factor_inv_data:0
msgid "Factor"
-msgstr ""
+msgstr "Фактор"
#. module: product
#: wizard_button:product.price_list,init,price:0
@@ -494,7 +514,7 @@ msgstr "ҮнийнЖагсаалт"
#: view:product.product:0
#: view:product.template:0
msgid "UOM"
-msgstr ""
+msgstr "Хэмжих нэгж"
#. module: product
#: model:product.uom,name:product.product_uom_unit
@@ -506,7 +526,7 @@ msgstr "Ш"
#: model:ir.ui.menu,name:product.menu_product_pricelist_action2
#: model:ir.ui.menu,name:product.menu_product_pricelist_main
msgid "Pricelists"
-msgstr ""
+msgstr "Үнийн жагсаалт"
#. module: product
#: field:product.supplierinfo,product_name:0
@@ -517,12 +537,12 @@ msgstr "Харилцагчийн барааны нэр"
#: view:product.product:0
#: view:product.template:0
msgid "Miscelleanous"
-msgstr ""
+msgstr "Бусад"
#. module: product
#: help:product.pricelist.item,base:0
msgid "The mode for computing the price for this rule."
-msgstr ""
+msgstr "Энэ дүрмийн үнэ тооцоолох горим."
#. module: product
#: model:ir.actions.act_window,name:product.product_uom_form_action
@@ -535,7 +555,7 @@ msgstr "Хэмжих нэгж"
#. module: product
#: field:product.product,partner_ref:0
msgid "Customer ref"
-msgstr ""
+msgstr "Үйлчлүүлэгч"
#. module: product
#: field:product.supplierinfo,qty:0
@@ -545,7 +565,7 @@ msgstr "Хамгийн бага тоо"
#. module: product
#: model:product.category,name:product.product_category_pc
msgid "PC"
-msgstr ""
+msgstr "PC"
#. module: product
#: help:product.template,seller_delay:0
@@ -558,22 +578,22 @@ msgstr ""
#. module: product
#: field:product.template,seller_delay:0
msgid "Supplier Lead Time"
-msgstr ""
+msgstr "Нийлүүлэгчийн хүлээлт"
#. module: product
#: model:product.pricelist.version,name:product.ver0
msgid "Default Public Pricelist Version"
-msgstr ""
+msgstr "Үндсэн Үнийн хувилбар"
#. module: product
#: field:product.pricelist.type,key:0
msgid "Key"
-msgstr ""
+msgstr "Түлхүүр"
#. module: product
#: field:product.pricelist.item,price_version_id:0
msgid "Price List Version"
-msgstr ""
+msgstr "Үнийн хувилбар"
#. module: product
#: view:product.pricelist.item:0
@@ -585,13 +605,13 @@ msgstr ""
msgid ""
"This pricelist will be used, instead of the default one, "
"for sales to the current partner"
-msgstr ""
+msgstr "Харилцагчийн борлуулалтад энэ үнийн жагсаалт ашиглагдана."
#. module: product
#: model:ir.model,name:product.model_product_pricelist
#: view:product.supplierinfo:0
msgid "Pricelist"
-msgstr ""
+msgstr "Үнийн жагсаалт"
#. module: product
#: selection:product.template,type:0
@@ -601,7 +621,7 @@ msgstr "Зарцуулж болох"
#. module: product
#: help:product.price.type,currency_id:0
msgid "The currency the field is expressed in."
-msgstr ""
+msgstr "Илэрхийлэгдэх валют"
#. module: product
#: help:product.template,weight:0
@@ -624,21 +644,22 @@ msgid ""
"Determine if the product can be visible in the list of product within a "
"selection from a sale order line."
msgstr ""
+"Борлуулах захиалгын барааны жагсаалтад энэ бараа харагдах эсэхийг заана."
#. module: product
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
-msgstr ""
+msgstr "Алдаа: Борлуулах нэгжийн ангилал хэмжих нэгжийнхээс өөр байх ёстой"
#. module: product
#: field:product.category,parent_id:0
msgid "Parent Category"
-msgstr ""
+msgstr "Эцэг ангилал"
#. module: product
#: selection:product.template,state:0
msgid "In Development"
-msgstr ""
+msgstr "Хөгжүүлэлтийн шатанд"
#. module: product
#: help:product.pricelist.type,key:0
@@ -653,6 +674,8 @@ msgid ""
"Quantities of products that are planned to leave in selected locations or "
"all internal if none have been selected."
msgstr ""
+"Сонгосон эсвэл бүх дотоод (сонголт хийгээгүй) байрлалаас гарахаар "
+"төлөвлөгдсөн барааны тоо хэмжээ."
#. module: product
#: field:product.packaging,weight:0
@@ -666,23 +689,26 @@ msgid ""
"supplying. 'Make to Order': When needed, purchase or produce for the "
"procurement request."
msgstr ""
+"'Агуулахад хийх': хэрэгтэй үед агуулахаас авдаг эсвэл агуулахад ирэхийг "
+"хүлээдэг. 'Захиалга хийх': хэрэгтэй үед худалдан авах эсвэл үйлдвэрлэх "
+"захиалга өгдөг."
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Procurement"
-msgstr ""
+msgstr "Татан авалт"
#. module: product
#: model:ir.actions.act_window,name:product.product_category_action
#: model:ir.ui.menu,name:product.menu_product_category_action
msgid "Products by Category"
-msgstr ""
+msgstr "Бараа, ангиллаар"
#. module: product
#: model:product.template,name:product.product_product_hdd1_product_template
msgid "HDD Seagate 7200.8 80GB"
-msgstr ""
+msgstr "HDD Seagate 7200.8 80GB"
#. module: product
#: help:product.pricelist.version,active:0
@@ -691,11 +717,14 @@ msgid ""
"not overlaps with original version. You should change the dates and "
"reactivate the pricelist"
msgstr ""
+"Хувилбарууд давхардвал эх хувилбартай огнооны хувьд огтлолцохгүй болгох "
+"үүднээс идэвхигүй төлөвт оруулна. Та үнийн хувилбарын огноог засаж дахин "
+"идэвхжүүлэх ёстой."
#. module: product
#: model:product.template,name:product.product_product_hdd3_product_template
msgid "HDD Seagate 7200.8 160GB"
-msgstr ""
+msgstr "HDD Seagate 7200.8 160GB"
#. module: product
#: view:product.product:0
@@ -715,12 +744,12 @@ msgstr "Раак"
#. module: product
#: field:product.uom,category_id:0
msgid "UoM Category"
-msgstr ""
+msgstr "Хэмжих нэгжийн ангилал"
#. module: product
#: selection:product.ul,type:0
msgid "Pack"
-msgstr ""
+msgstr "Савлагаа"
#. module: product
#: field:product.product,ean13:0
@@ -752,7 +781,7 @@ msgstr "Жин"
#. module: product
#: model:product.template,name:product.product_product_22_product_template
msgid "Processor on demand"
-msgstr ""
+msgstr "Processor on demand"
#. module: product
#: help:product.supplierinfo,product_name:0
@@ -760,21 +789,23 @@ msgid ""
"Name of the product for this partner, will be used when printing a request "
"for quotation. Keep empty to use the internal one."
msgstr ""
+"Үнийн санал асуух үед хэвлэгдэх нийлүүлэгчийн барааны нэр. Хэрэв дотоод нэр "
+"ашиглах бол хоосон орхино."
#. module: product
#: field:product.template,supply_method:0
msgid "Supply method"
-msgstr ""
+msgstr "Түгээх арга"
#. module: product
#: model:product.category,name:product.product_category_11
msgid "IT components kits"
-msgstr ""
+msgstr "IT эд ангиуд"
#. module: product
#: view:product.uom.categ:0
msgid "Units of Measure categories"
-msgstr ""
+msgstr "Хэмжих нэгжийн ангилал"
#. module: product
#: field:product.category,sequence:0
@@ -786,7 +817,7 @@ msgstr "Дараалал"
#. module: product
#: view:product.supplierinfo:0
msgid "Supplier Information"
-msgstr ""
+msgstr "Нийлүүлэгчийн мэдээлэл"
#. module: product
#: model:ir.actions.act_window,name:product.product_ul_form_action
@@ -807,18 +838,18 @@ msgstr "Валют"
#. module: product
#: model:product.template,name:product.product_product_cpu_gen_product_template
msgid "Regular processor config"
-msgstr ""
+msgstr "Энгийн процессор"
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Descriptions"
-msgstr ""
+msgstr "Тайлбар"
#. module: product
#: model:process.transition,name:product.process_transition_supplierofproduct0
msgid "Suppliers of Product"
-msgstr ""
+msgstr "Барааны нийлүүлэгчид"
#. module: product
#: field:product.pricelist.version,date_start:0
@@ -828,19 +859,19 @@ msgstr "Эхлэл огноо"
#. module: product
#: view:res.partner:0
msgid "Sales Properties"
-msgstr ""
+msgstr "Борлуулалтын шинжүүд"
#. module: product
#: help:product.product,qty_available:0
msgid ""
"Current quantities of products in selected locations or all internal if none "
"have been selected."
-msgstr ""
+msgstr "Сонгосон эсвэл бүх байрлал дээрх барааны тоо хэмжээ."
#. module: product
#: model:product.template,name:product.product_product_pc1_product_template
msgid "Basic PC"
-msgstr ""
+msgstr "Үндсэн PC"
#. module: product
#: field:product.template,loc_row:0
@@ -856,12 +887,12 @@ msgstr "Ангилал"
#: help:product.pricelist.item,min_quantity:0
msgid ""
"The rule only applies if the partner buys/sells more than this quantity."
-msgstr ""
+msgstr "Харилцагч зөвхөн энэ хэмжээнээс илүүг зарах/авах үед дүрэм үйлчилнэ."
#. module: product
#: model:product.template,name:product.product_product_ram_product_template
msgid "DDR 256MB PC400"
-msgstr ""
+msgstr "DDR 256MB PC400"
#. module: product
#: field:product.product,qty_available:0
@@ -879,11 +910,12 @@ msgid ""
"Unit of Measure of a category can be converted between each others in the "
"same category."
msgstr ""
+"Хэмжих нэгж нь тухайн ангилал дотроо өөр нэгж рүү хөрвүүлэгдэж болно."
#. module: product
#: model:ir.model,name:product.model_product_uom
msgid "Product Unit of Measure"
-msgstr ""
+msgstr "Барааны хэмжих нэгж"
#. module: product
#: field:product.template,sale_ok:0
@@ -893,23 +925,24 @@ msgstr "Зарж болох"
#. module: product
#: model:product.template,name:product.product_product_23_product_template
msgid "Complete PC With Peripherals"
-msgstr ""
+msgstr "Иж бүрэн PC"
#. module: product
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
+"Алдаа: Үндсэн нэгж худалдан авах нэгж хоёул нэг ангилалд хамаарах ёстой."
#. module: product
#: model:product.template,name:product.product_product_mb2_product_template
msgid "Mainboard ASUStek A7V8X-X"
-msgstr ""
+msgstr "ASUStek A7V8X-X эх хавтан"
#. module: product
#: field:product.uom,factor:0
msgid "Rate"
-msgstr ""
+msgstr "Харьцаа"
#. module: product
#: view:product.pricelist.item:0
@@ -919,17 +952,17 @@ msgstr ""
#. module: product
#: field:product.uom,rounding:0
msgid "Rounding Precision"
-msgstr ""
+msgstr "Тоймлох нарийвчлал"
#. module: product
#: help:product.packaging,width:0
msgid "The width of the package"
-msgstr ""
+msgstr "Пакетын өргөн"
#. module: product
#: field:product.packaging,qty:0
msgid "Quantity by Package"
-msgstr ""
+msgstr "Пакетаархи тоо"
#. module: product
#: help:product.template,uos_id:0
@@ -938,46 +971,49 @@ msgid ""
"management. For example, in food industries, you will manage a stock of ham "
"but invoice in Kg. Keep empty to use the default UOM."
msgstr ""
+"Хоёр хэмжих нэгж ашигладаг компаниудад хэрэглэгдэнэ. Жишээлбэл, хүнсний "
+"үйлдвэрлэлд, агуулахдаа гулуузаар хэмжих боловч хэрэглэгчээс Кг-аар "
+"нэхэмжлэнэ. Үндсэн хэмжих нэгжийг ашиглах бол хоосон орхино."
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Procurement & Locations"
-msgstr ""
+msgstr "Татан авалт & Байршил"
#. module: product
#: view:product.product:0
#: view:product.template:0
#: field:product.template,state:0
msgid "Status"
-msgstr ""
+msgstr "Байдал"
#. module: product
#: field:product.product,outgoing_qty:0
msgid "Outgoing"
-msgstr ""
+msgstr "Гарч байгаа"
#. module: product
#: selection:product.template,supply_method:0
msgid "Buy"
-msgstr ""
+msgstr "Худалдаж авах"
#. module: product
#: model:ir.model,name:product.model_product_pricelist_version
#: view:product.pricelist:0
#: view:product.pricelist.version:0
msgid "Pricelist Version"
-msgstr ""
+msgstr "Үнийн хувилбар"
#. module: product
#: field:product.pricelist.item,price_round:0
msgid "Price Rounding"
-msgstr ""
+msgstr "Үнэ тоймлолт"
#. module: product
#: model:product.price.type,name:product.list_price
msgid "Public Price"
-msgstr ""
+msgstr "Нийтийн үнэ"
#. module: product
#: field:product.pricelist.item,price_max_margin:0
@@ -987,12 +1023,12 @@ msgstr ""
#. module: product
#: view:res.partner:0
msgid "Sales & Purchases"
-msgstr ""
+msgstr "Борлуулалт & Худалдан авалт"
#. module: product
#: model:product.category,name:product.product_category_10
msgid "IT components"
-msgstr ""
+msgstr "IT эд ангиуд"
#. module: product
#: help:product.packaging,weight_ul:0
@@ -1002,17 +1038,17 @@ msgstr ""
#. module: product
#: help:product.packaging,code:0
msgid "The code of the transport unit."
-msgstr ""
+msgstr "Тээвэрлэх нэгжийн код"
#. module: product
#: field:product.template,uom_po_id:0
msgid "Purchase UoM"
-msgstr ""
+msgstr "Худалдан авах нэгж"
#. module: product
#: view:product.price.type:0
msgid "Products Price Type"
-msgstr ""
+msgstr "Барааны үнийн төрөл"
#. module: product
#: field:product.template,product_manager:0
@@ -1027,12 +1063,12 @@ msgstr ""
#. module: product
#: model:product.template,name:product.product_product_fan_product_template
msgid "Regular case fan 80mm"
-msgstr ""
+msgstr "80mm ердийн үүрэн сэнс"
#. module: product
#: model:ir.model,name:product.model_product_supplierinfo
msgid "Information about a product supplier"
-msgstr ""
+msgstr "Бараа нийлүүлэгчийн тухай мэдээлэл"
#. module: product
#: field:product.price.type,active:0
@@ -1041,7 +1077,7 @@ msgstr ""
#: field:product.product,active:0
#: field:product.uom,active:0
msgid "Active"
-msgstr ""
+msgstr "Идэвхитэй"
#. module: product
#: field:product.product,price_margin:0
@@ -1051,12 +1087,12 @@ msgstr ""
#. module: product
#: wizard_view:product.price_list,init:0
msgid "Price list"
-msgstr ""
+msgstr "Үнийн жагсаалт"
#. module: product
#: model:product.template,name:product.product_product_pc3_product_template
msgid "Medium PC"
-msgstr ""
+msgstr "Дундаж PC"
#. module: product
#: model:ir.model,name:product.model_pricelist_partnerinfo
@@ -1074,24 +1110,24 @@ msgstr "Өртөг үнэ"
#: view:product.template:0
#: field:product.template,description_purchase:0
msgid "Purchase Description"
-msgstr ""
+msgstr "Хупалдан авах тайлбар"
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Second UoM"
-msgstr ""
+msgstr "Хоёрдогч нэгж"
#. module: product
#: model:product.category,name:product.product_category_4
msgid "Dello Computer"
-msgstr ""
+msgstr "Dello Компьютер"
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Storage Localisation"
-msgstr ""
+msgstr "Хадгалах байрлал"
#. module: product
#: help:product.packaging,length:0
@@ -1106,7 +1142,7 @@ msgstr ""
#. module: product
#: help:product.packaging,ean:0
msgid "The EAN code of the package unit."
-msgstr ""
+msgstr "Пакетын зураасан код."
#. module: product
#: field:product.template,weight:0
@@ -1124,33 +1160,33 @@ msgstr ""
#: model:ir.model,name:product.model_product_category
#: field:product.pricelist.item,categ_id:0
msgid "Product Category"
-msgstr ""
+msgstr "Барааны ангилал"
#. module: product
#: field:product.price.type,field:0
msgid "Product Field"
-msgstr ""
+msgstr "Барааны талбар"
#. module: product
#: model:ir.actions.act_window,name:product.product_pricelist_type_action
#: model:ir.ui.menu,name:product.menu_product_pricelist_type_action
msgid "Pricelists Types"
-msgstr ""
+msgstr "Үнийн жагсаалтын төрлүүд"
#. module: product
#: help:product.template,state:0
msgid "Tells the user if he can use the product or not."
-msgstr ""
+msgstr "Барааг хэрэглэж болох эсэхийг хэрэглэгчид мэдэгдэнэ."
#. module: product
#: field:product.supplierinfo,product_code:0
msgid "Partner Product Code"
-msgstr ""
+msgstr "Харилцагчийн барааны код"
#. module: product
#: model:product.category,name:product.product_category_3
msgid "Computer Stuff"
-msgstr ""
+msgstr "Компьютер хэрэгсэл"
#. module: product
#: field:product.packaging,code:0
@@ -1165,11 +1201,13 @@ msgid ""
"The coefficient for the formula:\n"
"coeff (base unit) = 1 (this unit). Factor = 1 / Rate."
msgstr ""
+"Дараахь томъёоны коэффициент:\n"
+"коэф (суурь нэгж) = 1 (энэ нэгж). Фактор = 1 / Харьцаа."
#. module: product
#: view:product.supplierinfo:0
msgid "Seq"
-msgstr ""
+msgstr "Д/д"
#. module: product
#: model:product.category,name:product.product_category_8
@@ -1179,12 +1217,12 @@ msgstr "Утсаар туслах"
#. module: product
#: selection:product.template,mes_type:0
msgid "Variable"
-msgstr ""
+msgstr "Хувьсах"
#. module: product
#: help:product.template,uom_id:0
msgid "Default Unit of Measure used for all stock operation."
-msgstr ""
+msgstr "Агуулахын бүх үйлдэлд ашиглах үндсэн хэмжих нэгж."
#. module: product
#: model:ir.model,name:product.model_product_template
@@ -1197,7 +1235,7 @@ msgstr "Барааны загвар"
#. module: product
#: model:ir.model,name:product.model_product_ul
msgid "Shipping Unit"
-msgstr ""
+msgstr "Тээвэрлэх нэгж"
#. module: product
#: help:product.uom,rounding:0
@@ -1205,6 +1243,8 @@ msgid ""
"The computed quantity will be a multiple of this value. Use 1.0 for products "
"that can not be split."
msgstr ""
+"Энэ утгаар үржүүлж тоо ширхэгийг тооцоолно. Хуваалт хийхгүй барааны хувьд "
+"1.0 гэж сонгоно."
#. module: product
#: field:product.packaging,height:0
@@ -1219,12 +1259,12 @@ msgstr ""
#. module: product
#: help:product.pricelist.version,date_end:0
msgid "Ending date for this pricelist version to be valid."
-msgstr ""
+msgstr "Энэ үнийн хүчинтэй хугацааны төгсгөл."
#. module: product
#: field:pricelist.partnerinfo,suppinfo_id:0
msgid "Partner Information"
-msgstr ""
+msgstr "Харилцагчийн мэдээлэл"
#. module: product
#: view:product.product:0
@@ -1252,12 +1292,12 @@ msgstr "Болих"
#. module: product
#: help:product.packaging,qty:0
msgid "The total number of products you can put by palet or box."
-msgstr ""
+msgstr "Палет эсвэл хайрцагаар савлаж болох барааны нийт тоо."
#. module: product
#: model:ir.model,name:product.model_product_pricelist_item
msgid "Pricelist item"
-msgstr ""
+msgstr "Үнийн дүрэм"
#. module: product
#: model:ir.actions.wizard,name:product.report_wizard_price
@@ -1268,12 +1308,12 @@ msgstr "Үнийн жагсаалт"
#. module: product
#: model:product.pricelist,name:product.list0
msgid "Public Pricelist"
-msgstr ""
+msgstr "Нийтийн үнийн жагсаалт"
#. module: product
#: model:product.template,name:product.product_product_21_product_template
msgid "RAM on demand"
-msgstr ""
+msgstr "RAM on demand"
#. module: product
#: selection:product.ul,type:0
@@ -1284,7 +1324,7 @@ msgstr "Нэгж"
#. module: product
#: model:product.template,name:product.product_product_hdd2_product_template
msgid "HDD Seagate 7200.8 120GB"
-msgstr ""
+msgstr "HDD Seagate 7200.8 120GB"
#. module: product
#: wizard_field:product.price_list,init,qty2:0
@@ -1307,11 +1347,13 @@ msgstr "Код"
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
#. module: product
#: wizard_field:product.price_list,init,qty4:0
msgid "Quantity-4"
-msgstr ""
+msgstr "Тоо-4"
#. module: product
#: wizard_field:product.price_list,init,qty5:0
@@ -1333,7 +1375,7 @@ msgstr ""
#. module: product
#: field:product.pricelist.version,items_id:0
msgid "Price List Items"
-msgstr ""
+msgstr "Үнийн дүрмүүд"
#. module: product
#: help:product.supplierinfo,product_code:0
@@ -1350,7 +1392,7 @@ msgstr ""
#. module: product
#: selection:product.ul,type:0
msgid "Pallet"
-msgstr ""
+msgstr "Палет"
#. module: product
#: field:pricelist.partnerinfo,price:0
@@ -1378,7 +1420,7 @@ msgstr ""
#. module: product
#: model:process.node,note:product.process_node_supplier0
msgid "Product suppliers, with their product name, price, etc."
-msgstr ""
+msgstr "Барааны нийлүүлэгчид, барааны нэр, үнэ зэрэг."
#. module: product
#: model:ir.model,name:product.model_product_price_type
@@ -1408,23 +1450,23 @@ msgstr "Эзлэхүүн"
#: view:product.template:0
#: field:product.template,description:0
msgid "Description"
-msgstr ""
+msgstr "Тодорхойлолт"
#. module: product
#: field:product.packaging,ean:0
msgid "EAN"
-msgstr ""
+msgstr "Зур.код"
#. module: product
#: view:product.product:0
#: view:product.template:0
msgid "Product Description"
-msgstr ""
+msgstr "Барааны тодорхойлолт"
#. module: product
#: view:product.pricelist.item:0
msgid " ) + "
-msgstr ""
+msgstr " ) + "
#. module: product
#: help:product.template,sale_delay:0
@@ -1433,36 +1475,38 @@ msgid ""
"the delivery of the finished products. It's the time you promise to your "
"customers."
msgstr ""
+"Хэрэглэгчийн захиалга батлагдсанаас хойш эцсийн бүтээгдэхүүнийг хүргэх "
+"хүртэлх дундаж хугацаа. Ө.х хэрэглэгчид амлалт өгөх хугацаа."
#. module: product
#: model:ir.model,name:product.model_product_uom_categ
msgid "Product uom categ"
-msgstr ""
+msgstr "Барааны хэмжих нэгжийн ангилал"
#. module: product
#: wizard_field:product.price_list,init,qty3:0
msgid "Quantity-3"
-msgstr ""
+msgstr "Тоо-3"
#. module: product
#: model:product.ul,name:product.product_ul_box
msgid "Box 20x20x40"
-msgstr ""
+msgstr "20x20x40 хайрцаг"
#. module: product
#: selection:product.template,supply_method:0
msgid "Produce"
-msgstr ""
+msgstr "Үйлдвэрлэх"
#. module: product
#: selection:product.template,procure_method:0
msgid "Make to Order"
-msgstr ""
+msgstr "Захиалга хийх"
#. module: product
#: field:product.pricelist.item,price_surcharge:0
msgid "Price Surcharge"
-msgstr ""
+msgstr "Үнийн нэмэгдэл"
#. module: product
#: constraint:product.pricelist.version:0
@@ -1472,12 +1516,12 @@ msgstr "Огтлолцсон 2 үнийн жагсаалт байж болохг
#. module: product
#: view:product.pricelist.item:0
msgid "Rounding Method"
-msgstr ""
+msgstr "Тоймлох арга"
#. module: product
#: field:product.product,variants:0
msgid "Variants"
-msgstr ""
+msgstr "Хувилбарууд"
#. module: product
#: view:product.pricelist.item:0
@@ -1487,7 +1531,7 @@ msgstr "Үнийн тооцоолол"
#. module: product
#: model:product.template,name:product.product_product_mb1_product_template
msgid "Mainboard ASUStek A7N8X"
-msgstr ""
+msgstr "ASUStek A7N8X эх хавтан"
#. module: product
#: field:product.template,loc_case:0
@@ -1497,13 +1541,13 @@ msgstr "Үүр"
#. module: product
#: field:product.pricelist.version,date_end:0
msgid "End Date"
-msgstr ""
+msgstr "Төгсгөл огноо"
#. module: product
#: model:ir.actions.act_window,name:product.product_category_action_form
#: model:ir.ui.menu,name:product.menu_product_category_action_form
msgid "Products Categories"
-msgstr ""
+msgstr "Барааны ангилал"
#. module: product
#: field:product.product,packaging:0
@@ -1528,6 +1572,8 @@ msgid ""
"Coefficient to convert UOM to UOS\n"
" uom = uos * coeff"
msgstr ""
+"Хэмжих нэгжийг зарах нэгж рүү хөрвүүлэх коэффициент\n"
+" uom = uos * coeff"
#. module: product
#: field:product.template,purchase_ok:0
@@ -1537,7 +1583,7 @@ msgstr "Худалдаж авч болох"
#. module: product
#: field:product.template,uos_coeff:0
msgid "UOM -> UOS Coeff"
-msgstr ""
+msgstr "UOM -> UOS Коэф"
#. module: product
#: model:product.template,name:product.product_product_cpu2_product_template
@@ -1547,7 +1593,7 @@ msgstr "Өндөр хурдны процессор"
#. module: product
#: model:product.template,name:product.product_product_pc2_product_template
msgid "Basic+ PC (assembly on order)"
-msgstr ""
+msgstr "Үндсэн+ PC (захиалгаар угсарна)"
#. module: product
#: field:product.template,cost_method:0
@@ -1558,7 +1604,7 @@ msgstr "Өртөг тооцох арга"
#: view:product.packaging:0
#: view:product.product:0
msgid "Palletization"
-msgstr ""
+msgstr "Палетжуулах"
#. module: product
#: view:product.product:0
@@ -1569,7 +1615,7 @@ msgstr "Үнэ & Нийлүүлэгч"
#. module: product
#: help:product.packaging,weight:0
msgid "The weight of a full of products palet or box."
-msgstr ""
+msgstr "Палет эсвэл хайрцагын бүтэн жин."
#. module: product
#: selection:product.template,state:0
@@ -1587,6 +1633,8 @@ msgid ""
"The coefficient for the formula:\n"
"1 (base unit) = coeff (this unit). Rate = 1 / Factor."
msgstr ""
+"Дараахь томъёоны коэффициент:\n"
+"1 (суурь нэгж) = коэфф (энэ нэгж). Харьцаа = 1 / Фактор."
#. module: product
#: help:product.template,weight_net:0
@@ -1596,7 +1644,7 @@ msgstr "Цэвэр жин кг-аар."
#. module: product
#: model:product.template,name:product.product_product_tow1_product_template
msgid "ATX Mid-size Tower"
-msgstr ""
+msgstr "ATX Mid-size Tower"
#. module: product
#: field:product.supplierinfo,delay:0
@@ -1608,12 +1656,12 @@ msgstr "Хүргэлтийн хүлээлт"
#: model:ir.ui.menu,name:product.menu_product_pricelist_action
#: field:product.pricelist,version_id:0
msgid "Pricelist Versions"
-msgstr ""
+msgstr "Үнийн хувилбар"
#. module: product
#: field:product.packaging,weight_ul:0
msgid "Empty Package Weight"
-msgstr ""
+msgstr "Хоосон пакетын жин"
#. module: product
#: field:product.template,list_price:0
@@ -1632,7 +1680,7 @@ msgstr ""
#. module: product
#: wizard_field:product.price_list,init,qty1:0
msgid "Quantity-1"
-msgstr ""
+msgstr "Тоо-1"
#. module: product
#: field:product.packaging,length:0
@@ -1642,7 +1690,7 @@ msgstr "Урт"
#. module: product
#: model:product.category,name:product.cat2
msgid "Private"
-msgstr ""
+msgstr "Хувийн"
#. module: product
#: help:product.supplierinfo,delay:0
@@ -1658,6 +1706,8 @@ msgid ""
"Default Unit of Measure used for purchase orders. It must in the same "
"category than the default unit of measure."
msgstr ""
+"Худалдан авалтад хэрэглэх үндсэн хэмжих нэгж. Энэ нь үндсэн хэмжих нэгжийн "
+"ангилалтай адил байх ёстой."
#. module: product
#: constraint:product.product:0
@@ -1667,7 +1717,7 @@ msgstr "Алдаа: Буруу зураасан код"
#. module: product
#: field:product.pricelist.item,min_quantity:0
msgid "Min. Quantity"
-msgstr ""
+msgstr "Хамгийн бага тоо"
#. module: product
#: help:product.pricelist.item,categ_id:0
@@ -1675,6 +1725,8 @@ msgid ""
"Set a category of product if this rule only apply to products of a category "
"and his childs. Keep empty for all products"
msgstr ""
+"Энэ дүрэм үйлчлэх барааны ангиллыг сонгоно. Хэрэв бүх бараанд хамаатай бол "
+"хоосон орхино."
#. module: product
#: model:ir.actions.report.xml,name:product.report_product_label
diff --git a/addons/product/i18n/pt_BR.po b/addons/product/i18n/pt_BR.po
index b46884b3f64..583481872d4 100644
--- a/addons/product/i18n/pt_BR.po
+++ b/addons/product/i18n/pt_BR.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 10:12+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:57+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
diff --git a/addons/product/i18n/sr.po b/addons/product/i18n/sr.po
index b1d0f15cdcc..4f45dc21532 100644
--- a/addons/product/i18n/sr.po
+++ b/addons/product/i18n/sr.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-11 05:11+0000\n"
+"PO-Revision-Date: 2010-08-29 08:43+0000\n"
"Last-Translator: Sonja Sardelić \n"
"Language-Team: Serbian \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:56+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
diff --git a/addons/product/i18n/tr.po b/addons/product/i18n/tr.po
index 1799a8d95f8..1af1eb48eda 100644
--- a/addons/product/i18n/tr.po
+++ b/addons/product/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 05:13+0000\n"
+"PO-Revision-Date: 2010-08-29 10:23+0000\n"
"Last-Translator: Angel Spy \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:57+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
diff --git a/addons/product/i18n/zh_CN.po b/addons/product/i18n/zh_CN.po
index 496f2cf9158..696490ee944 100644
--- a/addons/product/i18n/zh_CN.po
+++ b/addons/product/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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 07:36+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-12 03:57+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py
index 9256f42943b..aae62228748 100644
--- a/addons/product/pricelist.py
+++ b/addons/product/pricelist.py
@@ -21,7 +21,6 @@
from osv import fields, osv
-#from tools.misc import currency
from _common import rounding
import time
from tools import config
@@ -64,7 +63,7 @@ class price_type(osv.osv):
"active": lambda *args: True,
"currency_id": _get_currency
}
-
+
price_type()
#----------------------------------------------------------
@@ -93,8 +92,7 @@ class product_pricelist(osv.osv):
res.append((type['key'],type['name']))
return res
-# cr.execute('select key,name from product_pricelist_type order by name')
-# return cr.fetchall()
+
_name = "product.pricelist"
_description = "Pricelist"
_columns = {
diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml
index 430fa4b513e..4d049d44843 100644
--- a/addons/product/pricelist_view.xml
+++ b/addons/product/pricelist_view.xml
@@ -2,7 +2,9 @@
-
+
+
product.pricelist.version.form
diff --git a/addons/product/process/product_process.xml b/addons/product/process/product_process.xml
index a63fdb41a1d..c8f72be4df7 100644
--- a/addons/product/process/product_process.xml
+++ b/addons/product/process/product_process.xml
@@ -17,7 +17,6 @@
-->
-
@@ -28,7 +27,6 @@
-
diff --git a/addons/product/product.py b/addons/product/product.py
index 8029f8309d3..d02349c6e7f 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -289,7 +289,6 @@ class product_template(osv.osv):
_defaults = {
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'product.template', context=c),
-# 'company_id': lambda self, cr, uid, context: False, # Visible by all
'type': lambda *a: 'product',
'list_price': lambda *a: 1,
'cost_method': lambda *a: 'standard',
@@ -429,7 +428,7 @@ class product_product(osv.osv):
'default_code' : fields.char('Reference', size=64),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the product without removing it."),
'variants': fields.char('Variants', size=64),
- 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=False),
+ 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"),
'ean13': fields.char('EAN13', size=13),
'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."),
'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')),
@@ -476,8 +475,6 @@ class product_product(osv.osv):
if not len(ids):
return []
def _name_get(d):
- #name = self._product_partner_ref(cr, user, [d['id']], '', '', context)[d['id']]
- #code = self._product_code(cr, user, [d['id']], '', '', context)[d['id']]
name = d.get('name','')
code = d.get('default_code',False)
if code:
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index d3dec68e6bb..19574b6aa12 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -1,7 +1,7 @@
-
+
product.search.form
@@ -194,10 +194,11 @@
form
+ In OpenERP, a product is something you can buy and sell. It can be a raw material, a stockable product, a consumable or a service. The product form contains a detailed information on the products like procurement logistic, sales price, product category, suppliers, etc.
-
+
@@ -253,6 +254,7 @@
[('parent_id','=',False)]
tree
+ Products category opens a tree structure view of your products by category.
@@ -400,7 +402,7 @@
tree,form
+ action="product_ul_form_action" groups="base.group_extended" id="menu_product_ul_form_action" parent="prod_config_main" sequence="3"/>
product.packaging.tree.view
@@ -638,10 +640,6 @@
-
diff --git a/addons/product/report/pricelist.py b/addons/product/report/pricelist.py
index e5556f193b0..068aed7df1c 100644
--- a/addons/product/report/pricelist.py
+++ b/addons/product/report/pricelist.py
@@ -96,14 +96,11 @@ class report_custom(report_rml):
else:
res = pool.get('product.product').read(cr, uid, [x['id']])
price = res[0]['list_price']
-# temp.append(' '%(price_list[i][x['id']]*q[2]['name'],currency['currency_id'][1]))
temp.append(' '%(price))
i+=1
pro.extend(temp)
pro.append('')
-# categ.extend(pro)
-# categ.append('')
product_xml.extend(pro)
product_xml.append('')
diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py
index 76bf07ad96a..d5faa4f0065 100644
--- a/addons/product/report/product_pricelist.py
+++ b/addons/product/report/product_pricelist.py
@@ -44,7 +44,6 @@ class product_pricelist(report_sxw.rml_parse):
qtys = 1
for i in range(1,6):
-# if form['qty'+str(i)] > 0 and form['qty'+str(i)] not in vals.values():
vals['qty'+str(qtys)] = form['qty'+str(i)]
qtys += 1
lst.append(vals)
@@ -85,11 +84,11 @@ class product_pricelist(report_sxw.rml_parse):
product_ids=pool.get('product.product').search(self.cr, self.uid, [('id','in',pro_ids),('categ_id','=',cat['id'])])
products = []
for product in pool.get('product.product').read(self.cr, self.uid, product_ids, ['name','code']):
- val={
- 'id':product['id'],
- 'name':product['name'],
- 'code':product['code']
- }
+ val = {
+ 'id':product['id'],
+ 'name':product['name'],
+ 'code':product['code']
+ }
i = 1
for qty in self.quantity:
if qty == 0:
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_expiry/product_expiry.py b/addons/product_expiry/product_expiry.py
index 72f18412af4..fbfa7dc1610 100644
--- a/addons/product_expiry/product_expiry.py
+++ b/addons/product_expiry/product_expiry.py
@@ -23,7 +23,6 @@ from osv import fields, osv
import pooler
class stock_production_lot(osv.osv):
- _name = 'stock.production.lot'
_inherit = 'stock.production.lot'
def _get_date(dtype):
@@ -51,7 +50,7 @@ class stock_production_lot(osv.osv):
help='The date the lot starts deteriorating without becoming dangerous.'),
'removal_date': fields.datetime('Removal Date',
help='The date the lot should be removed.'),
- 'alert_date': fields.datetime('Alert Date'),
+ 'alert_date': fields.datetime('Alert Date', help="The date signifying an alert to notify about the production lot."),
}
# Assign dates according to products data
def create(self, cr, uid, vals, context=None):
@@ -76,15 +75,14 @@ stock_production_lot()
class product_product(osv.osv):
_inherit = 'product.product'
- _name = 'product.product'
_columns = {
- 'life_time': fields.integer('Product lifetime',
+ 'life_time': fields.integer('Product Life Time',
help='The number of days before a production lot may become dangerous and should not be consumed.'),
- 'use_time': fields.integer('Product usetime',
+ 'use_time': fields.integer('Product Use Time',
help='The number of days before a production lot starts deteriorating without becoming dangerous.'),
- 'removal_time': fields.integer('Product removal time',
+ 'removal_time': fields.integer('Product Removal Time',
help='The number of days before a production lot should be removed.'),
- 'alert_time': fields.integer('Product alert time'),
+ 'alert_time': fields.integer('Product Alert Time', help="The number of days after which, needs an alert to notify about the production lot."),
}
product_product()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_expiry/product_expiry_view.xml b/addons/product_expiry/product_expiry_view.xml
index 245a4a2c600..e0a249d09eb 100644
--- a/addons/product_expiry/product_expiry_view.xml
+++ b/addons/product_expiry/product_expiry_view.xml
@@ -13,6 +13,7 @@
+
@@ -25,7 +26,6 @@
-
diff --git a/addons/product_manufacturer/__init__.py b/addons/product_manufacturer/__init__.py
index 3c3dce04d51..9b2446b4a44 100644
--- a/addons/product_manufacturer/__init__.py
+++ b/addons/product_manufacturer/__init__.py
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -14,10 +14,11 @@
# 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 product_manufacturer
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_manufacturer/__openerp__.py b/addons/product_manufacturer/__openerp__.py
index bccabe95283..0d8fa8b4cc9 100644
--- a/addons/product_manufacturer/__openerp__.py
+++ b/addons/product_manufacturer/__openerp__.py
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -14,7 +14,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 .
#
##############################################################################
{
@@ -22,13 +22,15 @@
"version" : "1.0",
"author" : "OpenERP SA",
"category" : "Enterprise Specific Modules/Manufacturer Industries",
- "depends" : ["base", "account", "product", "stock"],
+ "depends" : ["stock"],
"init_xml" : [],
"demo_xml" : [],
"description": "A module that add manufacturers and attributes on the product form",
- "update_xml" : ["security/ir.model.access.csv","product_manufacturer_view.xml"],
+ "update_xml" : [
+ "security/ir.model.access.csv",
+ "product_manufacturer_view.xml"
+ ],
"active": False,
"installable": True
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/product_manufacturer/i18n/nl.po b/addons/product_manufacturer/i18n/de.po
similarity index 65%
rename from addons/product_manufacturer/i18n/nl.po
rename to addons/product_manufacturer/i18n/de.po
index 69153f9d6cb..530434654b3 100644
--- a/addons/product_manufacturer/i18n/nl.po
+++ b/addons/product_manufacturer/i18n/de.po
@@ -1,4 +1,4 @@
-# Dutch translation for openobject-addons
+# 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.
@@ -7,99 +7,89 @@ msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2009-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-08-02 11:29+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Dutch \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-12 04:08+0000\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 ""
+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 ""
+msgid "Manufacturer Product Code"
+msgstr "Hersteller Produkt Nummer"
#. module: product_manufacturer
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
#. module: product_manufacturer
#: view:product.manufacturer.attribute:0
msgid "Product Template Name"
-msgstr ""
+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_electronic_attribute
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
msgid "Product attributes"
-msgstr ""
+msgstr "Produkt Merkmale"
#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product reference"
-msgstr ""
+msgid "Product Attributes"
+msgstr "Produkt Merkmale"
#. module: product_manufacturer
#: field:product.manufacturer.attribute,name:0
msgid "Attribute"
-msgstr ""
+msgstr "Merkmale"
#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
#: field:product.manufacturer.attribute,product_id:0
msgid "Product"
-msgstr ""
+msgstr "Produkt"
#. module: product_manufacturer
#: field:product.manufacturer.attribute,value:0
msgid "Value"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product name"
-msgstr ""
+msgstr "Wert"
#. module: product_manufacturer
#: view:product.product:0
#: field:product.product,attribute_ids:0
msgid "Attributes"
-msgstr ""
+msgstr "Eigenschaften"
#. module: product_manufacturer
#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
msgid "Products Attributes & Manufacturers"
-msgstr ""
+msgstr "Produkt Merkmale & Hersteller"
#. module: product_manufacturer
#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr ""
+msgid "Manufacturer Product Name"
+msgstr "Produktename des Herstellers"
#. module: product_manufacturer
+#: view:product.product:0
#: field:product.product,manufacturer:0
msgid "Manufacturer"
-msgstr ""
+msgstr "Hersteller"
diff --git a/addons/product_manufacturer/i18n/product_electronic.pot b/addons/product_manufacturer/i18n/en_US.po
similarity index 79%
rename from addons/product_manufacturer/i18n/product_electronic.pot
rename to addons/product_manufacturer/i18n/en_US.po
index 41372e6597f..91281fdacd4 100644
--- a/addons/product_manufacturer/i18n/product_electronic.pot
+++ b/addons/product_manufacturer/i18n/en_US.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-11-25 13:27:55+0000\n"
-"PO-Revision-Date: 2009-11-25 13:27:55+0000\n"
+"POT-Creation-Date: 2010-08-12 12:35:32+0000\n"
+"PO-Revision-Date: 2010-08-12 12:35:32+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -22,7 +22,7 @@ msgstr ""
#. module: product_manufacturer
#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
+msgid "Manufacturer Product Code"
msgstr ""
#. module: product_manufacturer
@@ -41,18 +41,14 @@ msgid "The Object name must start with x_ and not contain any special character
msgstr ""
#. module: product_manufacturer
-#: model:ir.model,name:product_manufacturer.model_product_electronic_attribute
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
msgid "Product attributes"
msgstr ""
#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product reference"
+msgid "Product Attributes"
msgstr ""
#. module: product_manufacturer
@@ -61,6 +57,7 @@ msgid "Attribute"
msgstr ""
#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
#: field:product.manufacturer.attribute,product_id:0
msgid "Product"
msgstr ""
@@ -70,16 +67,6 @@ msgstr ""
msgid "Value"
msgstr ""
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product name"
-msgstr ""
-
#. module: product_manufacturer
#: view:product.product:0
#: field:product.product,attribute_ids:0
@@ -93,10 +80,11 @@ msgstr ""
#. module: product_manufacturer
#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
+msgid "Manufacturer Product Name"
msgstr ""
#. module: product_manufacturer
+#: view:product.product:0
#: field:product.product,manufacturer:0
msgid "Manufacturer"
msgstr ""
diff --git a/addons/product_manufacturer/i18n/es.po b/addons/product_manufacturer/i18n/es.po
deleted file mode 100644
index a50fde79269..00000000000
--- a/addons/product_manufacturer/i18n/es.po
+++ /dev/null
@@ -1,108 +0,0 @@
-# Spanish 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-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-06-27 21:56+0000\n"
-"Last-Translator: Borja López Soilán (Pexego) \n"
-"Language-Team: Spanish \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: product_electronic
-#: model:ir.module.module,description:product_electronic.module_meta_information
-msgid "A module that add manufacturers and attributes on the product form"
-msgstr ""
-"Un módulo que añade fabricantes y atributos en el formulario de producto"
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
-msgstr "Código de producto del fabricante"
-
-#. module: product_electronic
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "¡XML inválido para la estructura de la vista!"
-
-#. module: product_electronic
-#: view:product.electronic.attribute:0
-msgid "Product Template Name"
-msgstr "Nombre de plantilla de producto"
-
-#. module: product_electronic
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"¡El nombre del objeto debe empezar con x_ y no puede contener ningún "
-"carácter especial!"
-
-#. module: product_electronic
-#: model:ir.model,name:product_electronic.model_product_electronic_attribute
-msgid "Product attributes"
-msgstr "Atributos de producto"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing data"
-msgstr "Datos de fabricación"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product reference"
-msgstr "Referencia del producto"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,name:0
-msgid "Attribute"
-msgstr "Atributo"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,product_id:0
-msgid "Product"
-msgstr "Producto"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,value:0
-msgid "Value"
-msgstr "Valor"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr "Datos de fabricación"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product name"
-msgstr "Nombre del producto"
-
-#. module: product_electronic
-#: view:product.product:0
-#: field:product.product,attribute_ids:0
-msgid "Attributes"
-msgstr "Atributos"
-
-#. module: product_electronic
-#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
-msgid "Products Attributes & Manufacturers"
-msgstr "Fabricantes y atributos de los productos"
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr "Nombre del fabricante del producto"
-
-#. module: product_electronic
-#: field:product.product,manufacturer:0
-msgid "Manufacturer"
-msgstr "Fabricante"
diff --git a/addons/product_manufacturer/i18n/et.po b/addons/product_manufacturer/i18n/et.po
deleted file mode 100644
index 2d9bd1740b9..00000000000
--- a/addons/product_manufacturer/i18n/et.po
+++ /dev/null
@@ -1,106 +0,0 @@
-# Estonian 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-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-06-25 18:10+0000\n"
-"Last-Translator: lyyser \n"
-"Language-Team: Estonian \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: product_electronic
-#: model:ir.module.module,description:product_electronic.module_meta_information
-msgid "A module that add manufacturers and attributes on the product form"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
-msgstr "Tootja tootekood"
-
-#. module: product_electronic
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Vigane XML vaate arhitektuurile!"
-
-#. module: product_electronic
-#: view:product.electronic.attribute:0
-msgid "Product Template Name"
-msgstr "Toote Malli nimi"
-
-#. module: product_electronic
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
-
-#. module: product_electronic
-#: model:ir.model,name:product_electronic.model_product_electronic_attribute
-msgid "Product attributes"
-msgstr "Toote omadused"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing data"
-msgstr "Tootmise andmed"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product reference"
-msgstr "Toote viide"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,name:0
-msgid "Attribute"
-msgstr "Atribuut"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,product_id:0
-msgid "Product"
-msgstr "Toode"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,value:0
-msgid "Value"
-msgstr "Väärtus"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr "Valmistusandmeid"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product name"
-msgstr "Toote nimi"
-
-#. module: product_electronic
-#: view:product.product:0
-#: field:product.product,attribute_ids:0
-msgid "Attributes"
-msgstr "Omadused"
-
-#. module: product_electronic
-#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
-msgid "Products Attributes & Manufacturers"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr "Toote nimetus"
-
-#. module: product_electronic
-#: field:product.product,manufacturer:0
-msgid "Manufacturer"
-msgstr "Tootja"
diff --git a/addons/product_manufacturer/i18n/fr.po b/addons/product_manufacturer/i18n/fr.po
deleted file mode 100644
index 0a50e49cd62..00000000000
--- a/addons/product_manufacturer/i18n/fr.po
+++ /dev/null
@@ -1,105 +0,0 @@
-# French 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-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-07-22 09:16+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: French \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: product_electronic
-#: model:ir.module.module,description:product_electronic.module_meta_information
-msgid "A module that add manufacturers and attributes on the product form"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.electronic.attribute:0
-msgid "Product Template Name"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: product_electronic
-#: model:ir.model,name:product_electronic.model_product_electronic_attribute
-msgid "Product attributes"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product reference"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.electronic.attribute,name:0
-msgid "Attribute"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.electronic.attribute,product_id:0
-msgid "Product"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.electronic.attribute,value:0
-msgid "Value"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product name"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-#: field:product.product,attribute_ids:0
-msgid "Attributes"
-msgstr ""
-
-#. module: product_electronic
-#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
-msgid "Products Attributes & Manufacturers"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer:0
-msgid "Manufacturer"
-msgstr ""
diff --git a/addons/product_manufacturer/i18n/fr_BE.po b/addons/product_manufacturer/i18n/fr_BE.po
index 41372e6597f..bcf9aabbe06 100644
--- a/addons/product_manufacturer/i18n/fr_BE.po
+++ b/addons/product_manufacturer/i18n/fr_BE.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-11-25 13:27:55+0000\n"
-"PO-Revision-Date: 2009-11-25 13:27:55+0000\n"
+"POT-Creation-Date: 2010-08-13 06:18:00+0000\n"
+"PO-Revision-Date: 2010-08-13 06:18:00+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -22,7 +22,7 @@ msgstr ""
#. module: product_manufacturer
#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
+msgid "Manufacturer Product Code"
msgstr ""
#. module: product_manufacturer
@@ -41,18 +41,14 @@ msgid "The Object name must start with x_ and not contain any special character
msgstr ""
#. module: product_manufacturer
-#: model:ir.model,name:product_manufacturer.model_product_electronic_attribute
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
msgid "Product attributes"
msgstr ""
#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product reference"
+msgid "Product Attributes"
msgstr ""
#. module: product_manufacturer
@@ -61,6 +57,7 @@ msgid "Attribute"
msgstr ""
#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
#: field:product.manufacturer.attribute,product_id:0
msgid "Product"
msgstr ""
@@ -70,16 +67,6 @@ msgstr ""
msgid "Value"
msgstr ""
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_manufacturer
-#: view:product.product:0
-msgid "Product name"
-msgstr ""
-
#. module: product_manufacturer
#: view:product.product:0
#: field:product.product,attribute_ids:0
@@ -93,10 +80,11 @@ msgstr ""
#. module: product_manufacturer
#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
+msgid "Manufacturer Product Name"
msgstr ""
#. module: product_manufacturer
+#: view:product.product:0
#: field:product.product,manufacturer:0
msgid "Manufacturer"
msgstr ""
diff --git a/addons/product_manufacturer/i18n/mn.po b/addons/product_manufacturer/i18n/mn.po
new file mode 100644
index 00000000000..04c5d6d22c4
--- /dev/null
+++ b/addons/product_manufacturer/i18n/mn.po
@@ -0,0 +1,97 @@
+# Mongolian 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-13 08:22+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-15 06:21+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 ""
+"Бүтээгдэхүүний дэлгэц дээр үйлдвэрлэгчийн мэдээлэл болон бусад атрибутуу "
+"нэмэх модуль"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pref:0
+msgid "Manufacturer Product Code"
+msgstr ""
+
+#. module: product_manufacturer
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Дэлгэцийн XML алдаатай!"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+msgid "Product Template Name"
+msgstr "Бүтээгдэхүүний загварын нэр"
+
+#. module: product_manufacturer
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Объектын нэрний эхлэл x_ байх ёстой бөгөөд бусад тусгай тэмдэгтийг агуулж "
+"болохгүй!"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
+msgid "Product attributes"
+msgstr "Барааны атрибутууд"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+#: view:product.product:0
+msgid "Product Attributes"
+msgstr ""
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,name:0
+msgid "Attribute"
+msgstr "Аттрибут"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
+#: field:product.manufacturer.attribute,product_id:0
+msgid "Product"
+msgstr "Бүтээгдэхүүн"
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,value:0
+msgid "Value"
+msgstr "Утга"
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,attribute_ids:0
+msgid "Attributes"
+msgstr "Аттрибутууд"
+
+#. module: product_manufacturer
+#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
+msgid "Products Attributes & Manufacturers"
+msgstr "Бүтээгдэхүүний Атрибут & Үйлдвэрлэгч"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pname:0
+msgid "Manufacturer Product Name"
+msgstr ""
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,manufacturer:0
+msgid "Manufacturer"
+msgstr "Үйлдвэрлэгч"
diff --git a/addons/product_manufacturer/i18n/product_manufacturer.pot b/addons/product_manufacturer/i18n/product_manufacturer.pot
new file mode 100644
index 00000000000..91281fdacd4
--- /dev/null
+++ b/addons/product_manufacturer/i18n/product_manufacturer.pot
@@ -0,0 +1,91 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_manufacturer
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-12 12:35:32+0000\n"
+"PO-Revision-Date: 2010-08-12 12:35:32+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: 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 ""
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pref:0
+msgid "Manufacturer Product Code"
+msgstr ""
+
+#. module: product_manufacturer
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+msgid "Product Template Name"
+msgstr ""
+
+#. module: product_manufacturer
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
+msgid "Product attributes"
+msgstr ""
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+#: view:product.product:0
+msgid "Product Attributes"
+msgstr ""
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,name:0
+msgid "Attribute"
+msgstr ""
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
+#: field:product.manufacturer.attribute,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,value:0
+msgid "Value"
+msgstr ""
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,attribute_ids:0
+msgid "Attributes"
+msgstr ""
+
+#. module: product_manufacturer
+#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
+msgid "Products Attributes & Manufacturers"
+msgstr ""
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pname:0
+msgid "Manufacturer Product Name"
+msgstr ""
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,manufacturer:0
+msgid "Manufacturer"
+msgstr ""
+
diff --git a/addons/product_manufacturer/i18n/ru.po b/addons/product_manufacturer/i18n/ru.po
deleted file mode 100644
index dbbb7e12456..00000000000
--- a/addons/product_manufacturer/i18n/ru.po
+++ /dev/null
@@ -1,107 +0,0 @@
-# Russian 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-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-07-10 20:09+0000\n"
-"Last-Translator: Pomazan Bogdan \n"
-"Language-Team: Russian \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: product_electronic
-#: model:ir.module.module,description:product_electronic.module_meta_information
-msgid "A module that add manufacturers and attributes on the product form"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Неправильный XML для просмотра структуры!"
-
-#. module: product_electronic
-#: view:product.electronic.attribute:0
-msgid "Product Template Name"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Название объекта должно начинаться с x_ и не должно содержать специальных "
-"символов !"
-
-#. module: product_electronic
-#: model:ir.model,name:product_electronic.model_product_electronic_attribute
-msgid "Product attributes"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product reference"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.electronic.attribute,name:0
-msgid "Attribute"
-msgstr "Атрибут"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,product_id:0
-msgid "Product"
-msgstr "Продукция"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,value:0
-msgid "Value"
-msgstr "Значение"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product name"
-msgstr "Название продукта"
-
-#. module: product_electronic
-#: view:product.product:0
-#: field:product.product,attribute_ids:0
-msgid "Attributes"
-msgstr "Атрибуты"
-
-#. module: product_electronic
-#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
-msgid "Products Attributes & Manufacturers"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer:0
-msgid "Manufacturer"
-msgstr "Производитель"
diff --git a/addons/product_manufacturer/i18n/sl.po b/addons/product_manufacturer/i18n/sl.po
deleted file mode 100644
index 5476b158c12..00000000000
--- a/addons/product_manufacturer/i18n/sl.po
+++ /dev/null
@@ -1,106 +0,0 @@
-# Slovenian 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-11-25 13:27+0000\n"
-"PO-Revision-Date: 2010-07-28 12:29+0000\n"
-"Last-Translator: Simon Vidmar \n"
-"Language-Team: Slovenian \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 04:08+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: product_electronic
-#: model:ir.module.module,description:product_electronic.module_meta_information
-msgid "A module that add manufacturers and attributes on the product form"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pref:0
-msgid "Manufacturer product code"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Neveljaven XML za arhitekturo pogleda!"
-
-#. module: product_electronic
-#: view:product.electronic.attribute:0
-msgid "Product Template Name"
-msgstr ""
-
-#. module: product_electronic
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Naziv objekta se mora začeti z 'x_' in ne sme vsebovati posebnih znakov!"
-
-#. module: product_electronic
-#: model:ir.model,name:product_electronic.model_product_electronic_attribute
-msgid "Product attributes"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product reference"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.electronic.attribute,name:0
-msgid "Attribute"
-msgstr "Lastnost"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,product_id:0
-msgid "Product"
-msgstr "Proizvod"
-
-#. module: product_electronic
-#: field:product.electronic.attribute,value:0
-msgid "Value"
-msgstr "Vrednost"
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Manufacturing Data"
-msgstr ""
-
-#. module: product_electronic
-#: view:product.product:0
-msgid "Product name"
-msgstr "Ime proizvoda"
-
-#. module: product_electronic
-#: view:product.product:0
-#: field:product.product,attribute_ids:0
-msgid "Attributes"
-msgstr "Lastnosti"
-
-#. module: product_electronic
-#: model:ir.module.module,shortdesc:product_electronic.module_meta_information
-msgid "Products Attributes & Manufacturers"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer_pname:0
-msgid "Manufacturer product name"
-msgstr ""
-
-#. module: product_electronic
-#: field:product.product,manufacturer:0
-msgid "Manufacturer"
-msgstr "Proizvajalec"
diff --git a/addons/product_manufacturer/product_manufacturer.py b/addons/product_manufacturer/product_manufacturer.py
index 969b4ce69cf..93f4a6f1a8e 100644
--- a/addons/product_manufacturer/product_manufacturer.py
+++ b/addons/product_manufacturer/product_manufacturer.py
@@ -1,5 +1,5 @@
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
#
@@ -14,15 +14,14 @@
# 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 .
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
class product_product(osv.osv):
_inherit = 'product.product'
- _name = 'product.product'
_columns = {
'manufacturer' : fields.many2one('res.partner', 'Manufacturer'),
'manufacturer_pname' : fields.char('Manufacturer Product Name', size=64),
@@ -41,6 +40,4 @@ class product_attribute(osv.osv):
}
product_attribute()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/product_manufacturer/product_manufacturer_view.xml b/addons/product_manufacturer/product_manufacturer_view.xml
index 1d1f952cd4d..0f901173caa 100644
--- a/addons/product_manufacturer/product_manufacturer_view.xml
+++ b/addons/product_manufacturer/product_manufacturer_view.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/addons/product_margin/__openerp__.py b/addons/product_margin/__openerp__.py
index 495c3a76b53..9a9a3f1ff55 100644
--- a/addons/product_margin/__openerp__.py
+++ b/addons/product_margin/__openerp__.py
@@ -30,11 +30,12 @@ and other interesting indicators based on invoices. The wizard to launch
the report has several options to help you get the data you need.
""",
'author': 'OpenERP SA',
- 'depends': ['base', 'product', 'account'],
+ 'depends': ['account'],
'update_xml': [
'security/ir.model.access.csv',
'wizard/product_margin_view.xml',
- 'product_margin_view.xml'],
+ 'product_margin_view.xml'
+ ],
'demo_xml': [],
'installable': True,
'active': False,
diff --git a/addons/product_margin/i18n/pt_BR.po b/addons/product_margin/i18n/pt_BR.po
index 9bc8077094a..fb7694393b5 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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:40+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 09108057cc2..0dbea91f674 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-11 05:12+0000\n"
+"PO-Revision-Date: 2010-08-29 08:49+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_margin
diff --git a/addons/product_margin/product_margin.py b/addons/product_margin/product_margin.py
index b5421d3798c..ad6ef680a98 100644
--- a/addons/product_margin/product_margin.py
+++ b/addons/product_margin/product_margin.py
@@ -19,28 +19,30 @@
#
##############################################################################
-from osv import fields,osv
-import pooler
-from tools import config
import time
+from osv import fields, osv
+
class product_product(osv.osv):
_inherit = "product.product"
+
def _product_margin(self, cr, uid, ids, field_names, arg, context=None):
res = {}
+ if context is None:
+ context = {}
for val in self.browse(cr, uid, ids,context=context):
res[val.id] = {}
- date_from=context.get('date_from', time.strftime('%Y-01-01'))
- date_to=context.get('date_to', time.strftime('%Y-12-31'))
- invoice_state=context.get('invoice_state', 'open_paid')
+ date_from = context.get('date_from', time.strftime('%Y-01-01'))
+ date_to = context.get('date_to', time.strftime('%Y-12-31'))
+ invoice_state = context.get('invoice_state', 'open_paid')
if 'date_from' in field_names:
res[val.id]['date_from']=date_from
if 'date_to' in field_names:
res[val.id]['date_to']=date_to
if 'invoice_state' in field_names:
res[val.id]['invoice_state']=invoice_state
- invoice_types=()
- states=()
+ invoice_types = ()
+ states = ()
if invoice_state=='paid':
states=('paid',)
elif invoice_state=='open_paid':
@@ -109,8 +111,7 @@ class product_product(osv.osv):
'total_margin_rate' : fields.function(_product_margin, method=True, type='float', string='Total Margin (%)', multi='margin',help="Total margin * 100 / Turnover"),
'expected_margin_rate' : fields.function(_product_margin, method=True, type='float', string='Expected Margin (%)', multi='margin',help="Expected margin * 100 / Expected Sale"),
}
+
product_product()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/product_margin/wizard/product_margin.py b/addons/product_margin/wizard/product_margin.py
index a717e54dcdb..811477571d4 100644
--- a/addons/product_margin/wizard/product_margin.py
+++ b/addons/product_margin/wizard/product_margin.py
@@ -18,15 +18,13 @@
# along with this program. If not, see .
#
##############################################################################
-import time
-from osv import osv
-from osv import fields
-import netsvc
import time
+
+from osv import fields, osv
from tools.translate import _
-class product_margin(osv.osv_memory):
+class product_margin(osv.osv_memory):
_name = 'product.margin'
_description = 'Product Margin'
_columns = {
@@ -39,9 +37,9 @@ class product_margin(osv.osv_memory):
],'Invoice State', select=True, required=True),
}
_defaults = {
- 'from_date': lambda *a:time.strftime('%Y-01-01'),
- 'to_date':lambda *a:time.strftime('%Y-12-31'),
- 'invoice_state': lambda *a:"open_paid",
+ 'from_date': time.strftime('%Y-01-01'),
+ 'to_date': time.strftime('%Y-12-31'),
+ 'invoice_state': "open_paid",
}
def action_open_window(self, cr, uid, ids, context=None):
"""
@@ -77,3 +75,5 @@ class product_margin(osv.osv_memory):
}
product_margin()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_margin/wizard/product_margin_view.xml b/addons/product_margin/wizard/product_margin_view.xml
index 404022e21fd..20a38148d3d 100644
--- a/addons/product_margin/wizard/product_margin_view.xml
+++ b/addons/product_margin/wizard/product_margin_view.xml
@@ -1,32 +1,32 @@
-
-
- product.margin.form
- product.margin
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ product.margin.form
+ product.margin
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ res_model="product.margin"
+ src_model="product.product"
+ view_mode="form"
+ target="new"
+ key2="client_action_multi"
+ id="product_margin_act_window"/>
+
+
\ No newline at end of file
diff --git a/addons/product_visible_discount/__init__.py b/addons/product_visible_discount/__init__.py
index 425f2bec537..4abaf54aa85 100644
--- a/addons/product_visible_discount/__init__.py
+++ b/addons/product_visible_discount/__init__.py
@@ -17,6 +17,7 @@
# along with this program. If not, see .
#
##############################################################################
-import product
+
+import product_visible_discount
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/product_visible_discount/__openerp__.py b/addons/product_visible_discount/__openerp__.py
index f767ea3526e..16f82646ccf 100644
--- a/addons/product_visible_discount/__openerp__.py
+++ b/addons/product_visible_discount/__openerp__.py
@@ -32,7 +32,7 @@
""",
"depends": ["sale"],
"demo_xml": [],
- "update_xml": ['product_view.xml'],
+ "update_xml": ['product_visible_discount_view.xml'],
"active": False,
"installable": True,
}
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/product_visible_discount/i18n/it.po b/addons/product_visible_discount/i18n/it.po
new file mode 100644
index 00000000000..7d3c08d60a5
--- /dev/null
+++ b/addons/product_visible_discount/i18n/it.po
@@ -0,0 +1,61 @@
+# Italian 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-18 07:07+0000\n"
+"Last-Translator: Nicola Riolini - Micronaet \n"
+"Language-Team: Italian \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-19 03:49+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valido per visualizzare l'Achitettura!"
+
+#. 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 ""
+"\n"
+" Questo modulo di permette di calcolare gli sconti sulle linee degli "
+"ordini di vendita e su quelle delle fatture basandosi su un listino del "
+"partner.\n"
+" Installandolo, una nuova spunta chiamata \"Sconto visibile\" è aggiunta "
+"alla videata del listino.\n"
+" Esempio:\n"
+" Per il prodotto PC1 e partner \"Asustek\": se il prezzo di "
+"listino=450, e il prezzo è calcolato usando il listino Asustek + 225\n"
+" Se c'è la spunta avremmo, sulla linea dell'ordine di vedita: Prezzo "
+"unitario=450, Sconto=50.00, Prezzo Netto=225\n"
+" Se non c'è la spunta avremmo, sulla linea dell'ordine e sulla linea "
+"della fattura: Prezzo unitario=225, Sconto=0.00, Prezzo netto=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Sconto Visibile"
diff --git a/addons/product_visible_discount/i18n/mn.po b/addons/product_visible_discount/i18n/mn.po
index 4e18f35ca23..d7271ebe6b4 100644
--- a/addons/product_visible_discount/i18n/mn.po
+++ b/addons/product_visible_discount/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-03-25 12:11+0000\n"
-"PO-Revision-Date: 2010-08-11 10:24+0000\n"
+"PO-Revision-Date: 2010-08-12 06:37+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-12 04:08+0000\n"
+"X-Launchpad-Export-Date: 2010-08-13 05:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_visible_discount
diff --git a/addons/product_visible_discount/product.py b/addons/product_visible_discount/product_visible_discount.py
similarity index 91%
rename from addons/product_visible_discount/product.py
rename to addons/product_visible_discount/product_visible_discount.py
index 53c6446c57e..6b1c60ca516 100644
--- a/addons/product_visible_discount/product.py
+++ b/addons/product_visible_discount/product_visible_discount.py
@@ -19,27 +19,24 @@
# along with this program. If not, see .
#
##############################################################################
+
from osv import fields, osv
-import pooler
-from tools import config
from osv.osv import except_osv
from tools.translate import _
class product_pricelist(osv.osv):
- _name = 'product.pricelist'
_inherit = 'product.pricelist'
_columns ={
- 'visible_discount':fields.boolean('Visible Discount'),
+ 'visible_discount': fields.boolean('Visible Discount'),
}
_defaults = {
'visible_discount': True,
- }
+ }
product_pricelist()
class sale_order_line(osv.osv):
- _name = "sale.order.line"
_inherit = "sale.order.line"
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
@@ -81,19 +78,12 @@ class sale_order_line(osv.osv):
return res
product = product_obj.browse(cr, uid, product, context)
-# product_tmpl_id = product.product_tmpl_id.id
-# pricetype_id = pricelist_obj.browse(cr, uid, pricelist).version_id[0].items_id[0].base
-# field_name = 'list_price'
-# product_read = self.pool.get('product.template').read(cr, uid, product_tmpl_id, [field_name], context)
-# list_price = product_read[field_name]
list_price = pricelist_obj.price_get(cr, uid, [pricelist],
product.id, qty or 1.0, partner_id, {'uom': uom,'date': date_order })
pricelists = pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
old_uom = product.uos_id or product.uom_id
-# new_list_price = product_uom_obj._compute_price(cr,
-# uid, old_uom.id, list_price, uom)
new_list_price = get_real_price(list_price, product.id, pricelist)
if(len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price[pricelist] != 0):
discount = (new_list_price - price) / new_list_price * 100
@@ -106,7 +96,6 @@ class sale_order_line(osv.osv):
sale_order_line()
class account_invoice_line(osv.osv):
- _name = "account.invoice.line"
_inherit = "account.invoice.line"
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context={}):
diff --git a/addons/product_visible_discount/product_view.xml b/addons/product_visible_discount/product_visible_discount_view.xml
similarity index 100%
rename from addons/product_visible_discount/product_view.xml
rename to addons/product_visible_discount/product_visible_discount_view.xml
diff --git a/addons/profile_accounting/i18n/ar.po b/addons/profile_accounting/i18n/ar.po
deleted file mode 100644
index 19259841475..00000000000
--- a/addons/profile_accounting/i18n/ar.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/bg.po b/addons/profile_accounting/i18n/bg.po
deleted file mode 100644
index 47d1099e578..00000000000
--- a/addons/profile_accounting/i18n/bg.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-04 05:51+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Името на обекта трябва да започва с \"x_\" и да не съдържа никакви специални "
-"символи!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Невалиден XML за преглед на архитектурата"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/bs.po b/addons/profile_accounting/i18n/bs.po
deleted file mode 100644
index 8f62b604215..00000000000
--- a/addons/profile_accounting/i18n/bs.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-24 18:24+0000\n"
-"Last-Translator: Miro Glavić \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Neodgovarajući XML za arhitekturu prikaza!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/ca.po b/addons/profile_accounting/i18n/ca.po
deleted file mode 100644
index ea7ba6ea4ff..00000000000
--- a/addons/profile_accounting/i18n/ca.po
+++ /dev/null
@@ -1,150 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:10+0000\n"
-"Last-Translator: Raimon Esteve (Zikzakmedia) \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Instal·leu més mòduls. Es proposen uns quants mòduls relacionats amb el "
-"perfil de comptabilitat que heu seleccionat. Els podreu instal·lar a partir "
-"dels nostres requisits."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
-"especial!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestió de serveis"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"El sistema de gestió de documentació d'OpenERP us permet emmagatzemar, "
-"navegar, classificar automàticament, buscar i visualitzar tot tipus de "
-"documents (documents interns, informes impresos, sistema de calendari). Obre "
-"un accés de FTP per a que els usuaris naveguin fàcilment pels documents "
-"associats."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Nom de model no vàlid en la definició de l'acció."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestió de recursos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Gestió dels pagaments a proveïdors"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Gestió d'actius"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Plans analítics múltiples"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Perfil comptabilitat : Instal·la mòduls extra"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Factura sobre entrades analítiques"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Perfil per a comptabilitat"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Ajuda a gestionar els pressupostos financers i analítics."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML invàlid per a la definició de la vista!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Pressupostos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instal·la"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instal·la mòdul extra"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Perfil per utilitzar només la comptabilitat"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Comptabilitat analítica"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Gestió de documents"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "perfil.comptabilitat.config.assistent_instal_mòduls"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Cancel·la"
diff --git a/addons/profile_accounting/i18n/cs.po b/addons/profile_accounting/i18n/cs.po
deleted file mode 100644
index 19259841475..00000000000
--- a/addons/profile_accounting/i18n/cs.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/de.po b/addons/profile_accounting/i18n/de.po
deleted file mode 100644
index 5f36d65453d..00000000000
--- a/addons/profile_accounting/i18n/de.po
+++ /dev/null
@@ -1,148 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:10+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:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Installiere weitere Module. Einige werden vorgeschlagen zum ausgewählten "
-"Profil Finanzen. Sie können diese nach Bedarf sukzessiv installieren."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Der Objekt Name muss mit einem x_ starten und darf keine Sonderzeichen "
-"beinhalten"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Abrechnung von Services"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"Das Dokumentenmanagement erlaubt Ihnen das Speichern, Browsen, Indexieren, "
-"Suchen und die Ansicht aller Arten von Dokumente (interne Dokumente, Bilder, "
-"Reports, Kalender). Es erlaubt einen FTP Zugang für die Benutzer um einfach "
-"im Dokumentenpool zu surfen."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Ungültiger Modellname in der Aktionsdefinition."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Ressourcenmanagement"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Zahlungen Lieferanten"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Vermögensverwaltung"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Multiple Planung"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Rechungswesen Profil : Installiert Extra Module"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Rechnungsstellung Analytische Konten"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Profile für Rechnungswesen"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Hilft bei der Auswahl der Budgets für Finanzkonten und Analysekonten"
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Fehlerhafter xml Code für diese Ansicht!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Bezeichnung"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Budgets"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Installieren"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Installiere Extra Module"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Profile für Rechnungswesen alleine"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Analytische Konten"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Dokumenten Management"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "profile.accounting.config.install_modules_wizard"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Abbrechen"
diff --git a/addons/profile_accounting/i18n/el.po b/addons/profile_accounting/i18n/el.po
deleted file mode 100644
index fef51fc2655..00000000000
--- a/addons/profile_accounting/i18n/el.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-06-15 07:21+0000\n"
-"Last-Translator: Panagiotis Kranidiotis \n"
-"Language-Team: nls@hellug.gr \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-Generator: Launchpad (build Unknown)\n"
-"X-Poedit-Country: GREECE\n"
-"X-Poedit-Language: Greek\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Εγκαταστήστε περισσότερα Αρθρώματα. Κάποια σας προτείνονται ανάλογα με το "
-"Προφίλ Λογιστικής που επιλέξατε. Μπορείτε να τα εγκαταστήσετε ανάλογα με τις "
-"ανάγκες σας."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Το όνομα πρέπει να ξεκινάει με x_ και να μην περιέχει ειδικούς χαρακτήρες!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Διαχείριση Υπηρεσιών"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"Το Σύστημα Διαχείρισης Εγγράφων του Open ERP σας επιτρέπει να ανοίγετε, να "
-"αποθηκεύετε, να εντοπίζετε και να ευρετηροποιείτε κάθε είδος εγγράφου "
-"(εσωτερικά έγγραφα, εκτυπωμένες αναφορές, ημερολόγια). Ανοίγει μια πρόσβαση "
-"FTP ώστε οι χρήστες να πλοηγούνται εύκολα στα σχετικά έγγραφα."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Διαχείριση Πόρων"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Διαχείριση Πληρωμών Προμηθευτών"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Διαχείριση Παγείων"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Προφίλ Λογιστικής: Εγκατάσταση Επιπλέον Αρθρωμάτων"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Τιμολόγηση στις Αναλυτικές Εγγραφές"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Προφίλ Λογιστικής"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Σας βοηθά να διαχειριστείτε οικονομικούς προϋπολογισμούς."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Όνομα"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Προϋπολογισμοί"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Εγκατάσταση"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Εγκατάσταση Επιπλέον Αρθρώματος"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Προφίλ Λογιστικής μόνο"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Διαχείριση Εγγράφων"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "profile.accounting.config.install_modules_wizard"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Ακύρωση"
diff --git a/addons/profile_accounting/i18n/es.po b/addons/profile_accounting/i18n/es.po
deleted file mode 100644
index d6061e7f4b5..00000000000
--- a/addons/profile_accounting/i18n/es.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:59+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Instale más módulos. Se proponen unos cuantos módulos relacionados con el "
-"perfil de contabilidad que ha seleccionado. Los podrá instalar a partir de "
-"nuestros requisitos."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-"especial!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestión de servicios"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"El sistema de gestión de la documentación de OpenERP le permite almacenar, "
-"navegar, clasificar automáticamente, buscar y visualizar todo tipo de "
-"documentos (documentos internos, informes impresos, sistema de calendario). "
-"Abre un acceso de FTP para que los usuarios naveguen fácilmente en los "
-"documentos asociados."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Nombre de modelo no válido en la definición de acción."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestión de recursos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Gestión de los pagos a proveedores"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Gestión de activos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Planes analíticos múltiples"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Perfil contabilidad : Instalar módulos extra"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Facturar sobre entradas analíticas"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Perfil para contabilidad"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Ayuda a gestionar los presupuestos financieros y analíticos."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "¡XML inválido para la definición de la vista!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Presupuestos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instalar"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instalar módulo extra"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Perfil para usar sólo la contabilidad"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Contabilidad analítica"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Gestión de documentos"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "perfil.contabilidad.config.asistente_instal_modulos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Cancelar"
diff --git a/addons/profile_accounting/i18n/es_AR.po b/addons/profile_accounting/i18n/es_AR.po
deleted file mode 100644
index a11670bdea6..00000000000
--- a/addons/profile_accounting/i18n/es_AR.po
+++ /dev/null
@@ -1,150 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.0\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-23 15:24+0000\n"
-"Last-Translator: Julieta Catalano \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Instalar más módulos. Algunos módulos son propuestos de acuerdo a el Perfil "
-"de cuentas que ha seleccionado. Podrá instalarlos de acuerdo a sus "
-"requerimientos."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-"especial!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestión de servicios"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"El sistema de gestión de la documentación de OpenERP le permite almacenar, "
-"navegar, indexar automáticamente, buscar y previsualizar todo tipo de "
-"documentos (documentos internos, informes impresos, sistema de calendario). "
-"Abre un acceso de FTP para que los usuarios naveguen fácilmente en los "
-"documentos de asociación."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestión de recursos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Gestión de los pagos a proveedores"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Gestión de activos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Planes analíticos múltiples"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Perfil contabilidad : Instalar módulos extra"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Facturar sobre entradas analíticas"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Perfil para Contabilidad"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Ayuda a gestionar los presupuestos financieros y analíticos."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML inválido para la definición de la vista!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Presupuestos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instalar"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instalar módulo extra"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Perfil de contabilidad solamente"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Contabilidad analítica"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Gestión de documentos"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "perfil.contabilidad.config.asistente_instal_modulos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Cambios"
diff --git a/addons/profile_accounting/i18n/et.po b/addons/profile_accounting/i18n/et.po
deleted file mode 100644
index 85e9ae2a164..00000000000
--- a/addons/profile_accounting/i18n/et.po
+++ /dev/null
@@ -1,145 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-09 19:14+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Teenuste haldus"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"Open ERP dokumendihaldussüsteem võimaldab sul säilitada, sirvida, "
-"automaatselt indekseerida, otsida ja eelvaadata kõiki dokumendiliike "
-"(sisemised dokumendid, prinditud aruandeid, kalendrisüsteemi). See avab "
-"kasutajatele FTP ligipääsu, et lihtsalt sirvida ühingu dokumente."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Vigane mudeli nimi toimingu definitsioonis."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Vahendite haldus"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Tarnijate maksehaldus"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Varahaldus"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Mitmekordsed analüütilised plaanid"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Raamatupidamisprofiil: Paigalda lisamooduleid"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Arve analüütiliste kirjete põhjal"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Profiil raamatupidamiseks"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Aitab sul hallata finants ja analüütilisi eelarveid"
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Vigane XML vaate arhitektuurile!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nimi"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Eelarved"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Paigalda"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Paigalda lisamoodul"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Ainult raamatupidamise profiil"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Analüütiline raamatupidamine"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Dokumendihaldus"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "profile.accounting.config.install_modules_wizard"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Loobu"
diff --git a/addons/profile_accounting/i18n/fr.po b/addons/profile_accounting/i18n/fr.po
deleted file mode 100644
index 1cb5918374b..00000000000
--- a/addons/profile_accounting/i18n/fr.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 16:01+0000\n"
-"Last-Translator: Christian Draux - reseaucerta.org \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
-"spéciaux !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestion des Services"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestion des Ressources"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML non valide pour l'architecture de la vue"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Installer"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Installer Module Supplémentaire"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Annuler"
diff --git a/addons/profile_accounting/i18n/hr.po b/addons/profile_accounting/i18n/hr.po
deleted file mode 100644
index 19259841475..00000000000
--- a/addons/profile_accounting/i18n/hr.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/hu.po b/addons/profile_accounting/i18n/hu.po
deleted file mode 100644
index 19259841475..00000000000
--- a/addons/profile_accounting/i18n/hu.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/id.po b/addons/profile_accounting/i18n/id.po
deleted file mode 100644
index 74b228a059a..00000000000
--- a/addons/profile_accounting/i18n/id.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-09 13:53+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/it.po b/addons/profile_accounting/i18n/it.po
deleted file mode 100644
index 72ae57e18ba..00000000000
--- a/addons/profile_accounting/i18n/it.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-04 05:52+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Il nome dell'oggetto deve iniziare per x_ e non deve contenere caratteri "
-"speciali!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestione Servizi"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestione Risorse"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML non valido per Visualizzazione Architettura!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Installa"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Installa Modulo Aggiuntivo"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Annulla"
diff --git a/addons/profile_accounting/i18n/ko.po b/addons/profile_accounting/i18n/ko.po
deleted file mode 100644
index b99e421f39e..00000000000
--- a/addons/profile_accounting/i18n/ko.po
+++ /dev/null
@@ -1,143 +0,0 @@
-# Korean translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2009.
-#
-msgid ""
-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: 2009-09-08 16:01+0000\n"
-"Last-Translator: ekodaq \n"
-"Language-Team: Korean \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr "추가 모듈들을 설치하십시오. 귀하가 선택한 계정 프로파일에 따라 몇몇 모듈들이 구성됩니다."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자가 포함되면 안됩니다."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "서비스 관리"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"문서 관리 시스템을 통해, 모든 종류의 문서를 인덱스, 검색 및 미;리보기할 수 있습니다 (내부 문서, 인쇄된 리포트, 카렌더). 협력 "
-"업체들의 문서를 쉽게 둘러볼 수 있도록 FTP 접속을 지원합니다."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "리소스 관리"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "공급자 결제 관리"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "자산 관리"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "다중 분석 플랜"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "회계 프로파일: 추가 모듈 설치"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "분석 엔트리에 따라 인보이스"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "회계 프로파일"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "재무 및 분석 예산 관리를 도와드립니다."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "이름"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "예산"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "설치"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "추가 모듈 설치"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "회계 전용 프로파일"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "분석 회계"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "문서 관리"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "취소"
diff --git a/addons/profile_accounting/i18n/lt.po b/addons/profile_accounting/i18n/lt.po
deleted file mode 100644
index 19259841475..00000000000
--- a/addons/profile_accounting/i18n/lt.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/nl.po b/addons/profile_accounting/i18n/nl.po
deleted file mode 100644
index 9bf538d5372..00000000000
--- a/addons/profile_accounting/i18n/nl.po
+++ /dev/null
@@ -1,149 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:12+0000\n"
-"Last-Translator: mga (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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Installeer extra modules. Een aantal modules zijn voorgesteld op basis van "
-"het door u gekozen 'Alleen boekhouden' profiel. U kunt ze installeren op "
-"basis van uw behoeften."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"De objectnaam moet beginnen met x_ en mag geen speciale tekens bevatten !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Servicebeheer"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"Met het documentbeheersysteem van OpenERP kunt u allerlei documenten "
-"(interne documenten, afgedrukte overzichten, agenda's) opslaan, "
-"doorbladeren, automatisch indexeren, zoeken en inzien.\r\n"
-"Het systeem maakt gebruik van FTP toegang zodat gebruikers eenvoudig bij de "
-"documenten kunnen komen."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Ongeldige modelnaam in de actie-definitie."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Resourcebeheer"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Crediteurenbeheer"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Eigendommenbeheer"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Meerdere kostenplaats-schema's"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "'Accounting' profiel: Installeer extra modules"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Factureren vanaf kostenplaatsen"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Profiel voor 'Accounting'"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Helpt u met beheer van financiële- en kostenplaats-budgetten"
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Ongeldige XML voor weergave!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Naam"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Budgetten"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Installeren"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Installeer extra module"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "'Alleen accounting' profiel"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Kostenplaatsen"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Documentbeheer"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "profile.accounting.config.install_modules_wizard"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Annuleren"
diff --git a/addons/profile_accounting/i18n/nl_BE.po b/addons/profile_accounting/i18n/nl_BE.po
deleted file mode 100644
index a00d58ac2a0..00000000000
--- a/addons/profile_accounting/i18n/nl_BE.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.0\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-20 09:54+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"De objectnaam moet beginnen met x_ en mag geen speciale karakters bevatten !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/pl.po b/addons/profile_accounting/i18n/pl.po
deleted file mode 100644
index 07696950ea9..00000000000
--- a/addons/profile_accounting/i18n/pl.po
+++ /dev/null
@@ -1,148 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:12+0000\n"
-"Last-Translator: mga (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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-"Instaluj więcej modułów. Proponujemy moduły zalecane do profilu księgowego, "
-"który wybrałeś. Będziesz mógł je instalować według naszych wskazań."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
-"specjalnych !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Zarządzanie usługami"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-"System zarządzania dokumentami w OpenERP pozwala przechowywać, przeglądać, "
-"automatycznie indeksować, przeszukiwać i podglądać wszystkie rodzaje "
-"dokumentów (dokumenty wewnętrzne, drukowane raporty, kalendarze). Otwiera on "
-"dla użytkowników dostęp FTP do łatwego przeglądania powiązanych dokumentów."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Zarządzanie zasobami"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Zarządzanie płatnościami dla dostawców"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Środki trwałe"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Planowanie analityczne"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Profil księgowy: Instaluj dodatkowe moduły"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Faktura z zapisów analitycznych"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Profil dla księgowości"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Pomaga zarządzać budżetami finansowymi i analitycznymi."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nazwa"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Budżety"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instaluj"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instaluj dodatkowe moduły"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Profil tylko księgowy"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Księgowość analityczna"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Zarządzanie dokumentami"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Anuluj"
diff --git a/addons/profile_accounting/i18n/profile_accounting.pot b/addons/profile_accounting/i18n/profile_accounting.pot
deleted file mode 100644
index 1fe7ca5eb6f..00000000000
--- a/addons/profile_accounting/i18n/profile_accounting.pot
+++ /dev/null
@@ -1,132 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01:51+0000\n"
-"PO-Revision-Date: 2009-08-28 16:01:51+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: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid "Install more modules. A few modules are proposed according to the Account Profile you selected. You will be able to install them based on our requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "The Document Management System of Open ERP allows you to store, browse, automatically index, search and preview all kind of documents (internal documents, printed reports, calendar system). It opens an FTP access for the users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
-
diff --git a/addons/profile_accounting/i18n/pt.po b/addons/profile_accounting/i18n/pt.po
deleted file mode 100644
index da22f9366ae..00000000000
--- a/addons/profile_accounting/i18n/pt.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 16:33+0000\n"
-"Last-Translator: Madalena_prime \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"O nome do objecto deve começar com x_ e não pode conter um carácter especial!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Gestão de serviços"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Gestão de recursos"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML inválido para a arquitectura de vista"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instalar"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instalar módulos extras"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Cancelar"
diff --git a/addons/profile_accounting/i18n/pt_BR.po b/addons/profile_accounting/i18n/pt_BR.po
deleted file mode 100644
index 8bc607900e6..00000000000
--- a/addons/profile_accounting/i18n/pt_BR.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:12+0000\n"
-"Last-Translator: pedrobom \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"O nome do objeto precisa iniciar com x_ e não conter nenhum caracter "
-"especial!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Invalido XML para Arquitetura da View"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Orçamentos"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Perfil apenas contábil"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Gestão de Documentos"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/ro.po b/addons/profile_accounting/i18n/ro.po
deleted file mode 100644
index 72c896084d7..00000000000
--- a/addons/profile_accounting/i18n/ro.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-11-17 10:59+0000\n"
-"Last-Translator: Cristi Nistor \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Numele obiectului trebuie să înceapă cu x_ și nu trebuie să conțină nici un "
-"caracter special !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Administrare Resurse"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Administrare Plată Furnizori"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "Administrare Mijloc Fix"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "Planuri Multiple Analitice"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "Profil Contabilitate: Instalează Module Suplimentare"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "Factură pentru Intrăro Analitice"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "Profil pentru Contabilitate"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "Te ajută să administrezi bugete financiare şi analitice."
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Structură XML invalidă pentru Vizualizare Arhitectură"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Nume"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Bugete"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Instalează"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Instalează Module Suplimentare"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "Profil doar contabilitate"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Contabilitate analitică"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Administrare Document"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Anulează"
diff --git a/addons/profile_accounting/i18n/ru.po b/addons/profile_accounting/i18n/ru.po
deleted file mode 100644
index cbd39f7f2af..00000000000
--- a/addons/profile_accounting/i18n/ru.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:12+0000\n"
-"Last-Translator: mga (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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Название объекта должно начинаться с x_ и не должно содержать специальных "
-"символов !"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Управление услугами"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Недопустимое имя модели в определении действия."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Управление ресурсами"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Неправильный XML для просмотра архитектуры!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Название"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Бюджеты"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Установить"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Установить дополнительные модули"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Бухг. аналитика"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Управление документами"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Отмена"
diff --git a/addons/profile_accounting/i18n/sl.po b/addons/profile_accounting/i18n/sl.po
deleted file mode 100644
index e13c0c121bb..00000000000
--- a/addons/profile_accounting/i18n/sl.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:12+0000\n"
-"Last-Translator: mga (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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Naziv objekta se mora začeti z 'x_' in ne sme vsebovati posebnih znakov."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Upravljanje storitev"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Napačno ime modela v definiciji dejanja."
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Upravljanje virov"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Neveljaven XML za arhitekturo pogleda."
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Ime"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Proračuni"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Namesti"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Analitično knjigovodstvo"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Upravljanje dokumentov"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Prekliči"
diff --git a/addons/profile_accounting/i18n/sq.po b/addons/profile_accounting/i18n/sq.po
deleted file mode 100644
index 53cdaaf48be..00000000000
--- a/addons/profile_accounting/i18n/sq.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Albanian 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-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-02 15:05+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Albanian \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/sv.po b/addons/profile_accounting/i18n/sv.po
deleted file mode 100644
index 088d8c6f515..00000000000
--- a/addons/profile_accounting/i18n/sv.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 08:37+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Objektnamnet måste börja med x_ och får inte innehålla några specialtecken!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/tlh.po b/addons/profile_accounting/i18n/tlh.po
deleted file mode 100644
index 226d20c4445..00000000000
--- a/addons/profile_accounting/i18n/tlh.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-02-03 06:26+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/tr.po b/addons/profile_accounting/i18n/tr.po
deleted file mode 100644
index ecb6a4791a8..00000000000
--- a/addons/profile_accounting/i18n/tr.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 05:01+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "Tedarikçi Ödeme Yönetimi"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Görüntüleme mimarisi için Geçersiz XML"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "Adı"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "Bütçeler"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "Muhasebe Analizi"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "Döküman Yönetimi"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "İptal"
diff --git a/addons/profile_accounting/i18n/uk.po b/addons/profile_accounting/i18n/uk.po
deleted file mode 100644
index 65a98229dfa..00000000000
--- a/addons/profile_accounting/i18n/uk.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 15:27+0000\n"
-"Last-Translator: Eugene Babiy \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"Назва об'єкту має починатися з x_ і не містити ніяких спеціальних символів!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "Управління послугами"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "Управління ресурсами"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "Неправильний XML для Архітектури Вигляду!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "Встановити"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "Встановити додатковий модуль"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "Скасувати"
diff --git a/addons/profile_accounting/i18n/vi.po b/addons/profile_accounting/i18n/vi.po
deleted file mode 100644
index 0826da82828..00000000000
--- a/addons/profile_accounting/i18n/vi.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# Vietnamese 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-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-02 15:06+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Vietnamese \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-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/i18n/zh_CN.po b/addons/profile_accounting/i18n/zh_CN.po
deleted file mode 100644
index 428447acb86..00000000000
--- a/addons/profile_accounting/i18n/zh_CN.po
+++ /dev/null
@@ -1,143 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 09:13+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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr "根据你选择的会计配置.有几个模块是被推荐的根据这你将完成安装."
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr "服务管理"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr "系统文档管理允许你储存,浏览,自动建立索引,查找和预览各种文档."
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "在这动作定义中有无效的模块名"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr "资源管理"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr "供应商付款管理"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr "资产管理"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr "多个辅助核算方案"
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr "会计配置:安装额外的模块"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr "辅助核算凭证的发票"
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr "会计配置"
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr "帮助你管理财务和核算预算"
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "无效XML视图结构!"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr "名称"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr "预算"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr "安装"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr "安装额外的模块"
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr "会计配置"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr "核算会计"
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr "文档管理"
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr "profile.accounting.config.install_modules_wizard"
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr "取消"
-
-#~ msgid "Accounting Management"
-#~ msgstr "会计管理"
diff --git a/addons/profile_accounting/i18n/zh_TW.po b/addons/profile_accounting/i18n/zh_TW.po
deleted file mode 100644
index 1fa7ba9131e..00000000000
--- a/addons/profile_accounting/i18n/zh_TW.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * profile_accounting
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-01-30 13: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-12 03:41+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
-
-#. module: profile_accounting
-#: model:ir.actions.todo,note:profile_accounting.config_install_wizard
-msgid ""
-"Install more modules. A few modules are proposed according to the Account "
-"Profile you selected. You will be able to install them based on our "
-"requirements."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Services Management"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,board_document:0
-msgid ""
-"The Document Management System of Open ERP allows you to store, browse, "
-"automatically index, search and preview all kind of documents (internal "
-"documents, printed reports, calendar system). It opens an FTP access for the "
-"users to easily browse association's document."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Resources Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_payment:0
-msgid "Suppliers Payment Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_asset:0
-msgid "Asset Management"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
-msgid "Multiple Analytic Plans"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
-msgid "Accounting Profile : Install Extra Modules"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
-msgid "Invoice on Analytic Entries"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,description:profile_accounting.module_meta_information
-msgid "Profile for Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: help:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Helps you to manage financial and analytic budgets."
-msgstr ""
-
-#. module: profile_accounting
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,name:0
-msgid "Name"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_budget:0
-msgid "Budgets"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Install Extra Module"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
-msgid "Accounting only profile"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
-msgid "Analytic Accounting"
-msgstr ""
-
-#. module: profile_accounting
-#: field:profile.accounting.config.install_modules_wizard,board_document:0
-msgid "Document Management"
-msgstr ""
-
-#. module: profile_accounting
-#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
-msgid "profile.accounting.config.install_modules_wizard"
-msgstr ""
-
-#. module: profile_accounting
-#: view:profile.accounting.config.install_modules_wizard:0
-msgid "Cancel"
-msgstr ""
diff --git a/addons/profile_accounting/profile_accounting.py b/addons/profile_accounting/profile_accounting.py
deleted file mode 100644
index d130deb41b4..00000000000
--- a/addons/profile_accounting/profile_accounting.py
+++ /dev/null
@@ -1,40 +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 .
-#
-##############################################################################
-
-from osv import fields, osv
-import pooler
-
-class profile_accounting_config_install_modules_wizard(osv.osv_memory):
- _name='profile.accounting.config.install_modules_wizard'
- _inherit = 'res.config.installer'
-
- _columns = {
- 'account_analytic_analysis':fields.boolean('Analytic Accounting'),
- 'account_analytic_plans':fields.boolean('Multiple Analytic Plans'),
- 'account_payment':fields.boolean('Suppliers Payment Management'),
- 'account_asset':fields.boolean('Asset Management'),
- 'hr_timesheet_invoice':fields.boolean('Invoice on Analytic Entries'),
- 'account_budget':fields.boolean('Budgets', help="Helps you to manage financial and analytic budgets."),
- 'board_document':fields.boolean('Document Management',help= "The Document Management System of OpenERP allows you to store, browse, automatically index, search and preview all kind of documents (internal documents, printed reports, calendar system). It opens an FTP access for the users to easily browse association's document."),
- }
-profile_accounting_config_install_modules_wizard()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/profile_accounting/profile_accounting.xml b/addons/profile_accounting/profile_accounting.xml
deleted file mode 100644
index f9b143e10f4..00000000000
--- a/addons/profile_accounting/profile_accounting.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
- Accounting Profile : Install extra modules
- profile.accounting.config.install_modules_wizard
- form
-
-
-
-
- Install Extra Modules
-
-
-
-
-
- Install more modules. A few modules are proposed according to the Account Profile you selected. You will be able to install them based on our requirements.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Accounting Profile : Install Extra Modules
- ir.actions.act_window
- profile.accounting.config.install_modules_wizard
-
- form
- form
- new
-
-
-
-
- 3
-
-
- ir.actions.todo
- accounting_installer_action_replace
- tree
-
-
-
-
-
-
-
-
-
diff --git a/addons/profile_accounting/security/ir.model.access.csv b/addons/profile_accounting/security/ir.model.access.csv
deleted file mode 100644
index d60aaef3dc2..00000000000
--- a/addons/profile_accounting/security/ir.model.access.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_profile_accounting_wizard_install","profile accounting wizard install","model_profile_accounting_config_install_modules_wizard","base.group_system",1,1,1,1
diff --git a/addons/profile_tools/installer.py b/addons/profile_tools/installer.py
index 4037b073319..1a793352b6e 100644
--- a/addons/profile_tools/installer.py
+++ b/addons/profile_tools/installer.py
@@ -25,15 +25,14 @@ class misc_tools_installer(osv.osv_memory):
_inherit = 'res.config.installer'
_columns = {
- # Tools
- 'lunch':fields.boolean('Lunch Orders'),
- 'subscription':fields.boolean('Recurring Documents'),
- 'survey':fields.boolean('Survey'),
- 'audittrail':fields.boolean('Audit Trail'),
- }
+ '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'),
+ }
_defaults = {
'lunch': True,
- }
-
+ }
+
misc_tools_installer()
diff --git a/addons/profile_tools/misc_tools_installer.xml b/addons/profile_tools/misc_tools_installer.xml
index 69250f0dcf1..64bb428e278 100644
--- a/addons/profile_tools/misc_tools_installer.xml
+++ b/addons/profile_tools/misc_tools_installer.xml
@@ -19,8 +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 a few useful applications which, while they do not directly contribute to your business, can help you to improve your organization.
Configure
diff --git a/addons/project/__init__.py b/addons/project/__init__.py
index 3f65abca376..142cd98e485 100644
--- a/addons/project/__init__.py
+++ b/addons/project/__init__.py
@@ -22,7 +22,6 @@
import project
import company
import installer
-import project_mailgate
import report
import wizard
import res_partner
diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py
index 0fd8d3a0c04..b0e3880c243 100644
--- a/addons/project/__openerp__.py
+++ b/addons/project/__openerp__.py
@@ -26,7 +26,7 @@
"author": "OpenERP SA",
"website": "http://www.openerp.com",
"category": "Generic Modules/Projects & Services",
- "depends": ["product", "analytic", "mail_gateway", "board"],
+ "depends": ["product", "analytic", "board"],
"description": """Project management module tracks multi-level projects, tasks,
work done on tasks, eso. It is able to render planning, order tasks, eso.
Dashboard for project members that includes:
@@ -55,9 +55,9 @@ work done on tasks, eso. It is able to render planning, order tasks, eso.
'board_project_demo.xml',
],
'test':[
- 'test/test_project.yml',
- 'test/test_project_delegation.yml',
- ],
+ 'test/test_project.yml',
+ 'test/test_project_delegation.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0075116868317',
diff --git a/addons/project/board_project_demo.xml b/addons/project/board_project_demo.xml
index 99c9c4a23ff..6a063405ff3 100644
--- a/addons/project/board_project_demo.xml
+++ b/addons/project/board_project_demo.xml
@@ -1,28 +1,20 @@
-
+
-
-
-
+
Don't forget the new development policies.
Project
-
+
diff --git a/addons/project/board_project_manager_view.xml b/addons/project/board_project_manager_view.xml
index f62c292e779..76c40324d31 100644
--- a/addons/project/board_project_manager_view.xml
+++ b/addons/project/board_project_manager_view.xml
@@ -13,14 +13,6 @@
-
-
-
-
-
-
-
-
board.project.manager.form
board.board
diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml
index db2f09963e8..661a67f561d 100644
--- a/addons/project/board_project_view.xml
+++ b/addons/project/board_project_view.xml
@@ -89,15 +89,6 @@
-
-
board.project.form
board.board
@@ -146,5 +137,10 @@
parent="next_id_86"
sequence="1"/>
+
+
diff --git a/addons/project/i18n/it.po b/addons/project/i18n/it.po
index c004d29a536..b18fbca2fb6 100644
--- a/addons/project/i18n/it.po
+++ b/addons/project/i18n/it.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:18+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-17 09:52+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:40+0000\n"
+"X-Launchpad-Export-Date: 2010-08-18 10:31+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@@ -540,7 +540,7 @@ msgstr "Esegui Fatturazione"
#. module: project
#: model:process.transition,name:project.process_transition_draftopentask0
msgid "Draft Open task"
-msgstr ""
+msgstr "Bozza di attività aperta"
#. module: project
#: view:project.project:0
@@ -855,6 +855,8 @@ msgid ""
"If you have [?] in the project name, it means there are no analytic account "
"linked to this project."
msgstr ""
+"Se hai [?] nel nome progetto, significa che non ci sono conti analitici "
+"collegati al progetto."
#. module: project
#: help:project.project,planned_hours:0
diff --git a/addons/project/i18n/lt.po b/addons/project/i18n/lt.po
index 69ac74ef225..f3dab26d1eb 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-11 05:45+0000\n"
+"PO-Revision-Date: 2010-08-29 08:52+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-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/i18n/ru.po b/addons/project/i18n/ru.po
index 6667d241c97..2350b40a3ea 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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 10: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:41+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+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 0e5af8da6fc..4a2d0749c73 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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 10:16+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-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/installer.py b/addons/project/installer.py
index 23ab9630570..53a94dd7039 100644
--- a/addons/project/installer.py
+++ b/addons/project/installer.py
@@ -54,11 +54,11 @@ class project_installer(osv.osv_memory):
help="Embeds the 'Getting Things Done concepts' into OpenERP's "
"project management."),
}
-
+
_defaults={
- 'project_crm': True,
- }
-
+ 'project_crm': True,
+ }
+
project_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project/project.py b/addons/project/project.py
index fbc1f8ddf6a..ffba90d55c9 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -21,7 +21,7 @@
from lxml import etree
import time
-from datetime import date, datetime
+from datetime import datetime, date
from tools.translate import _
from osv import fields, osv
@@ -163,7 +163,7 @@ class project(osv.osv):
'complete_name': fields.function(_complete_name, method=True, string="Project Name", type='char', size=250),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the project without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
- 'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc."),
+ 'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
'priority': fields.integer('Sequence', help="Gives the sequence order when displaying a list of task"),
'warn_manager': fields.boolean('Warn Manager', help="If you check this field, the project manager will receive a request each time a task is completed by his team.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members', help="Project's member. Not used in any computation, just for information purpose.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
@@ -257,11 +257,19 @@ class project(osv.osv):
task_obj = self.pool.get('project.task')
result = []
for proj in self.browse(cr, uid, ids, context=context):
- parent_id = context.get('parent_id', False) # check me where to pass context for parent id ??
+ parent_id = context.get('parent_id', False)
context.update({'analytic_project_copy': True})
+ new_date_start = time.strftime('%Y-%m-%d')
+ new_date_end = False
+ if proj.date_start and proj.date:
+ start_date = date(*time.strptime(proj.date_start,'%Y-%m-%d')[:3])
+ end_date = date(*time.strptime(proj.date,'%Y-%m-%d')[:3])
+ new_date_end = (datetime(*time.strptime(new_date_start,'%Y-%m-%d')[:3])+(end_date-start_date)).strftime('%Y-%m-%d')
new_id = project_obj.copy(cr, uid, proj.id, default = {
'name': proj.name +_(' (copy)'),
'state':'open',
+ 'date_start':new_date_start,
+ 'date':new_date_end,
'parent_id':parent_id}, context=context)
result.append(new_id)
cr.execute('select id from project_task where project_id=%s', (proj.id,))
@@ -275,7 +283,7 @@ class project(osv.osv):
res_id = result[0]
form_view_id = data_obj._get_id(cr, uid, 'project', 'edit_project')
form_view = data_obj.read(cr, uid, form_view_id, ['res_id'])
- tree_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_list')
+ tree_view_id = data_obj._get_id(cr, uid, 'project', 'view_project')
tree_view = data_obj.read(cr, uid, tree_view_id, ['res_id'])
search_view_id = data_obj._get_id(cr, uid, 'project', 'view_project_project_filter')
search_view = data_obj.read(cr, uid, search_view_id, ['res_id'])
@@ -290,7 +298,7 @@ class project(osv.osv):
'type': 'ir.actions.act_window',
'search_view_id': search_view['res_id'],
'nodestroy': True
- }
+ }
# set active value for a project, its sub projects and its tasks
def setActive(self, cr, uid, ids, value=True, context=None):
@@ -308,6 +316,13 @@ class project(osv.osv):
project()
+class users(osv.osv):
+ _inherit = 'res.users'
+ _columns = {
+ 'context_project_id': fields.many2one('project.project', 'Project')
+ }
+users()
+
class task(osv.osv):
_name = "project.task"
_description = "Task"
@@ -365,10 +380,6 @@ class task(osv.osv):
return int(context['project_id'])
return False
- #_sql_constraints = [
- # ('remaining_hours', 'CHECK (remaining_hours>=0)', 'Please increase and review remaining hours ! It can not be smaller than 0.'),
- #]
-
def copy_data(self, cr, uid, id, default={}, context=None):
default = default or {}
default.update({'work_ids':[], 'date_start': False, 'date_end': False, 'date_deadline': False})
@@ -434,6 +445,7 @@ class task(osv.osv):
'sequence': 10,
'active': True,
'project_id': _default_project,
+ 'user_id': lambda obj, cr, uid, context: uid,
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c)
}
@@ -524,7 +536,7 @@ class task(osv.osv):
'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
@@ -747,8 +759,8 @@ class config_compute_remaining(osv.osv_memory):
})
task_obj.write(cr, uid, [task.id], {'state': 'open'})
return {
- 'type': 'ir.actions.act_window_close',
- }
+ 'type': 'ir.actions.act_window_close',
+ }
config_compute_remaining()
@@ -778,16 +790,6 @@ class message(osv.osv):
}
message()
-
-class users(osv.osv):
- _inherit = 'res.users'
- _description = "Users"
- _columns = {
- 'context_project_id': fields.many2one('project.project', 'Project')
- }
-
-users()
-
class account_analytic_account(osv.osv):
_inherit = 'account.analytic.account'
diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml
index dd6708337e8..b54576ff391 100644
--- a/addons/project/project_data.xml
+++ b/addons/project/project_data.xml
@@ -15,9 +15,9 @@
project.task
-
+
Projects
3
diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml
index 0ce0e37a327..a8593bca9b8 100644
--- a/addons/project/project_demo.xml
+++ b/addons/project/project_demo.xml
@@ -30,7 +30,7 @@
1
- Open ERP Integration
+ OpenERP Integration
diff --git a/addons/project/project_mailgate.py b/addons/project/project_mailgate.py
deleted file mode 100644
index 8c1004b52fa..00000000000
--- a/addons/project/project_mailgate.py
+++ /dev/null
@@ -1,86 +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 .
-#
-##############################################################################
-
-from osv import fields,osv
-
-class project_tasks(osv.osv):
- _name = "project.task"
- _inherit = "project.task"
-
- def msg_new(self, cr, uid, msg):
- mailgate_obj = self.pool.get('mail.gateway')
- msg_body = mailgate_obj.msg_body_get(msg)
- data = {
- 'name': msg['Subject'],
- 'description': msg_body['body'],
- 'planned_hours' : 0.0,
- 'project_id': 1, #TODO : get project id from message
- }
- res = mailgate_obj.partner_get(cr, uid, msg['From'])
- if res:
- data.update(res)
- res = self.create(cr, uid, data)
- return res
-
- def msg_update(self, cr, uid, id, msg, data={}, default_act='pending'):
- mailgate_obj = self.pool.get('mail.gateway')
- msg_actions, body_data = mailgate_obj.msg_act_get(msg)
- data.update({
- 'description': body_data,
- })
- act = 'do_'+default_act
- if 'state' in msg_actions:
- if msg_actions['state'] in ['draft','close','cancel','open','pending']:
- act = 'do_' + msg_actions['state']
-
- for k1,k2 in [('cost','planned_hours')]:
- try:
- data[k2] = float(msg_actions[k1])
- except:
- pass
-
- if 'priority' in msg_actions:
- if msg_actions['priority'] in ('1','2','3','4','5'):
- data['priority'] = msg_actions['priority']
-
- self.write(cr, uid, [id], data)
- getattr(self,act)(cr, uid, [id])
- return True
-
- def message_followers(self, cr, uid, ids, context=None):
- res = []
- if isinstance(ids, (str, int, long)):
- select = [ids]
- else:
- select = ids
- for task in self.browse(cr, uid, select):
- user_email = (task.user_id and task.user_id.address_id and task.user_id.address_id.email) or False
- res += [(user_email, False, False, task.priority)]
- if isinstance(ids, (str, int, long)):
- return len(res) and res[0] or False
- return res
-
- def msg_send(self, cr, uid, id, *args, **argv):
- return True
-
-project_tasks()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 82b88716421..154c2f28935 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -1,7 +1,7 @@
-
+
-
+
@@ -91,24 +91,6 @@
-
- project.project.list
- project.project
- tree
-
-
-
-
-
-
-
-
-
-
-
-
-
-
project.project.select
project.project
@@ -119,7 +101,7 @@
-
+
@@ -127,9 +109,10 @@
-
-
+
+
+
@@ -176,8 +159,6 @@
[('state','=','template')]
-
-
project.task.work.form
@@ -418,7 +399,8 @@
-
+
@@ -427,22 +409,24 @@
-
+
-
+
+
+
+
+
-
-
@@ -656,6 +640,6 @@ Issues like bugs in a system, client complain, materials breakdown are collected
-
+
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index 06ad777069e..f0cfb181f4a 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -41,7 +41,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 2041eda3651..1a1a3f09daa 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -29,6 +29,5 @@
"access_project_vs_hours_manager","project.vs.hours.manager","model_project_vs_hours","project.group_project_manager",1,1,1,1
"access_account_analytic_account_system","account.analytic.account system","analytic.model_account_analytic_account","base.group_system",1,0,0,0
"access_project_vs_hours_system","project.vs.hours.system","model_project_vs_hours","base.group_system",1,0,0,0
-"mail_gateway_mailgate_message_project_user","mail_gateway.mailgate.message user","mail_gateway.model_mailgate_message","project.group_project_user",1,1,1,0
"access_project_task_sale_user","project.task salesman","model_project_task","base.group_sale_salesman",1,0,0,0
"access_project_project_sale_user","project.project salesman","model_project_project","base.group_sale_salesman",1,0,0,0
diff --git a/addons/project/wizard/project_close_task.py b/addons/project/wizard/project_close_task.py
index c82615e9e63..eb5589f2e3a 100644
--- a/addons/project/wizard/project_close_task.py
+++ b/addons/project/wizard/project_close_task.py
@@ -35,7 +35,7 @@ class project_close_task(osv.osv_memory):
'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:
@@ -48,7 +48,7 @@ class project_close_task(osv.osv_memory):
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 = {}
@@ -72,8 +72,8 @@ class project_close_task(osv.osv_memory):
'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})
@@ -87,14 +87,14 @@ class project_close_task(osv.osv_memory):
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)
@@ -112,18 +112,20 @@ class project_close_task(osv.osv_memory):
'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 '')
- email(from_adr, to_adr, subject, body.encode('utf-8'), email_bcc=[from_adr])
+ 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()
diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py
index 6951a900008..535d527f45b 100644
--- a/addons/project/wizard/project_task_delegate.py
+++ b/addons/project/wizard/project_task_delegate.py
@@ -35,7 +35,8 @@ class project_task_delegate(osv.osv_memory):
'new_task_description': fields.text('New Task Description', help="Reinclude the description of the task in the task of the user"),
'planned_hours': fields.float('Planned Hours', help="Estimated time to close this task by the delegated user"),
'planned_hours_me': fields.float('Hours to Validate', required=True, help="Estimated time for you to validate the work done by the user to whom you delegate this task"),
- '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"), }
+ '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):
if context is None:
@@ -85,7 +86,7 @@ class project_task_delegate(osv.osv_memory):
'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
@@ -114,7 +115,7 @@ class project_task_delegate(osv.osv_memory):
res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
return res
-
+
def validate(self, cr, uid, ids, context=None):
if context is None:
context = {}
diff --git a/addons/project_caldav/project_caldav.py b/addons/project_caldav/project_caldav.py
index 65e61c6e4cd..ea6c02bc2cb 100644
--- a/addons/project_caldav/project_caldav.py
+++ b/addons/project_caldav/project_caldav.py
@@ -21,13 +21,19 @@
from osv import fields, osv
from caldav import calendar
+from datetime import datetime
+
+from project.project import task as base_project_task
class project_task(osv.osv):
_name = "project.task"
_inherit = ["calendar.todo", "project.task"]
_columns = {
+ # force inherit from project.project_task so that
+ # calendar.todo.active is masked oute
+ 'active': base_project_task._columns['active'],
'write_date': fields.datetime('Write Date'),
- 'create_date': fields.datetime('Create Date'),
+ 'create_date': fields.datetime('Create Date', readonly=True),
'attendee_ids': fields.many2many('calendar.attendee', \
'task_attendee_rel', 'task_id', 'attendee_id', 'Attendees'),
'state': fields.selection([('draft', 'Draft'),('open', 'In Progress'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True, required=True,
diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py
index 1707c1f76d8..61ae07d6a89 100644
--- a/addons/project_gtd/__openerp__.py
+++ b/addons/project_gtd/__openerp__.py
@@ -49,8 +49,8 @@ performing those tasks.
],
'demo_xml': ['project_gtd_demo.xml'],
'test':[
- 'test/gtd_test.yml'
- ],
+ 'test/gtd_test.yml'
+ ],
'installable': True,
'active': False,
'certificate': '0043525236301',
diff --git a/addons/project_gtd/i18n/tr.po b/addons/project_gtd/i18n/tr.po
index 0a300a55576..99167dfec0b 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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:08+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-12 04:01+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_gtd
diff --git a/addons/project_gtd/project_gtd.py b/addons/project_gtd/project_gtd.py
index 756aa77bc3f..46031048ae9 100644
--- a/addons/project_gtd/project_gtd.py
+++ b/addons/project_gtd/project_gtd.py
@@ -19,16 +19,11 @@
#
##############################################################################
-from mx import DateTime
-from mx.DateTime import now
-import time
-import tools
-import netsvc
+import sys
+
from osv import fields, osv
import ir
-from tools.translate import _
-
-import sys
+import tools
from tools.translate import _
try:
@@ -61,59 +56,6 @@ class project_gtd_timebox(osv.osv):
'icon': fields.selection(tools.icons, 'Icon', size=64),
}
-# def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
-# res = super(project_gtd_timebox,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
-# if (res['type']=='form') and ('record_id' in context):
-# if context['record_id']:
-# rec = self.browse(cr, uid, int(context['record_id']), context)
-# else:
-# iids = self.search(cr,uid, [('user_id','=',uid),('parent_id','=',False)], context=context)
-# if len(iids):
-# rec = self.browse(cr, uid, int(iids[0]), context=context)
-# else:
-# return res
-# res['arch'] = """
-#
-#
-#
-# """
-# for i in range(1,7):
-# if not getattr(rec, 'context%d_id'%i):
-# continue
-# res['arch']+= """
-#
-#
-#
-#
-# """ % (getattr(rec, 'context%d_id'%(i,)).name.encode('utf-8'), 'task%d_ids'%(i,))
-# if rec.col_project:
-# res['arch'] += ' \n'
-# if rec.col_date_start:
-# res['arch'] += ' \n'
-# if rec.col_priority:
-# res['arch'] += ' \n'
-# if rec.col_deadline:
-# res['arch'] += ' \n'
-# if rec.col_planned_hours:
-# res['arch'] += ' \n'
-# if rec.col_effective_hours:
-# res['arch'] += ' \n' % (_('Eff. Hours'),)
-# res['arch'] += """
-#
-#
-#
-#
-# """
-# res['arch']+="""
-#
-#
-# """
-# doc = etree.XML(res['arch'])
-# xarch, xfields = self._view_look_dom_arch(cr, uid, doc, view_id, context=context)
-# res['arch'] = xarch
-# res['fields'] = xfields
-# return res
-
project_gtd_timebox()
class project_task(osv.osv):
@@ -173,7 +115,6 @@ class project_task(osv.osv):
tt = timebox_obj.browse(cr, uid, timebox_obj.search(cr,uid,[]))
search_extended ='''''' % (len(tt)+7,_('Getting Things Done'))
search_extended += ''' ''' % (_('Inbox'),)
-# search_extended += ''' ''' % (_('Editable'),)
search_extended += ''' '''
for time in tt:
if time.icon:
diff --git a/addons/project_gtd/project_gtd_demo.xml b/addons/project_gtd/project_gtd_demo.xml
index 0f2a4d0b06c..a2d3cf65923 100644
--- a/addons/project_gtd/project_gtd_demo.xml
+++ b/addons/project_gtd/project_gtd_demo.xml
@@ -21,15 +21,15 @@
Today
- terp-hr
+ terp-go-today
This Week
- terp-partner
+ terp-go-week
This Month
- terp-product
+ terp-go-month
Long Term
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index b89634ec12a..5672fdafa7c 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -30,8 +30,7 @@
project.gtd.context
-
-
@@ -98,6 +97,6 @@
-
+
diff --git a/addons/project_gtd/wizard/project_gtd_empty.py b/addons/project_gtd/wizard/project_gtd_empty.py
index 01629af87b4..373c8425a8c 100644
--- a/addons/project_gtd/wizard/project_gtd_empty.py
+++ b/addons/project_gtd/wizard/project_gtd_empty.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
from osv import osv, fields
from tools.translate import _
@@ -27,7 +28,7 @@ class project_timebox_empty(osv.osv_memory):
_description = 'Project Timebox Empty'
_columns = {
'name': fields.char('Name', size=32)
- }
+ }
def view_init(self, cr , uid , fields_list, context=None):
if context is None:
diff --git a/addons/project_gtd/wizard/project_gtd_fill.py b/addons/project_gtd/wizard/project_gtd_fill.py
index 34e4a8c2457..332a7f072a8 100644
--- a/addons/project_gtd/wizard/project_gtd_fill.py
+++ b/addons/project_gtd/wizard/project_gtd_fill.py
@@ -29,7 +29,7 @@ class project_timebox_fill(osv.osv_memory):
'timebox_id': fields.many2one('project.gtd.timebox', 'Get from Timebox', required=True),
'timebox_to_id': fields.many2one('project.gtd.timebox', 'Set to Timebox', required=True),
'task_ids': fields.many2many('project.task', 'project_task_rel', 'task_id', 'fill_id', 'Tasks selection')
- }
+ }
def _get_from_tb(self, cr, uid, context=None):
if context is None:
@@ -47,7 +47,7 @@ class project_timebox_fill(osv.osv_memory):
_defaults = {
'timebox_id': _get_from_tb,
'timebox_to_id': _get_to_tb,
- }
+ }
def process(self, cr, uid, ids, context=None):
if context is None:
diff --git a/addons/project_issue/__init__.py b/addons/project_issue/__init__.py
index c51b756f4ca..5e8489ecafa 100644
--- a/addons/project_issue/__init__.py
+++ b/addons/project_issue/__init__.py
@@ -23,4 +23,5 @@
import project_issue
import report
import wizard
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 5f04ad40640..6efb9bde67c 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -20,7 +20,6 @@
#
##############################################################################
-
{
'name': 'Issue Management in Project Management',
'version': '1.0',
@@ -50,8 +49,9 @@
'test': [
'test/convert_issue_to_task.yml',
'test/test_project_issue_states.yml'
- ],
+ ],
'installable': True,
'active': False,
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
index 343d0e98b35..1173a63ce50 100644
--- a/addons/project_issue/board_project_issue_view.xml
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -7,7 +7,7 @@
project.issue
form
tree,form
- [('user_id','=',uid),('state','in',['draft','open'])]
+ [('state','in',['draft','open'])]
@@ -16,7 +16,7 @@
project.issue
form
tree,form
- [('user_id','=',uid),('state','=','pending')]
+ [('state','=','pending')]
@@ -25,7 +25,7 @@
project.issue.report
form
graph
- [('user_id','=',uid)]
+ []
@@ -47,7 +47,7 @@
project.issue.report
form
graph
- [('user_id','=',uid)]
+ []
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..d409b33816c
--- /dev/null
+++ b/addons/project_issue/i18n/fr.po
@@ -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/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 62381dbfad0..5c5a8907dc9 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -23,7 +23,6 @@ import base64
import os
import re
import time
-import mx.DateTime
from datetime import datetime, timedelta
import binascii
import collections
@@ -35,7 +34,7 @@ from osv.orm import except_orm
from tools.translate import _
import tools
-class project_issue(osv.osv, crm.crm_case):
+class project_issue(crm.crm_case, osv.osv):
_name = "project.issue"
_description = "Project Issue"
_order = "priority, id desc"
@@ -101,8 +100,8 @@ class project_issue(osv.osv, crm.crm_case):
date_until = issue.date_open
#Calculating no. of working hours to open the issue
hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id,
- mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'),
- mx.DateTime.strptime(issue.date_open, '%Y-%m-%d %H:%M:%S'))
+ datetime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'),
+ datetime.strptime(issue.date_open, '%Y-%m-%d %H:%M:%S'))
elif field in ['working_hours_close','day_close']:
if issue.date_closed:
date_create = datetime.strptime(issue.create_date, "%Y-%m-%d %H:%M:%S")
@@ -111,8 +110,8 @@ class project_issue(osv.osv, crm.crm_case):
ans = date_close - date_create
#Calculating no. of working hours to close the issue
hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id,
- mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'),
- mx.DateTime.strptime(issue.date_closed, '%Y-%m-%d %H:%M:%S'))
+ datetime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'),
+ datetime.strptime(issue.date_closed, '%Y-%m-%d %H:%M:%S'))
if ans:
resource_id = False
if issue.user_id:
@@ -122,9 +121,9 @@ class project_issue(osv.osv, crm.crm_case):
duration = float(ans.days)
if issue.project_id and issue.project_id.resource_calendar_id:
duration = float(ans.days) * 24
- new_dates = cal_obj.interval_min_get(cr, uid, issue.project_id.resource_calendar_id.id, mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), duration, resource=resource_id)
+ new_dates = cal_obj.interval_min_get(cr, uid, issue.project_id.resource_calendar_id.id, datetime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), duration, resource=resource_id)
no_days = []
- date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
+ date_until = datetime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
for in_time, out_time in new_dates:
if in_time.date not in no_days:
no_days.append(in_time.date)
@@ -315,7 +314,7 @@ class project_issue(osv.osv, crm.crm_case):
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')
@@ -333,6 +332,7 @@ class project_issue(osv.osv, crm.crm_case):
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_menu.xml b/addons/project_issue/project_issue_menu.xml
index 05080670e10..9c074ed2fd3 100644
--- a/addons/project_issue/project_issue_menu.xml
+++ b/addons/project_issue/project_issue_menu.xml
@@ -15,6 +15,7 @@
{"search_default_user_id": uid, "search_default_current":1, "search_default_project_id":project_id}
+ Issues like bugs in a system, client complain, materials breakdown are collected here.A list view allows the manager to quickly check for them, assign them, make their status evolved.
@@ -47,8 +48,7 @@
view_mode="tree,form,calendar,graph"
view_type="form"/>
-
-
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index c79ac3eae64..d0bf5e29336 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -1,3 +1,25 @@
+
+# -*- 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 osv import fields,osv
import tools
from crm import crm
@@ -126,8 +148,7 @@ class project_issue_report(osv.osv):
project_issue c
WHERE c.categ_id IN (select res_id from ir_model_data WHERE model = 'crm.case.categ' and name='bug_categ')
)""")
+
project_issue_report()
-
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index 386020f3020..c80ccc86e28 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -158,6 +158,7 @@
{'search_default_This Month':1,'search_default_project':1,'group_by_no_leaf':1,'group_by':[]}
+ Track your projects issues and fixing delay with a high accuracy. A multicriteria search tool allows fine-grained analysis.
diff --git a/addons/project_issue/security/project_issue_security.xml b/addons/project_issue/security/project_issue_security.xml
index 1c0c23aad8d..d0aeabafc05 100644
--- a/addons/project_issue/security/project_issue_security.xml
+++ b/addons/project_issue/security/project_issue_security.xml
@@ -1,10 +1,8 @@
-
-
- Project / Support Manager
-
-
+
+ Project / Support Manager
+
diff --git a/addons/project_issue_sheet/__init__.py b/addons/project_issue_sheet/__init__.py
index d9af2040e50..1b14bf46f8e 100644
--- a/addons/project_issue_sheet/__init__.py
+++ b/addons/project_issue_sheet/__init__.py
@@ -21,4 +21,5 @@
##############################################################################
import project_issue_sheet
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue_sheet/__openerp__.py b/addons/project_issue_sheet/__openerp__.py
index db08233cc98..9e7056c214a 100644
--- a/addons/project_issue_sheet/__openerp__.py
+++ b/addons/project_issue_sheet/__openerp__.py
@@ -20,12 +20,11 @@
#
##############################################################################
-
{
'name': 'Add the Timesheet support for Issue Management in Project Management',
'version': '1.0',
'category': 'Generic Modules/CRM & SRM',
- 'description': """
+ 'description': """
This module adds the Timesheet support for the Issues/Bugs Management in Project
""",
'author': 'OpenERP SA',
@@ -33,15 +32,16 @@
'depends': [
'project_issue',
'hr_timesheet_sheet',
- ],
+ ],
'init_xml': [
- ],
+ ],
'update_xml': [
'project_issue_sheet_view.xml',
- ],
+ ],
'demo_xml': [
- ],
+ ],
'installable': True,
'active': False,
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
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..37f03be85e7
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/fr.po
@@ -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/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.py b/addons/project_issue_sheet/project_issue_sheet.py
index 2d948afa1fb..f96ce9a4ac5 100644
--- a/addons/project_issue_sheet/project_issue_sheet.py
+++ b/addons/project_issue_sheet/project_issue_sheet.py
@@ -29,7 +29,7 @@ class project_issue(osv.osv):
'timesheet_ids': fields.one2many('hr.analytic.timesheet', 'issue_id', 'Timesheets'),
'analytic_account_id': fields.related('project_id', 'analytic_account_id', type='many2one', relation='account.analytic.account',string='Analytic Account')
}
-
+
project_issue()
class account_analytic_line(osv.osv):
@@ -37,7 +37,7 @@ class account_analytic_line(osv.osv):
_description = 'account analytic line'
_columns = {
'create_date' : fields.datetime('Create Date', readonly=True),
- }
+ }
account_analytic_line()
diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml
index 13aed4eb129..ffc3332ab8c 100644
--- a/addons/project_issue_sheet/project_issue_sheet_view.xml
+++ b/addons/project_issue_sheet/project_issue_sheet_view.xml
@@ -9,12 +9,12 @@
-
+
-
-
-
+
+
+
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 0fb16cdc23d..c98c85006fa 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -40,22 +40,21 @@
"init_xml": [],
"demo_xml": ["project_long_term_demo.xml"],
"test": [
- 'test/schedule_project_phases.yml',
- 'test/schedule_project_tasks.yml',
- 'test/schedule_phase_tasks.yml'
- ],
+ 'test/schedule_project_phases.yml',
+ 'test/schedule_project_tasks.yml',
+ 'test/schedule_phase_tasks.yml'
+ ],
"update_xml": [
"security/ir.model.access.csv",
- "project_long_term_wizard.xml" ,
"wizard/project_schedule_tasks_view.xml",
"project_long_term_view.xml",
"project_long_term_workflow.xml",
"wizard/project_compute_phases_view.xml",
"wizard/project_compute_tasks_view.xml",
-
],
'installable': True,
'active': False,
'certificate': None,
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
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..e508e1f3fba
--- /dev/null
+++ b/addons/project_long_term/i18n/fr.po
@@ -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/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.py b/addons/project_long_term/project_long_term.py
index f4ae126ee67..04fde75342e 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -18,9 +18,9 @@
# along with this program. If not, see .
#
##############################################################################
-from lxml import etree
-import mx.DateTime
+
import time
+from datetime import date, datetime, timedelta
from tools.translate import _
from osv import fields, osv
@@ -120,19 +120,16 @@ class project_phase(osv.osv):
_constraints = [
(_check_recursion,'Loops in phases not allowed',['next_phase_ids', 'previous_phase_ids']),
(_check_dates, 'Phase start-date must be lower than phase end-date.', ['date_start', 'date_end']),
- #(_check_constraint_start, 'Phase must start-after constraint start Date.', ['date_start', 'constraint_date_start']),
- #(_check_constraint_end, 'Phase must end-before constraint end Date.', ['date_end', 'constraint_date_end']),
]
def onchange_project(self, cr, uid, ids, project, context=None):
result = {}
+ result['date_start'] = False
project_obj = self.pool.get('project.project')
if project:
project_id = project_obj.browse(cr, uid, project, context=context)
- if project_id.date_start:
- result['date_start'] = mx.DateTime.strptime(project_id.date_start, "%Y-%m-%d").strftime('%Y-%m-%d')
- return {'value': result}
- return {'value': {'date_start': []}}
+ result['date_start'] = project_id.date_start
+ return {'value': result}
def _check_date_start(self, cr, uid, phase, date_end, context=None):
if context is None:
@@ -146,7 +143,6 @@ class project_phase(osv.osv):
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
if resource_id:
-# cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
res = resource_obj.read(cr, uid, resource_id, ['calendar_id'], context=context)[0]
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
@@ -169,7 +165,6 @@ class project_phase(osv.osv):
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)], context=context)
if resource_id:
-# cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
res = resource_obj.read(cr, uid, resource_id, ['calendar_id'], context=context)[0]
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
@@ -201,18 +196,17 @@ class project_phase(osv.osv):
calendar_id = cal_id
default_uom_id = self._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
-
# Change the date_start and date_end
# for previous and next phases respectively based on valid condition
if vals.get('date_start', False) and vals['date_start'] < phase.date_start:
- dt_start = mx.DateTime.strptime(vals['date_start'], '%Y-%m-%d')
+ dt_start = datetime.strptime(vals['date_start'], '%Y-%m-%d')
work_times = resource_calendar_obj.interval_get(cr, uid, calendar_id, dt_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
if work_times:
vals['date_end'] = work_times[-1][1].strftime('%Y-%m-%d')
for prv_phase in phase.previous_phase_ids:
self._check_date_start(cr, uid, prv_phase, dt_start, context=context)
if vals.get('date_end', False) and vals['date_end'] > phase.date_end:
- dt_end = mx.DateTime.strptime(vals['date_end'],'%Y-%m-%d')
+ dt_end = datetime.strptime(vals['date_end'], '%Y-%m-%d')
work_times = resource_calendar_obj.interval_min_get(cr, uid, calendar_id, dt_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
if work_times:
vals['date_start'] = work_times[0][0].strftime('%Y-%m-%d')
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index a7deca51d7c..4b25ede2aa7 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -116,7 +116,7 @@
-
+
@@ -189,9 +189,6 @@
-
@@ -316,15 +313,14 @@
# ------------------------------------------------------
-
diff --git a/addons/project_long_term/project_long_term_wizard.xml b/addons/project_long_term/project_long_term_wizard.xml
deleted file mode 100644
index 7f3668c6b1a..00000000000
--- a/addons/project_long_term/project_long_term_wizard.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/project_long_term/wizard/project_compute_phases.py b/addons/project_long_term/wizard/project_compute_phases.py
index 0c8e11aa9dd..75631fb3d18 100644
--- a/addons/project_long_term/wizard/project_compute_phases.py
+++ b/addons/project_long_term/wizard/project_compute_phases.py
@@ -38,11 +38,11 @@ class project_compute_phases(osv.osv_memory):
], 'Schedule', required = True),
'project_id': fields.many2one('project.project', 'Project')
- }
+ }
_defaults = {
'target_project': 'all'
- }
+ }
def check_selection(self, cr, uid, ids, context=None):
data_select = self.read(cr, uid, ids, ['target_project'])[0]
@@ -76,11 +76,11 @@ class project_compute_phases(osv.osv_memory):
leaves = wkcal.compute_leaves(cr, uid, calendar_id , resource.id, resource.calendar_id.id)
if not phase.responsible_id:
raise osv.except_osv(_('No responsible person assigned !'),_("You must assign a responsible person for phase '%s' !") % (phase.name,))
- phase_resource_obj = classobj((phase.responsible_id.name.encode('utf8')), (Resource,),
- {'__doc__': phase.responsible_id.name,
- '__name__': phase.responsible_id.name,
- 'vacation': tuple(leaves),
- 'efficiency': time_efficiency
+ phase_resource_obj = classobj((phase.responsible_id.name.encode('utf8')), (Resource,),{
+ '__doc__': phase.responsible_id.name,
+ '__name__': phase.responsible_id.name,
+ 'vacation': tuple(leaves),
+ 'efficiency': time_efficiency
})
default_uom_id = phase_obj._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
@@ -117,9 +117,11 @@ class project_compute_phases(osv.osv_memory):
# Write the calculated dates back
ctx = context.copy()
ctx.update({'scheduler': True})
- phase_obj.write(cr, uid, [phase.id], {'date_start': start_date.strftime('%Y-%m-%d'),
- 'date_end': end_date.strftime('%Y-%m-%d')},
- context=ctx)
+ phase_obj.write(cr, uid, [phase.id], {
+ 'date_start': start_date.strftime('%Y-%m-%d'),
+ 'date_end': end_date.strftime('%Y-%m-%d')
+ }, context=ctx)
+
# Recursive call till all the next phases scheduled
for phase in phase.next_phase_ids:
if phase.state in ['draft', 'open', 'pending']:
diff --git a/addons/project_long_term/wizard/project_compute_tasks.py b/addons/project_long_term/wizard/project_compute_tasks.py
index f7f1c9dc613..c251ca6f332 100644
--- a/addons/project_long_term/wizard/project_compute_tasks.py
+++ b/addons/project_long_term/wizard/project_compute_tasks.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import datetime
from resource.faces import *
from new import classobj
@@ -33,7 +34,7 @@ class project_compute_tasks(osv.osv_memory):
_description = 'Project Compute Tasks'
_columns = {
'project_id': fields.many2one('project.project', 'Project', required=True)
- }
+ }
def compute_date(self, cr, uid, ids, context=None):
"""
@@ -73,11 +74,12 @@ class project_compute_tasks(osv.osv_memory):
if resource.get('calendar_id', False):
leaves = wkcal.compute_leaves(cr, uid, calendar_id , resource_id[0], resource['calendar_id'] and resource['calendar_id'][0] or False)
time_efficiency = resource.get('time_efficiency')
- resources.append(classobj((user.name.encode('utf8')), (Resource,), {'__doc__': user.name,
- '__name__': user.name,
- 'vacation': tuple(leaves),
- 'efficiency': time_efficiency
- }))
+ resources.append(classobj((user.name.encode('utf8')), (Resource,), {
+ '__doc__': user.name,
+ '__name__': user.name,
+ 'vacation': tuple(leaves),
+ 'efficiency': time_efficiency
+ }))
priority_dict = {'0': 1000, '1': 800, '2': 500, '3': 300,'4': 100}
# Create dynamic no of tasks with the resource specified
def create_tasks(j, eff, priorty=500, obj=None):
@@ -131,12 +133,15 @@ class project_compute_tasks(osv.osv_memory):
ctx = context.copy()
ctx.update({'scheduler': True})
user_id = user_obj.search(cr, uid, [('name', '=', t.booked_resource[0].__name__)])
- task_pool.write(cr, uid, [tasks[loop_no-1].id], {'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'date_end': e_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'user_id': user_id[0]},
- context=ctx)
+ task_pool.write(cr, uid, [tasks[loop_no-1].id], {
+ 'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
+ 'date_end': e_date.strftime('%Y-%m-%d %H:%M:%S'),
+ 'user_id': user_id[0]
+ }, context=ctx)
+
loop_no +=1
return {}
project_compute_tasks()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_long_term/wizard/project_schedule_tasks.py b/addons/project_long_term/wizard/project_schedule_tasks.py
index df9f1aae7d4..5931451081b 100644
--- a/addons/project_long_term/wizard/project_schedule_tasks.py
+++ b/addons/project_long_term/wizard/project_schedule_tasks.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
import datetime
from resource.faces import *
from new import classobj
@@ -34,10 +35,10 @@ class project_schedule_task(osv.osv_memory):
_description = 'project.schedule.tasks'
_columns = {
'msg': fields.char('Message', size=64)
- }
+ }
_defaults = {
'msg': 'Task Scheduling Completed Successfully'
- }
+ }
def default_get(self, cr, uid, fields_list, context=None):
if context is None:
@@ -63,11 +64,11 @@ class project_schedule_task(osv.osv_memory):
if resource_cal:
cal_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
leaves = wkcal.compute_leaves(cr, uid, cal_id, res.id, resource_cal, context=context)
- resource_objs.append(classobj(res.user_id.name.encode('utf8'), (Resource,),
- {'__doc__': res.user_id.name,
- '__name__': res.user_id.name,
- 'vacation': tuple(leaves),
- 'efficiency': resource_eff,
+ resource_objs.append(classobj(res.user_id.name.encode('utf8'), (Resource,),{
+ '__doc__': res.user_id.name,
+ '__name__': res.user_id.name,
+ 'vacation': tuple(leaves),
+ 'efficiency': resource_eff,
}))
return resource_objs
@@ -152,10 +153,12 @@ class project_schedule_task(osv.osv_memory):
ctx = context.copy()
ctx.update({'scheduler': True})
user_id = user_obj.search(cr, uid, [('name', '=', t.booked_resource[0].__name__)])
- task_obj.write(cr, uid, [tasks[loop_no-1].id], {'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'date_end': e_date.strftime('%Y-%m-%d %H:%M:%S'),
- 'user_id': user_id[0]},
- context=ctx)
+ task_obj.write(cr, uid, [tasks[loop_no-1].id], {
+ 'date_start': s_date.strftime('%Y-%m-%d %H:%M:%S'),
+ 'date_end': e_date.strftime('%Y-%m-%d %H:%M:%S'),
+ 'user_id': user_id[0]
+ }, context=ctx)
+
loop_no += 1
return {}
diff --git a/addons/project_long_term/wizard/working_calendar.py b/addons/project_long_term/wizard/working_calendar.py
index 1de7e717502..139875b6236 100644
--- a/addons/project_long_term/wizard/working_calendar.py
+++ b/addons/project_long_term/wizard/working_calendar.py
@@ -120,4 +120,5 @@ def compute_working_calendar(cr, uid, calendar_id, context=None):
if non_working:
wktime_cal.append((non_working[:-1], time_range))
return wktime_cal
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher_payment/wizard/__init__.py b/addons/project_mailgate/__init__.py
similarity index 86%
rename from addons/account_voucher_payment/wizard/__init__.py
rename to addons/project_mailgate/__init__.py
index 32ab938c5a6..0f82ebd1b41 100644
--- a/addons/account_voucher_payment/wizard/__init__.py
+++ b/addons/project_mailgate/__init__.py
@@ -1,8 +1,8 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
+# 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
@@ -15,10 +15,10 @@
# 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 account_voucher_unreconcile
+import project_mailgate
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_mailgate/__openerp__.py b/addons/project_mailgate/__openerp__.py
new file mode 100644
index 00000000000..cd3d0caeaf8
--- /dev/null
+++ b/addons/project_mailgate/__openerp__.py
@@ -0,0 +1,46 @@
+# -*- 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 .
+#
+##############################################################################
+
+
+{
+ "name": "Project MailGateWay",
+ "version": "1.1",
+ "author": "OpenERP SA",
+ "website": "http://www.openerp.com",
+ "category": "Generic Modules/Projects & Services",
+ "depends": ["project", "mail_gateway"],
+ "description": """This module is an interface that synchronises mails with OpenERP Project Task.
+
+It allows creating tasks as soon as a new mail arrives in our configured mail server.
+Moreover, it keeps track of all further communications and task states.
+ """,
+ "init_xml": [],
+ "update_xml": [
+ "project_mailgate_view.xml",
+ ],
+ 'demo_xml': [
+ ],
+ 'installable': True,
+ 'active': False,
+ 'certificate': '',
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py
new file mode 100644
index 00000000000..bc7bc43df03
--- /dev/null
+++ b/addons/project_mailgate/project_mailgate.py
@@ -0,0 +1,207 @@
+# -*- 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 osv import fields,osv
+from tools.translate import _
+import binascii
+
+class project_tasks(osv.osv):
+ _name = "project.task"
+ _inherit = ['mailgate.thread','project.task']
+
+ _columns={
+ 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)], readonly=True),
+ }
+ def message_new(self, cr, uid, msg, context=None):
+# """
+# Automatically calls when new email message arrives
+#
+# @param self: The object pointer
+# @param cr: the current row, from the database cursor,
+# @param uid: the current user’s ID for security checks
+# """
+ mailgate_obj = self.pool.get('email.server.tools')
+ subject = msg.get('subject')
+ body = msg.get('body')
+ msg_from = msg.get('from')
+ priority = msg.get('priority')
+
+ data = {
+ 'name': subject,
+ 'description': body,
+ 'planned_hours' : 0.0,
+ }
+ res = mailgate_obj.get_partner(cr, uid, msg_from)
+ if res:
+ data.update(res)
+ res = self.create(cr, uid, data)
+
+ message = _('A task created') + " '" + subject + "' " + _("from Mailgate.")
+ self.log(cr, uid, res, message)
+
+ attachments = msg.get('attachments', [])
+ for attachment in attachments or []:
+ data_attach = {
+ 'name': attachment,
+ 'datas':binascii.b2a_base64(str(attachments.get(attachment))),
+ 'datas_fname': attachment,
+ 'description': 'Mail attachment',
+ 'res_model': self._name,
+ 'res_id': res,
+ }
+ self.pool.get('ir.attachment').create(cr, uid, data_attach)
+
+ return res
+
+ def message_update(self, cr, uid, id, msg, data={}, default_act='pending'):
+ mailgate_obj = self.pool.get('email.server.tools')
+ msg_actions, body_data = mailgate_obj.msg_act_get(msg)
+ data.update({
+ 'description': body_data,
+ })
+ act = 'do_'+default_act
+ if 'state' in msg_actions:
+ if msg_actions['state'] in ['draft','close','cancel','open','pending']:
+ act = 'do_' + msg_actions['state']
+
+ for k1,k2 in [('cost','planned_hours')]:
+ try:
+ data[k2] = float(msg_actions[k1])
+ except:
+ pass
+
+ if 'priority' in msg_actions:
+ if msg_actions['priority'] in ('1','2','3','4','5'):
+ data['priority'] = msg_actions['priority']
+
+ self.write(cr, uid, [id], data)
+ getattr(self,act)(cr, uid, [id])
+ return True
+
+ def message_followers(self, cr, uid, ids, context=None):
+ res = []
+ if isinstance(ids, (str, int, long)):
+ select = [ids]
+ else:
+ select = ids
+ for task in self.browse(cr, uid, select):
+ user_email = (task.user_id and task.user_id.address_id and task.user_id.address_id.email) or False
+ res += [(user_email, False, False, task.priority)]
+ if isinstance(ids, (str, int, long)):
+ return len(res) and res[0] or False
+ return res
+
+ def msg_send(self, cr, uid, id, *args, **argv):
+ return True
+
+ def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context={}):
+ mailgate_pool = self.pool.get('mailgate.thread')
+ return mailgate_pool.history(cr, uid, cases, keyword, history=history,\
+ subject=subject, email=email, \
+ details=details, email_from=email_from,\
+ message_id=message_id, attach=attach, \
+ context=context)
+
+ def do_draft(self, cr, uid, ids, *args):
+ res = super(project_tasks, self).do_draft(cr, uid, ids, *args)
+ tasks = self.browse(cr, uid, ids)
+ self._history(cr, uid, tasks, _('Draft'))
+ return res
+
+ def do_open(self, cr, uid, ids, *args):
+ res = super(project_tasks, self).do_open(cr, uid, ids, *args)
+ tasks = self.browse(cr, uid, ids)
+ self._history(cr, uid, tasks, _('Open'))
+ return res
+
+ def do_pending(self, cr, uid, ids, *args):
+ res = super(project_tasks, self).do_pending(cr, uid, ids, *args)
+ tasks = self.browse(cr, uid, ids)
+ self._history(cr, uid, tasks, _('Pending'))
+ return res
+
+ def do_close(self, cr, uid, ids, *args):
+ res = super(project_tasks, self).do_close(cr, uid, ids, *args)
+ tasks = self.browse(cr, uid, ids)
+ for task in tasks:
+ if task.state == 'done':
+ self._history(cr, uid, tasks, _('Done'))
+ return res
+
+ def do_cancel(self, cr, uid, ids, *args):
+ res = super(project_tasks, self).do_cancel(cr, uid, ids, *args)
+ tasks = self.browse(cr, uid, ids)
+ self._history(cr, uid, tasks, _('Cancel'))
+ 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
diff --git a/addons/project_mailgate/project_mailgate_view.xml b/addons/project_mailgate/project_mailgate_view.xml
new file mode 100644
index 00000000000..b31eb85328e
--- /dev/null
+++ b/addons/project_mailgate/project_mailgate_view.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ task.mailgate.form
+ project.task
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/project_messages/__openerp__.py b/addons/project_messages/__openerp__.py
index fe5ad94c068..352fe797f22 100644
--- a/addons/project_messages/__openerp__.py
+++ b/addons/project_messages/__openerp__.py
@@ -37,4 +37,5 @@
'installable': True,
'active': False,
}
+
# 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..7c3229eaf44
--- /dev/null
+++ b/addons/project_messages/i18n/fr.po
@@ -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/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_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py
index 7ca37e87d13..c224bf243ca 100644
--- a/addons/project_mrp/__openerp__.py
+++ b/addons/project_mrp/__openerp__.py
@@ -49,10 +49,7 @@ automatically created via sale orders.
'website': 'http://www.openerp.com',
'depends': ['project', 'procurement', 'sale', 'mrp_jit'],
'init_xml': [],
- 'update_xml': ['project_mrp_workflow.xml',
- #'process/project_mrp_process.xml',
- 'project_mrp_view.xml'
- ],
+ 'update_xml': ['project_mrp_workflow.xml', 'process/project_mrp_process.xml', 'project_mrp_view.xml'],
'demo_xml': [],
'test': ['test/project_task_procurement.yml'],
'installable': True,
diff --git a/addons/project_mrp/i18n/tr.po b/addons/project_mrp/i18n/tr.po
index 3490bad082c..1a09d6b9a57 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-11 05:47+0000\n"
+"PO-Revision-Date: 2010-08-29 09:57+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:59+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_mrp
diff --git a/addons/project_mrp/process/project_mrp_process.xml b/addons/project_mrp/process/project_mrp_process.xml
index 78c858f43dc..33d8698ce3d 100644
--- a/addons/project_mrp/process/project_mrp_process.xml
+++ b/addons/project_mrp/process/project_mrp_process.xml
@@ -36,7 +36,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
diff --git a/addons/project_planning/__openerp__.py b/addons/project_planning/__openerp__.py
index 1ee10560919..4624de97f8c 100644
--- a/addons/project_planning/__openerp__.py
+++ b/addons/project_planning/__openerp__.py
@@ -54,8 +54,8 @@ At the end of the month, the planning manager can also check if the encoded time
'project_planning_demo.xml',
],
'test': [
- 'test/planning_states.yml'
- ],
+ 'test/planning_states.yml'
+ ],
'installable': True,
'active': False,
'certificate': '0034901836973',
diff --git a/addons/project_planning/i18n/hr.po b/addons/project_planning/i18n/hr.po
index ab66f37e417..7b5b30fac67 100644
--- a/addons/project_planning/i18n/hr.po
+++ b/addons/project_planning/i18n/hr.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-11 05:32+0000\n"
+"PO-Revision-Date: 2010-08-18 13:07+0000\n"
"Last-Translator: Miro Glavić \n"
"Language-Team: Vinteh\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:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
diff --git a/addons/project_planning/i18n/ru.po b/addons/project_planning/i18n/ru.po
index 3784eb56f39..6ae59fe7932 100644
--- a/addons/project_planning/i18n/ru.po
+++ b/addons/project_planning/i18n/ru.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2008-11-06 05:12+0000\n"
+"PO-Revision-Date: 2010-08-13 14:23+0000\n"
"Last-Translator: Sergei Kostigoff \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:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:18+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_planning
diff --git a/addons/project_planning/i18n/tr.po b/addons/project_planning/i18n/tr.po
index 60eceb55788..effa13ed830 100644
--- a/addons/project_planning/i18n/tr.po
+++ b/addons/project_planning/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-11 05:27+0000\n"
+"PO-Revision-Date: 2010-08-18 13:24+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-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-19 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_planning
diff --git a/addons/project_planning/project_planning_view.xml b/addons/project_planning/project_planning_view.xml
index 1a6d7efdd39..38c65315ef5 100644
--- a/addons/project_planning/project_planning_view.xml
+++ b/addons/project_planning/project_planning_view.xml
@@ -54,7 +54,7 @@
-
+
@@ -68,7 +68,7 @@
-
+
@@ -78,11 +78,9 @@
-
+
-
-
@@ -183,7 +181,7 @@
-
+
@@ -200,7 +198,7 @@
-
+
@@ -236,7 +234,7 @@
-
+
@@ -251,7 +249,7 @@
-
+
@@ -265,7 +263,7 @@
graph
-
+
@@ -285,7 +283,7 @@
-
+
@@ -327,7 +325,7 @@
-
+
diff --git a/addons/project_retro_planning/i18n/tr.po b/addons/project_retro_planning/i18n/tr.po
index af656553c67..62925077959 100644
--- a/addons/project_retro_planning/i18n/tr.po
+++ b/addons/project_retro_planning/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-11 04:41+0000\n"
+"PO-Revision-Date: 2010-08-29 09:46+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_retro_planning
diff --git a/addons/project_scrum/i18n/de.po b/addons/project_scrum/i18n/de.po
index 4e3738af13f..be1ae559454 100644
--- a/addons/project_scrum/i18n/de.po
+++ b/addons/project_scrum/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-02 19:01+0000\n"
+"PO-Revision-Date: 2010-08-23 06:41+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:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-25 03:53+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_scrum
@@ -34,7 +34,7 @@ msgstr "Erzeuge Aufgabe aus Backlog"
#. module: project_scrum
#: field:project.scrum.product.backlog,user_id:0
msgid "Author"
-msgstr ""
+msgstr "Verfasser"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_view_task4
@@ -51,14 +51,14 @@ msgstr "Meine offenen Sprints (Product Owner)"
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "What did you do since the last meeting?"
-msgstr ""
+msgstr "Was erledigten Sie seit dem letzten Treffen"
#. module: project_scrum
#: view:project.scrum.meeting:0
#: view:project.scrum.product.backlog:0
#: view:project.scrum.sprint:0
msgid "Group By..."
-msgstr ""
+msgstr "Gruppiert je..."
#. module: project_scrum
#: model:process.node,note:project_scrum.process_node_productbacklog0
@@ -78,7 +78,7 @@ msgstr "Scrum, agile Entwicklungsmethode"
#. module: project_scrum
#: view:project.scrum.backlog.merge:0
msgid "Are you sure you want to merge these Backlogs?"
-msgstr ""
+msgstr "Sollen diese Rückstände wirklich zusammengelegt werden"
#. module: project_scrum
#: field:project.scrum.project,progress_rate:0
@@ -107,7 +107,7 @@ msgstr "Was haben Sie seit gestern erledigt?"
#. module: project_scrum
#: constraint:project.project:0
msgid "Error! project start-date must be lower then project end-date."
-msgstr ""
+msgstr "Fehler! Der Projektstart mus vor dem Projektende liegen"
#. module: project_scrum
#: view:project.scrum.meeting:0
@@ -152,22 +152,22 @@ msgstr "Scrum Aufgabe"
#: view:project.scrum.product.backlog:0
#: view:project.scrum.sprint:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Setze auf Entwurf"
#. module: project_scrum
#: field:project.scrum.product.backlog,create_date:0
msgid "Creation Date"
-msgstr ""
+msgstr "Erzeugt am"
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "Are there anything blocking you?"
-msgstr ""
+msgstr "Gibt es etwas was Sie blockiert?"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Editable"
-msgstr ""
+msgstr "Bearbeitbar"
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_scrum_backlog_assign_sprint
@@ -183,17 +183,17 @@ msgstr ""
#. module: project_scrum
#: help:project.scrum.sprint,expected_hours:0
msgid "Estimated time to do the task."
-msgstr ""
+msgstr "Geschätzte Zeit für die Erledigung der Aufgabe"
#. module: project_scrum
#: field:project.scrum.product.backlog,task_hours:0
msgid "Task Hours"
-msgstr ""
+msgstr "Aufgabe Stunden"
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Dates"
-msgstr ""
+msgstr "Daten"
#. module: project_scrum
#: view:project.scrum.meeting:0
@@ -203,7 +203,7 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "Daily"
-msgstr ""
+msgstr "Täglich"
#. module: project_scrum
#: field:project.scrum.sprint,backlog_ids:0
@@ -213,12 +213,12 @@ msgstr "Erfasse die benötigte Zeit für Ihre Aufgaben"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Delegate"
-msgstr ""
+msgstr "Delegieren"
#. module: project_scrum
#: view:board.board:0
msgid "My Board"
-msgstr ""
+msgstr "Mein Dashboard"
#. module: project_scrum
#: field:project.scrum.meeting,date:0
@@ -228,25 +228,25 @@ msgstr "Datum Meeting"
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_scrum_backlog_merge
msgid "Merge Product Backlogs"
-msgstr ""
+msgstr "Zusammenlegung von Produkt Rückständen"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_product_backlog_form
#: model:ir.ui.menu,name:project_scrum.menu_action_product_backlog_form
#: view:project.scrum.product.backlog:0
msgid "Product Backlogs"
-msgstr ""
+msgstr "Produkt Rückstände"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_scrum_backlog_merge
#: view:project.scrum.backlog.merge:0
msgid "Merge Backlogs"
-msgstr ""
+msgstr "Rückstände zusammenführen"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Change Stage"
-msgstr ""
+msgstr "Stauts verändern"
#. module: project_scrum
#: constraint:project.project:0
@@ -256,17 +256,17 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Owners"
-msgstr ""
+msgstr "Eigentümer"
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_task
msgid "Task"
-msgstr ""
+msgstr "Aufgabe"
#. module: project_scrum
#: constraint:project.task:0
msgid "Error! task start-date must be lower then task end-date."
-msgstr ""
+msgstr "Fehler! Das Anfangsdatum muss kleiner als das Enddatum sein."
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.dblc_proj
@@ -342,7 +342,7 @@ msgstr "Abgebrochen"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Convert to Task"
-msgstr ""
+msgstr "In Aufgabe umwandeln"
#. module: project_scrum
#: field:scrum.team,name:0
@@ -357,7 +357,7 @@ msgstr "Mail Header"
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Expected hours"
-msgstr ""
+msgstr "Erwartete Stunden"
#. module: project_scrum
#: field:project.scrum.project,sprint_size:0
@@ -505,22 +505,22 @@ msgstr "Anfangsdatum"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Extended Options..."
-msgstr ""
+msgstr "Erweiterte Optionen.."
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Planning"
-msgstr ""
+msgstr "Planung"
#. module: project_scrum
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
+msgstr "Fehler! Es können keine rekursive Kontenhierarchien erstellt werden."
#. module: project_scrum
#: help:project.scrum.sprint,scrum_master_id:0
msgid "The person who is maintains the processes for the product"
-msgstr ""
+msgstr "Der Produktionsverwantortliche"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_scrum_project_tree
@@ -587,7 +587,7 @@ msgstr "Berechnet als: Investierte Zeit / Gesamtzeit"
#. module: project_scrum
#: help:project.scrum.backlog.assign.sprint,convert_to_task:0
msgid "Create Task for Product Backlog"
-msgstr ""
+msgstr "Erzeuge Aufgabe für den Produkt Rückstand"
#. module: project_scrum
#: field:project.scrum.project,scrum:0
@@ -616,17 +616,19 @@ msgstr "Hindernissliste"
#: help:project.scrum.backlog.assign.sprint,state_open:0
msgid "Change the state of product backlogs to open if its in draft state"
msgstr ""
+"Verändere den Status des Produkt Rückstandes auf offen, wenn dieser Entwurf "
+"ist"
#. module: project_scrum
#: help:project.project,product_owner_id:0
#: help:project.scrum.sprint,product_owner_id:0
msgid "The person who is responsible for the product"
-msgstr ""
+msgstr "Der Produktverantwortlich"
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "What do you plan to do till the next meeting?"
-msgstr ""
+msgstr "Was wollen Sie bis zum nächsten Treffen erledigen"
#. module: project_scrum
#: help:project.task,product_backlog_id:0
@@ -729,7 +731,7 @@ msgstr "Projekt Bezeichnung"
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "Optional Info"
-msgstr ""
+msgstr "Optionale Info"
#. module: project_scrum
#: field:project.scrum.project,product_owner_id:0
@@ -751,27 +753,27 @@ msgstr ""
#. module: project_scrum
#: help:project.scrum.product.backlog,expected_hours:0
msgid "Estimated total time to do the Backlog"
-msgstr ""
+msgstr "Geschätze Zeit um den Rückstand aufzuarbeiten"
#. module: project_scrum
#: help:project.scrum.backlog.merge,project_id:0
msgid "Select project for the new product backlog"
-msgstr ""
+msgstr "Wähle Projekt für den neuen Produkt Rückstand"
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_scrum_backlog_create_task
msgid "Create Tasks from Product Backlogs"
-msgstr ""
+msgstr "Erzeuge Aufgabe vom Produkt Rückstand"
#. module: project_scrum
#: help:project.project,sprint_size:0
msgid "Number of days allocated for sprint"
-msgstr ""
+msgstr "Anzahl der für sprint zugeordneten Tage"
#. module: project_scrum
#: help:project.scrum.product.backlog,sequence:0
msgid "Gives the sequence order when displaying a list of product backlog."
-msgstr ""
+msgstr "Sortierung für den Produkt Rückstand"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_sprint_open_tree5
@@ -837,7 +839,7 @@ msgstr "Arbeit erledigt"
#. module: project_scrum
#: view:project.scrum.backlog.merge:0
msgid "Merge"
-msgstr ""
+msgstr "Zusammenführen"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_sprint_backlog_open
@@ -877,23 +879,23 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Feature Description"
-msgstr ""
+msgstr "Beschreibung der Merkmale"
#. module: project_scrum
#: field:project.scrum.product.backlog,effective_hours:0
msgid "Spent Hours"
-msgstr ""
+msgstr "verbrauchte Stunden"
#. module: project_scrum
#: help:project.scrum.product.backlog,effective_hours:0
msgid "Computed using the sum of the time spent on every related tasks"
-msgstr ""
+msgstr "berechnet aufgrund der verbrauchten Zeit der verbundenen Aufgaben"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.open_board_project_scrum
#: model:ir.ui.menu,name:project_scrum.menu_deshboard_scurm
msgid "Scrum Dashboard"
-msgstr ""
+msgstr "Scrum Anzeigetafel"
#. module: project_scrum
#: help:project.scrum.task,project_id:0
@@ -1040,7 +1042,7 @@ msgstr "Editiere Projekte"
#. module: project_scrum
#: field:project.scrum.backlog.assign.sprint,state_open:0
msgid "Set Open"
-msgstr ""
+msgstr "Setze auf Offen"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_meeting_form
@@ -1129,7 +1131,7 @@ msgstr "Scrum Master"
#. module: project_scrum
#: field:project.project,scrum:0
msgid "Is a Scrum Project"
-msgstr ""
+msgstr "Das ist ein Scrum Projekt"
#. module: project_scrum
#: view:project.scrum.backlog.merge:0
@@ -1141,7 +1143,7 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.backlog.merge:0
msgid "Select the project for merged backlogs"
-msgstr ""
+msgstr "Wähle das Projekt für zusammengeführte Rückstände"
#. module: project_scrum
#: field:project.scrum.product.backlog,tasks_id:0
@@ -1178,7 +1180,7 @@ msgstr "Sequenz"
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "Send to Product Owner"
-msgstr ""
+msgstr "Send an Produktverantwortlichen"
#. module: project_scrum
#: help:project.scrum.project,warn_footer:0
@@ -1225,7 +1227,7 @@ msgstr "Erwartetes Ende"
#. module: project_scrum
msgid "Hello"
-msgstr ""
+msgstr "Hallo"
#. module: project_scrum
msgid "I am sending you Daily Meeting Details of date"
@@ -1237,7 +1239,7 @@ msgstr ""
#. module: project_scrum
msgid "Task for Today"
-msgstr ""
+msgstr "heutige Aufgaben"
#. module: project_scrum
msgid "No Blocks"
@@ -1245,7 +1247,7 @@ msgstr ""
#. module: project_scrum
msgid "Thank you"
-msgstr ""
+msgstr "Vielen Dank"
#. module: project_scrum
msgid "Scrum Meeting of"
diff --git a/addons/project_scrum/i18n/et.po b/addons/project_scrum/i18n/et.po
index 6f51b614978..baa1d5ca8ea 100644
--- a/addons/project_scrum/i18n/et.po
+++ b/addons/project_scrum/i18n/et.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-09 19:58+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-28 08:22+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:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_scrum
@@ -34,7 +34,7 @@ msgstr "Loo ülesanne backlogist."
#. module: project_scrum
#: field:project.scrum.product.backlog,user_id:0
msgid "Author"
-msgstr ""
+msgstr "Autor"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_view_task4
@@ -151,12 +151,12 @@ msgstr "Scrum ülesanne"
#: view:project.scrum.product.backlog:0
#: view:project.scrum.sprint:0
msgid "Set to Draft"
-msgstr ""
+msgstr "Sea mustandiks"
#. module: project_scrum
#: field:project.scrum.product.backlog,create_date:0
msgid "Creation Date"
-msgstr ""
+msgstr "Loomise kuupäev"
#. module: project_scrum
#: view:project.scrum.meeting:0
@@ -166,7 +166,7 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Editable"
-msgstr ""
+msgstr "Redigeeritav"
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_scrum_backlog_assign_sprint
@@ -187,12 +187,12 @@ msgstr ""
#. module: project_scrum
#: field:project.scrum.product.backlog,task_hours:0
msgid "Task Hours"
-msgstr ""
+msgstr "Ülesande tunnid"
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Dates"
-msgstr ""
+msgstr "Kuupäevad"
#. module: project_scrum
#: view:project.scrum.meeting:0
@@ -202,7 +202,7 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.meeting:0
msgid "Daily"
-msgstr ""
+msgstr "Igapäevane"
#. module: project_scrum
#: field:project.scrum.sprint,backlog_ids:0
@@ -212,12 +212,12 @@ msgstr "Sprint Backlog"
#. module: project_scrum
#: view:project.scrum.product.backlog:0
msgid "Delegate"
-msgstr ""
+msgstr "Delegeeri"
#. module: project_scrum
#: view:board.board:0
msgid "My Board"
-msgstr ""
+msgstr "Minu laud"
#. module: project_scrum
#: field:project.scrum.meeting,date:0
@@ -260,7 +260,7 @@ msgstr ""
#. module: project_scrum
#: model:ir.model,name:project_scrum.model_project_task
msgid "Task"
-msgstr ""
+msgstr "Tegevus"
#. module: project_scrum
#: constraint:project.task:0
@@ -509,12 +509,12 @@ msgstr ""
#. module: project_scrum
#: view:project.scrum.sprint:0
msgid "Planning"
-msgstr ""
+msgstr "Planeerimine"
#. module: project_scrum
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
+msgstr "Viga! Sa ei saa luua rekursiivseid analüütilisi kontosid."
#. module: project_scrum
#: help:project.scrum.sprint,scrum_master_id:0
@@ -835,7 +835,7 @@ msgstr "Töö tehtud"
#. module: project_scrum
#: view:project.scrum.backlog.merge:0
msgid "Merge"
-msgstr ""
+msgstr "Ühenda"
#. module: project_scrum
#: model:ir.actions.act_window,name:project_scrum.action_sprint_backlog_open
@@ -1222,7 +1222,7 @@ msgstr "Eeldatav lõpp"
#. module: project_scrum
msgid "Hello"
-msgstr ""
+msgstr "Tere"
#. module: project_scrum
msgid "I am sending you Daily Meeting Details of date"
@@ -1242,7 +1242,7 @@ msgstr ""
#. module: project_scrum
msgid "Thank you"
-msgstr ""
+msgstr "Tänan teid"
#. module: project_scrum
msgid "Scrum Meeting of"
diff --git a/addons/project_scrum/i18n/tr.po b/addons/project_scrum/i18n/tr.po
index de71e788b7b..9b23166e8e8 100644
--- a/addons/project_scrum/i18n/tr.po
+++ b/addons/project_scrum/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-11 05:32+0000\n"
+"PO-Revision-Date: 2010-08-29 10:27+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-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_scrum
diff --git a/addons/project_scrum/project_scrum_demo.xml b/addons/project_scrum/project_scrum_demo.xml
index d162a396abe..bc79209b2e0 100644
--- a/addons/project_scrum/project_scrum_demo.xml
+++ b/addons/project_scrum/project_scrum_demo.xml
@@ -9,7 +9,7 @@
[24, 25, 28, 26, 27, 29, 30, 31, 32, 33, 34, 35, 37, 36, 38]
156.0
- Open ERP - dev branch
+ OpenERP - dev branch
@@ -30,7 +30,7 @@
3
Automatic migration system
6.0
- This new system will enable you to migrate automatically from an old version of Open ERP to a new one. This system will migrate not only the Open ERP system but also the customers particularities. This happens without any kind of script or programming. It has been possible to carry out such a system thanks to the descriptive approach of Open ERP components.
+ This new system will enable you to migrate automatically from an old version of OpenERP to a new one. This system will migrate not only the OpenERP system but also the customers particularities. This happens without any kind of script or programming. It has been possible to carry out such a system thanks to the descriptive approach of OpenERP components.
done
@@ -39,7 +39,7 @@
3
New accounting module
111.0
- The accounting module of Open ERP (financial accounting and management accounting) is being reshaped. New functionnalities will be added: intangible assets, a new way of presenting ledgers and bookings, new stock valuation calculation, and lots of predefined reports.
+ The accounting module of OpenERP (financial accounting and management accounting) is being reshaped. New functionalities will be added: intangible assets, a new way of presenting ledgers and bookings, new stock valuation calculation, and lots of predefined reports.
open
@@ -48,7 +48,7 @@
3
Automated Plugin System to install/uninstall modules
4.0
- We have to develop a plug-in system which will enable to install/remove modules. The basic version of Open ERP will include only the required minimum, and you will select the modules thanks to the plug-in manager. This allows you to limit your system to your real needs: quality management, localisations, project and service management, marketing campaigns, and so on...
+ We have to develop a plug-in system which will enable to install/remove modules. The basic version of OpenERP will include only the required minimum, and you will select the modules thanks to the plug-in manager. This allows you to limit your system to your real needs: quality management, localisations, project and service management, marketing campaigns, and so on...
open
@@ -70,14 +70,14 @@
Test for 3.2.0 Publishing
5.0
- Test Open ERP to release stable 3.2.0 version. (may be 3.2.0-pre1 ?)
+ Test OpenERP to release stable 3.2.0 version. (may be 3.2.0-pre1 ?)
Reshape the complete menu
4.0
- Restructure the Open ERP menu to be more like others ERP.
+ Restructure the OpenERP menu to be more like other ERPs.
open
@@ -223,7 +223,7 @@ Admin: Worked on the Automatic migration system
Demo: Worked on the Test 3.2.0 before releasing
-Admin:Work on Restructure the Open ERP menu to be more like others ERP.
+Admin:Work on Restructure the OpenERP menu to be more like other ERPs.
Demo: Work on Editable trees
Demo :Bugfix - memory leak
diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml
index 007399c40a8..fe995d30103 100644
--- a/addons/project_scrum/project_scrum_view.xml
+++ b/addons/project_scrum/project_scrum_view.xml
@@ -61,8 +61,8 @@
-
diff --git a/addons/project_scrum/wizard/project_scrum_backlog_create_task.py b/addons/project_scrum/wizard/project_scrum_backlog_create_task.py
index 9fcf104211e..92681d804a9 100644
--- a/addons/project_scrum/wizard/project_scrum_backlog_create_task.py
+++ b/addons/project_scrum/wizard/project_scrum_backlog_create_task.py
@@ -25,7 +25,7 @@ class backlog_create_task(osv.osv_memory):
_description = 'Create Tasks from Product Backlogs'
_columns = {
'user_id': fields.many2one('res.users', 'Assign To')
- }
+ }
def do_create(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
diff --git a/addons/project_scrum/wizard/project_scrum_backlog_merger.py b/addons/project_scrum/wizard/project_scrum_backlog_merger.py
index eb31ebe031c..6672a83dc5c 100644
--- a/addons/project_scrum/wizard/project_scrum_backlog_merger.py
+++ b/addons/project_scrum/wizard/project_scrum_backlog_merger.py
@@ -26,7 +26,7 @@ class project_scrum_backlog_merge(osv.osv_memory):
_description = 'Merge Product Backlogs'
_columns = {
'project_id': fields.many2one('project.project', 'Project', help="Select project for the new product backlog"),
- }
+ }
def check_backlogs(self, cr, uid, ids, context=None):
backlog_obj = self.pool.get('project.scrum.product.backlog')
@@ -54,7 +54,7 @@ class project_scrum_backlog_merge(osv.osv_memory):
'views': [(resource_id,'form')],
'type': 'ir.actions.act_window',
'target': 'new',
- }
+ }
return self.do_merge(cr, uid, ids, context=context)
def do_merge(self, cr, uid, ids, context=None):
diff --git a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py
index 5d4a6831533..640bdfd4a65 100644
--- a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py
+++ b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py
@@ -28,11 +28,11 @@ class backlog_sprint_assign(osv.osv_memory):
'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint Name', required=True),
'state_open': fields.boolean('Set Open', help="Change the state of product backlogs to open if its in draft state"),
'convert_to_task': fields.boolean('Convert To Task', help="Create Task for Product Backlog")
- }
+ }
_defaults = {
'state_open': True,
'convert_to_task': True,
- }
+ }
def assign_sprint(self, cr, uid, ids, context=None):
backlog_obj = self.pool.get('project.scrum.product.backlog')
diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py
index 3dd6600efc9..0d8715a4e46 100644
--- a/addons/project_timesheet/__openerp__.py
+++ b/addons/project_timesheet/__openerp__.py
@@ -35,8 +35,8 @@
'update_xml': ["process/project_timesheet_process.xml", "report/task_report_view.xml"],
'demo_xml': [],
'test': [
- 'test/worktask_entry_to_timesheetline_entry.yml',
- ],
+ 'test/worktask_entry_to_timesheetline_entry.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0075123647453',
diff --git a/addons/project_timesheet/i18n/tr.po b/addons/project_timesheet/i18n/tr.po
index 077d190e85e..f57c93582e7 100644
--- a/addons/project_timesheet/i18n/tr.po
+++ b/addons/project_timesheet/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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 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 04:02+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_timesheet
diff --git a/addons/project_timesheet/process/project_timesheet_process.xml b/addons/project_timesheet/process/project_timesheet_process.xml
index adf4d197e40..4bb6a6de381 100644
--- a/addons/project_timesheet/process/project_timesheet_process.xml
+++ b/addons/project_timesheet/process/project_timesheet_process.xml
@@ -7,7 +7,6 @@
-->
-
diff --git a/addons/project_timesheet/report/task_report.py b/addons/project_timesheet/report/task_report.py
index 65b58fe632b..ea454519394 100644
--- a/addons/project_timesheet/report/task_report.py
+++ b/addons/project_timesheet/report/task_report.py
@@ -23,68 +23,6 @@ import mx.DateTime
from osv import fields,osv
import tools
-#class task_report(osv.osv):
-# _name = "task.report"
-# _description = "Project task report"
-# _auto = False
-# _columns = {
-# 'name': fields.char('Task',size=64,required=False, 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),
-# 'user_id':fields.many2one('res.users', 'User', readonly=True),
-# 'task_nbr': fields.float('Task Number', readonly=True),
-# 'task_hrs': fields.float('Task Hours', readonly=True),
-# 'task_progress': fields.float('Task Progress', readonly=True),
-# 'company_id' : fields.many2one('res.company', 'Company'),
-# 'task_state': fields.selection([('draft', 'Draft'),('open', 'Open'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done'),('no','No Task')], 'Status', readonly=True),
-# 'project_id':fields.many2one('project.project', 'Project'),
-# 'year': fields.char('Year',size=64,required=False, readonly=True),
-# 'date_start': fields.datetime('Starting Date',readonly=True),
-# 'date_end': fields.datetime('Ending Date',readonly=True),
-# 'date_deadline': fields.date('Deadline',readonly=True),
-# 'type': fields.many2one('project.task.type', 'Stage'),
-# 'priority' : fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Importance'),
-# 'assign_to': fields.many2one('res.users', 'Assigned to', readonly=True),
-# 'remaining_hrs': fields.float('Remaining Hours', readonly=True),
-# }
-#
-# def init(self, cr):
-# tools.sql.drop_view_if_exists(cr, 'task_report')
-# cr.execute('''
-# create or replace view task_report as (
-# select
-# min(t.id) as id,
-# to_char(t.create_date, 'YYYY') as year,
-# to_char(t.create_date,'MM') as month,
-# u.id as user_id,
-# u.company_id as company_id,
-# t.name as name,
-# t.project_id as project_id,
-# to_char(t.date_start,'YYYY/mm/dd') as date_start,
-# to_char(t.date_end,'YYYY/mm/dd') as date_end,
-# to_char(t.date_deadline,'YYYY/mm/dd') as date_deadline,
-# t.type as type,
-# t.priority as priority,
-# t.user_id as assign_to,
-# t.remaining_hours as remaining_hrs,
-# count(t.*) as task_nbr,
-# sum(t.planned_hours) as task_hrs,
-# sum(t.planned_hours * (100 - t.progress) / 100) as task_progress,
-# case when t.state is null then 'no' else t.state end as task_state
-# from
-# res_users u
-# left join
-# project_task t on (u.id = t.user_id)
-# where
-# u.active
-# group by
-# to_char(t.create_date, 'YYYY'),to_char(t.create_date,'MM'),u.id, u.company_id, t.state
-# ,t.name,t.project_id,t.type,t.priority,
-# t.user_id,t.remaining_hours,to_char(t.date_start,'YYYY/mm/dd'),to_char(t.date_end,'YYYY/mm/dd'),to_char(t.date_deadline,'YYYY/mm/dd')
-# )
-# ''')
-#task_report()
-
class report_timesheet_task_user(osv.osv):
_name = "report.timesheet.task.user"
_auto = False
@@ -125,11 +63,11 @@ class report_timesheet_task_user(osv.osv):
'user_id': fields.many2one('res.users', 'User',readonly=True),
'timesheet_hrs': fields.function(get_hrs_timesheet, method=True, string="Timesheet Hours"),
'task_hrs': fields.function(_get_task_hours, method=True, string="Task Hours"),
-
- }
+ }
def init(self, cr):
- cr.execute(""" create or replace view report_timesheet_task_user as (
+ tools.drop_view_if_exists(cr, 'report_timesheet_task_user')
+ cr.execute(""" create or replace view report_timesheet_task_user as (
select
((r.id*12)+to_number(months.m_id,'99'))::integer as id,
months.name as name,
diff --git a/addons/project_timesheet/report/task_report_view.xml b/addons/project_timesheet/report/task_report_view.xml
index 5b9aa9d5a04..036acefc9b8 100644
--- a/addons/project_timesheet/report/task_report_view.xml
+++ b/addons/project_timesheet/report/task_report_view.xml
@@ -7,122 +7,6 @@
parent="hr.menu_hr_root"
sequence="40" />
-
@@ -169,7 +53,7 @@
{"search_default_user_id":uid}
-
diff --git a/addons/purchase/board_purchase_view.xml b/addons/purchase/board_purchase_view.xml
index 1a90dc49e92..f5b131a69f5 100644
--- a/addons/purchase/board_purchase_view.xml
+++ b/addons/purchase/board_purchase_view.xml
@@ -61,6 +61,7 @@
id="menu_board_purchase"
parent="menu_purchase_deshboard"
sequence="4"/>
+
diff --git a/addons/purchase/i18n/de.po b/addons/purchase/i18n/de.po
index 30ae713c294..dbdeadcf8f5 100644
--- a/addons/purchase/i18n/de.po
+++ b/addons/purchase/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 10:10+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:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -675,7 +675,7 @@ msgstr "Standard Preislisten Version"
#: rml:purchase.order:0
#: field:purchase.order.line,price_unit:0
msgid "Unit Price"
-msgstr "Preis/UoM"
+msgstr "Preis/ME"
#. module: purchase
#: field:purchase.order,fiscal_position:0
@@ -812,7 +812,7 @@ msgstr "Bestätige Beschaffungsauftrag"
#. module: purchase
#: field:purchase.order.line,product_uom:0
msgid "Product UOM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: purchase
#: field:purchase.order.line,move_ids:0
@@ -912,28 +912,28 @@ msgstr "Lagerbuchungen"
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Warteliste"
#. module: purchase
#: field:report.purchase.order.category,price_total:0
#: field:report.purchase.order.product,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Gesamtpreis"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Angebot"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Auftrag in manueller Bearbeitung"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "In progress"
-msgstr ""
+msgstr "In Bearbeitung"
diff --git a/addons/purchase/i18n/es_EC.po b/addons/purchase/i18n/es_EC.po
new file mode 100644
index 00000000000..2341d99155d
--- /dev/null
+++ b/addons/purchase/i18n/es_EC.po
@@ -0,0 +1,934 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * purchase
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-20 20:08+0000\n"
+"Last-Translator: Borja López Soilán (Pexego) \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-Generator: Launchpad (build Unknown)\n"
+
+#. module: purchase
+#: field:purchase.order,invoiced:0
+msgid "Invoiced & Paid"
+msgstr "Facturada & Pagada (conciliada)"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_invoiceafterpacking0
+msgid "Supplier Invoice pre-generated on receptions for control"
+msgstr "Factura de proveedor pre-generada en la recepción para control"
+
+#. module: purchase
+#: field:purchase.order,location_id:0
+msgid "Destination"
+msgstr "Destino"
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "From Picking"
+msgstr "Desde albarán"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Validated By"
+msgstr "Validado por"
+
+#. module: purchase
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nombre de modelo no válido en la definición de acción."
+
+#. module: purchase
+#: field:purchase.order,partner_id:0
+msgid "Supplier"
+msgstr "Proveedor"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Delivery"
+msgstr "Entrega"
+
+#. module: purchase
+#: field:purchase.order.line,product_qty:0
+msgid "Quantity"
+msgstr "Cantidad"
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "From Order"
+msgstr "Desde pedido"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_confirmpurchaseorder0
+msgid "Confirmed Purchase"
+msgstr "Compra confirmada"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Invoice Exception"
+msgstr "Excepción de factura"
+
+#. module: purchase
+#: model:product.pricelist,name:purchase.list0
+msgid "Default Purchase Pricelist"
+msgstr "Tarifa de compra por defecto"
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_invoicefrompurchaseorder0
+msgid "Create invoice"
+msgstr "Crear factura"
+
+#. module: purchase
+#: help:res.partner,property_product_pricelist_purchase:0
+msgid ""
+"This pricelist will be used, instead of the default one, for purchases from "
+"the current partner"
+msgstr ""
+"Esta tarifa será utilizada en lugar de la por defecto para las compras de la "
+"empresa actual"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Fax :"
+msgstr "Fax :"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_productrecept0
+msgid "Create invoice from product recept"
+msgstr "Crear factura desde recepción producto"
+
+#. module: purchase
+#: help:purchase.order,pricelist_id:0
+msgid ""
+"The pricelist sets the currency used for this purchase order. It also "
+"computes the supplier price for the selected products/quantities."
+msgstr ""
+"La tarifa fija la moneda utilizada en este pedido de compra. También calcula "
+"el precio del proveedor para los productos/cantidades seleccionados."
+
+#. module: purchase
+#: model:process.process,name:purchase.process_process_purchaseprocess0
+msgid "Purchase Process"
+msgstr "Proceso de compra"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_invoicefrompackinglist0
+msgid "Invoice from Packing list"
+msgstr "Facturar desde albarán"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Approve Purchase"
+msgstr "Aprovar compra"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Approved"
+msgstr "Aprobado"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_form_action4
+#: model:ir.ui.menu,name:purchase.menu_purchase_form_action4
+msgid "Purchase Orders in Progress"
+msgstr "Pedidos de compra en proceso"
+
+#. module: purchase
+#: field:purchase.order,amount_untaxed:0
+msgid "Untaxed Amount"
+msgstr "Base imponible"
+
+#. module: purchase
+#: view:purchase.order:0
+#: field:purchase.order,notes:0
+#: view:purchase.order.line:0
+#: field:purchase.order.line,notes:0
+msgid "Notes"
+msgstr "Notas"
+
+#. module: purchase
+#: rml:purchase.order:0
+#: field:purchase.order,amount_tax:0
+#: field:purchase.order.line,taxes_id:0
+msgid "Taxes"
+msgstr "Impuestos"
+
+#. module: purchase
+#: model:ir.actions.report.xml,name:purchase.report_purchase_order
+#: model:process.node,name:purchase.process_node_purchaseorder0
+#: view:purchase.order:0
+#: model:res.request.link,name:purchase.req_link_purchase_order
+#: field:stock.picking,purchase_id:0
+msgid "Purchase Order"
+msgstr "Pedido de compra"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Regards,"
+msgstr "Recuerdos,"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Net Total :"
+msgstr "Total neto :"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Cancelled"
+msgstr "Cancelado"
+
+#. module: purchase
+#: help:purchase.order,state:0
+msgid ""
+"The state of the purchase order or the quotation request. A quotation is a "
+"purchase order in a 'Draft' state. Then the order has to be confirmed by the "
+"user, the state switch to 'Confirmed'. Then the supplier must confirm the "
+"order to change the state to 'Approved'. When the purchase order is paid and "
+"received, the state becomes 'Done'. If a cancel action occurs in the invoice "
+"or in the reception of goods, the state becomes in exception."
+msgstr ""
+"El estado del pedido de compra o de la solicitud de presupuesto. Un "
+"presupuesto es un pedido de compra en estado 'Borrador'. Entonces, si el "
+"pedido es confirmado por el usuario, el estado cambiará a 'Confirmado'. "
+"Entonces el proveedor debe confirmar el pedido para cambiar el estado a "
+"'Aprobado'. Cuando el pedido de compra está pagado y recibido, el estado se "
+"convierte en 'Relizado'. Si una acción de cancelación ocurre en la factura o "
+"en la recepción de mercancías, el estado se convierte en 'Excepción'."
+
+#. module: purchase
+#: field:purchase.order,origin:0
+msgid "Origin"
+msgstr "Origen"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_packinglist0
+msgid "Incoming Products"
+msgstr "Productos entrantes"
+
+#. module: purchase
+#: rml:purchase.order:0
+#: rml:purchase.quotation:0
+msgid "Qty"
+msgstr "Ctdad"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Manually Corrected"
+msgstr "Corregido manualmente"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Reference"
+msgstr "Referencia"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "TVA :"
+msgstr "CIF/NIF:"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Tel.:"
+msgstr "Tel.:"
+
+#. module: purchase
+#: field:purchase.order.line,account_analytic_id:0
+msgid "Analytic Account"
+msgstr "Cuenta analítica"
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_order_line
+msgid "Purchase Order lines"
+msgstr "Línieas del pedido de compra"
+
+#. module: purchase
+#: field:purchase.order,validator:0
+msgid "Validated by"
+msgstr "Validada por"
+
+#. module: purchase
+#: help:purchase.order,invoice_method:0
+msgid ""
+"From Order: a draft invoice will be pre-generated based on the purchase "
+"order. The accountant will just have to validate this invoice for control.\n"
+"From Picking: a draft invoice will be pre-genearted based on validated "
+"receptions.\n"
+"Manual: no invoice will be pre-generated. The accountant will have to encode "
+"manually."
+msgstr ""
+"Desde pedido: Una factura borrador se pre-generará basada en el pedido de "
+"compra. El contable sólo deberá validar esta factura para control.\n"
+"Desde albarán: Una factura borrador será pre-generará basada en las "
+"recepciones validadas.\n"
+"Manual: Ninguna factura se pre-generará. El contable deberá codificarla "
+"manualmente."
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_packinginvoice0
+msgid "Invoice based on deliveries"
+msgstr "Facturar desde albaranes"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Net Price"
+msgstr "Precio neto"
+
+#. module: purchase
+#: view:purchase.order.line:0
+msgid "Order Line"
+msgstr "Línea del pedido"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Confirmed"
+msgstr "Confirmado"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_productrecept0
+msgid "Product Receipt"
+msgstr "Recepción producto"
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_confirmpurchaseorder0
+msgid "Confirm"
+msgstr "Confirmar"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Invoice Control"
+msgstr "Control factura"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_draftpurchaseorder0
+#: model:process.node,name:purchase.process_node_draftpurchaseorder1
+msgid "RFQ"
+msgstr "Petición presupuesto"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Waiting"
+msgstr "En espera"
+
+#. module: purchase
+#: field:purchase.order,picking_ids:0
+msgid "Picking List"
+msgstr "Albarán"
+
+#. module: purchase
+#: field:purchase.order,warehouse_id:0
+msgid "Warehouse"
+msgstr "Almacén"
+
+#. module: purchase
+#: field:purchase.order,order_line:0
+msgid "Order Lines"
+msgstr "Líneas del pedido"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1
+msgid "Confirm Purchase order from Request for quotation without origin"
+msgstr "Confirmar pedido de compra desde solicitud de presupuesto sin origen"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Fax:"
+msgstr "Fax:"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Untaxed amount"
+msgstr "Base imponible"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Expected Date"
+msgstr "Fecha prevista"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Shipping address :"
+msgstr "Dirección de envío :"
+
+#. module: purchase
+#: model:product.pricelist.type,name:purchase.pricelist_type_purchase
+#: field:res.partner,property_product_pricelist_purchase:0
+msgid "Purchase Pricelist"
+msgstr "Tarifa de compra"
+
+#. module: purchase
+#: field:purchase.order,minimum_planned_date:0
+msgid "Planned Date"
+msgstr "Fecha prevista"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Approved by Supplier"
+msgstr "Aprobado por proveedor"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.act_purchase_order_2_stock_picking
+msgid "Packing"
+msgstr "Empaquetado/Albarán"
+
+#. module: purchase
+#: model:ir.actions.wizard,name:purchase.purchase_order_merge
+msgid "Merge purchases"
+msgstr "Fusionar compras"
+
+#. module: purchase
+#: field:purchase.order.line,move_dest_id:0
+msgid "Reservation Destination"
+msgstr "Destinación de la reserva"
+
+#. module: purchase
+#: field:purchase.order,name:0
+msgid "Order Reference"
+msgstr "Referencia del pedido"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Done"
+msgstr "Realizado"
+
+#. module: purchase
+#: field:purchase.order,pricelist_id:0
+msgid "Pricelist"
+msgstr "Tarifa"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_purchaseorder0
+msgid "When controlling invoice from orders"
+msgstr "Cuando se controla factura desde pedidos"
+
+#. module: purchase
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "¡XML inválido para la definición de la vista!"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_invoicecontrol0
+msgid "Pre-generated supplier invoice to control based on order"
+msgstr "Factura de proveedor pre-generada para control basada en pedido"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_invoicefrompurchase0
+msgid "Invoice from Purchase"
+msgstr "Factura desde compra"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_packinglist0
+msgid "Packing is created for the products reception control."
+msgstr "Albarán es creado para el control de recepción de productos."
+
+#. module: purchase
+#: selection:purchase.order,invoice_method:0
+msgid "Manual"
+msgstr "Manual"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder1
+msgid "Confirming Purchase"
+msgstr "Confirmación compra"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0
+msgid "Approve Purchase order after Confirming"
+msgstr "Aprobar pedido de compra después de confirmación"
+
+#. module: purchase
+#: selection:purchase.order,state:0
+msgid "Shipping Exception"
+msgstr "Excepción de envío"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_draftpurchaseorder1
+msgid "Encoded manually by the user."
+msgstr "Codificación manual del usuario."
+
+#. module: purchase
+#: help:purchase.order,minimum_planned_date:0
+msgid ""
+"This is computed as the minimum scheduled date of all purchase order lines' "
+"products."
+msgstr ""
+"Ésto se calcula como la mínima fecha planificada para todos los productos de "
+"las líneas del pedido de compra."
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.act_res_partner_2_purchase_order
+msgid "Purchase orders"
+msgstr "Pedidos de compra"
+
+#. module: purchase
+#: help:purchase.order,dest_address_id:0
+msgid ""
+"Put an address if you want to deliver directly from the supplier to the "
+"customer.In this case, it will remove the warehouse link and set the "
+"customer location."
+msgstr ""
+"Introduzca una dirección si quiere enviar directamente desde el proveedor al "
+"cliente. En este caso, se eliminará el enlace al almacén y pondrá la "
+"ubicación del cliente."
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Request for Quotation :"
+msgstr "Presupuesto solicitado:"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
+msgid "Confirm Purchase order from Request for quotation"
+msgstr "Confirmar pedido de compra desde solicitud de presupuesto"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Confirm Purchase Order"
+msgstr "Confirmar pedido de compra"
+
+#. module: purchase
+#: help:purchase.order,picking_ids:0
+msgid ""
+"This is the list of picking list that have been generated for this purchase"
+msgstr "Ésta es la lista de albaranes generados por esta compra"
+
+#. module: purchase
+#: model:ir.module.module,shortdesc:purchase.module_meta_information
+#: model:ir.ui.menu,name:purchase.menu_purchase_root
+msgid "Purchase Management"
+msgstr "Compras"
+
+#. module: purchase
+#: field:purchase.order,partner_ref:0
+msgid "Partner Ref."
+msgstr "Ref. empresa"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Taxes :"
+msgstr "Impuestos :"
+
+#. module: purchase
+#: field:purchase.order,invoiced_rate:0
+msgid "Invoiced"
+msgstr "Facturado"
+
+#. module: purchase
+#: field:purchase.order,dest_address_id:0
+msgid "Destination Address"
+msgstr "Dirección destinatario"
+
+#. module: purchase
+#: view:purchase.order.line:0
+#: field:stock.move,purchase_line_id:0
+msgid "Purchase Order Line"
+msgstr "Línea pedido de compra"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Calendar View"
+msgstr "Vista calendario"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Set to Draft"
+msgstr "Cambiar a borrador"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_approvepurchaseorder0
+msgid "Purchase order is approved by supplier."
+msgstr "Pedido de compra es aprobado por el proveedor."
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_invoiceafterpacking0
+#: model:process.node,name:purchase.process_node_invoicecontrol0
+msgid "Draft Invoice"
+msgstr "Factura borrador"
+
+#. module: purchase
+#: model:ir.model,name:purchase.model_purchase_order
+msgid "Purchase order"
+msgstr "Pedido de compra"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_draftpurchaseorder0
+msgid "Request for quotation is proposed by the system."
+msgstr "La solicitud de presupuesto es propuesta por el sistema."
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_packinginvoice0
+msgid "Packing Invoice"
+msgstr "Facturar paquete"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_invoicefrompackinglist0
+msgid "Creates invoice from packin list"
+msgstr "Crear factura desde albarán"
+
+#. module: purchase
+#: help:purchase.order,date_order:0
+msgid "Date on which this document has been created."
+msgstr "Fecha de la creación de este documento."
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Delivery & Invoices"
+msgstr "Albaranes & Facturas"
+
+#. module: purchase
+#: field:purchase.order,date_order:0
+msgid "Date"
+msgstr "Fecha"
+
+#. module: purchase
+#: help:purchase.order,origin:0
+msgid "Reference of the document that generated this purchase order request."
+msgstr ""
+"Referencia al documento que ha generado esta solicitud de pedido de compra."
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Tél. :"
+msgstr "Tel. :"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_purchaseinvoice0
+msgid "After Purchase order , Create invoice."
+msgstr "Después de pedido de compra, crear factura."
+
+#. module: purchase
+#: field:purchase.order.line,date_planned:0
+msgid "Scheduled date"
+msgstr "Fecha planificada"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Our Order Reference"
+msgstr "Nuestra referencia"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "TVA:"
+msgstr "IVA:"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Compute"
+msgstr "Calcular"
+
+#. module: purchase
+#: constraint:product.pricelist.version:0
+msgid "You cannot have 2 pricelist versions that overlap!"
+msgstr "¡No puede tener 2 versiones de tarifa que se solapen!"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Cancel Purchase Order"
+msgstr "Cancelar pedido de compra"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_createpackinglist0
+msgid "Create Packing list"
+msgstr "Crear albarán"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Total :"
+msgstr "Total :"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_createpackinglist0
+msgid "When purchase order is approved , it creates its packing list."
+msgstr "Cuando el pedido de compra es aprobado, crea su albarán."
+
+#. module: purchase
+#: view:purchase.order.line:0
+msgid "History"
+msgstr "Historia"
+
+#. module: purchase
+#: field:purchase.order,state:0
+msgid "Order Status"
+msgstr "Estado del pedido"
+
+#. module: purchase
+#: field:purchase.order.line,price_subtotal:0
+msgid "Subtotal"
+msgstr "Subtotal"
+
+#. module: purchase
+#: model:product.pricelist.version,name:purchase.ver0
+msgid "Default Purchase Pricelist Version"
+msgstr "Versión tarifa de compra por defecto"
+
+#. module: purchase
+#: rml:purchase.order:0
+#: field:purchase.order.line,price_unit:0
+msgid "Unit Price"
+msgstr "Precio unidad"
+
+#. module: purchase
+#: field:purchase.order,fiscal_position:0
+msgid "Fiscal Position"
+msgstr "Posición fiscal"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Request for Quotation N°"
+msgstr "Petición de presupuesto Nº"
+
+#. module: purchase
+#: field:purchase.order,invoice_id:0
+msgid "Invoice"
+msgstr "Factura"
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_approvingcancelpurchaseorder0
+#: model:process.transition.action,name:purchase.process_transition_action_cancelpurchaseorder0
+#: wizard_button:purchase.order.merge,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: purchase
+#: view:res.partner:0
+msgid "Purchases Properties"
+msgstr "Propiedades de compra"
+
+#. module: purchase
+#: field:purchase.order.line,order_id:0
+msgid "Order Ref"
+msgstr "Ref. pedido"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_form_action
+#: model:ir.ui.menu,name:purchase.menu_purchase_form_action
+msgid "Purchase Orders"
+msgstr "Pedidos de compra"
+
+#. module: purchase
+#: wizard_view:purchase.order.merge,init:0
+#: wizard_button:purchase.order.merge,init,merge:0
+msgid "Merge orders"
+msgstr "Fusionar pedidos"
+
+#. module: purchase
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
+"especial!"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_form_action_new
+#: model:ir.ui.menu,name:purchase.menu_purchase_form_action_new
+msgid "New Purchase Order"
+msgstr "Nuevo pedido de compra"
+
+#. module: purchase
+#: field:purchase.order,shipped:0
+#: field:purchase.order,shipped_rate:0
+msgid "Received"
+msgstr "Recibido"
+
+#. module: purchase
+#: model:ir.actions.report.xml,name:purchase.report_purchase_quotation
+#: selection:purchase.order,state:0
+msgid "Request for Quotation"
+msgstr "Solicitud de presupuesto"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_packinginvoice0
+msgid "Out Packing"
+msgstr "Paquete saliente"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_productrecept0
+msgid "Control invoices on receptions"
+msgstr "Controlar facturas en la recepción"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Date Req."
+msgstr "Fecha solicitud"
+
+#. module: purchase
+#: field:purchase.order,date_approve:0
+msgid "Date Approved"
+msgstr "Fecha aprobación"
+
+#. module: purchase
+#: model:ir.module.module,description:purchase.module_meta_information
+msgid ""
+"Module for purchase management\n"
+" Request for quotation, Create Supplier Invoice, Print Order..."
+msgstr ""
+"Módulo para la gestión de compras\n"
+" Solicitud de presupuesto, crear pedido de compra, crear factura de "
+"proveedor, imprimir pedido de compra..."
+
+#. module: purchase
+#: field:purchase.order.line,product_id:0
+msgid "Product"
+msgstr "Producto"
+
+#. module: purchase
+#: rml:purchase.order:0
+#: field:purchase.order.line,name:0
+#: rml:purchase.quotation:0
+msgid "Description"
+msgstr "Descripción"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_productrecept0
+msgid "Product recept invoice"
+msgstr "Factura recepción producto"
+
+#. module: purchase
+#: rml:purchase.quotation:0
+msgid "Expected Delivery address:"
+msgstr "Dirección de entrega prevista:"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_form_action3
+#: model:ir.ui.menu,name:purchase.menu_purchase_form_action3
+msgid "Purchase Order Waiting Approval"
+msgstr "Pedido de compra esperando aprobación"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder0
+msgid "Confirming Purchase Order"
+msgstr "Confirmación pedido de compra"
+
+#. module: purchase
+#: field:purchase.order.line,product_uom:0
+msgid "Product UOM"
+msgstr "UdM del producto"
+
+#. module: purchase
+#: field:purchase.order.line,move_ids:0
+msgid "Reservation"
+msgstr "Reserva"
+
+#. module: purchase
+#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
+msgid "Purchase order is confirmed by the user."
+msgstr "Pedido de compra es confirmado por el usuario."
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_purchaseinvoice0
+msgid "Purchase Invoice"
+msgstr "Factura de compra"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Your Order Reference"
+msgstr "Su referencia"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Purchase Order Confirmation N°"
+msgstr "Confirmación de orden de compra Nº"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Total amount"
+msgstr "Importe total"
+
+#. module: purchase
+#: rml:purchase.order:0
+msgid "Date Ordered"
+msgstr "Fecha ordenado"
+
+#. module: purchase
+#: view:purchase.order:0
+msgid "Purchase Control"
+msgstr "Control de compra"
+
+#. module: purchase
+#: model:ir.actions.act_window,name:purchase.purchase_form_action2
+#: model:ir.ui.menu,name:purchase.menu_purchase_order_draft
+msgid "Request For Quotations"
+msgstr "Solicitud de presupuestos"
+
+#. module: purchase
+#: field:purchase.order,invoice_method:0
+msgid "Invoicing Control"
+msgstr "Método facturación"
+
+#. module: purchase
+#: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0
+msgid "Approve"
+msgstr "Aprobar"
+
+#. module: purchase
+#: model:process.node,name:purchase.process_node_approvepurchaseorder0
+msgid "Approved Purchase"
+msgstr "Compra aprobada"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_packinginvoice0
+msgid "From Packing list, Create invoice."
+msgstr "Desde albarán, crear factura."
+
+#. module: purchase
+#: field:purchase.order,amount_total:0
+msgid "Total"
+msgstr "Total"
+
+#. module: purchase
+#: wizard_view:purchase.order.merge,init:0
+msgid "Are you sure you want to merge these orders ?"
+msgstr "¿Está seguro que quiere fusionar estos pedidos?"
+
+#. module: purchase
+#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
+msgid "Approving Purchase Order"
+msgstr "Aprobación pedido de compra"
+
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
+msgid "After approved purchase order , it comes into the supplier invoice"
+msgstr ""
+"Después del pedido de compra aprobado, se convierte en factura de proveedor"
+
+#. module: purchase
+#: view:purchase.order.line:0
+msgid "Stock Moves"
+msgstr "Movimientos de stock"
+
+#. module: purchase
+#: selection:report.purchase.order.category,state:0
+#: selection:report.purchase.order.product,state:0
+msgid "Waiting Schedule"
+msgstr ""
+
+#. module: purchase
+#: field:report.purchase.order.category,price_total:0
+#: field:report.purchase.order.product,price_total:0
+msgid "Total Price"
+msgstr ""
+
+#. module: purchase
+#: selection:report.purchase.order.category,state:0
+#: selection:report.purchase.order.product,state:0
+msgid "Quotation"
+msgstr ""
+
+#. module: purchase
+#: selection:report.purchase.order.category,state:0
+#: selection:report.purchase.order.product,state:0
+msgid "Manual in progress"
+msgstr ""
+
+#. module: purchase
+#: selection:report.purchase.order.category,state:0
+#: selection:report.purchase.order.product,state:0
+msgid "In progress"
+msgstr ""
diff --git a/addons/purchase/i18n/et.po b/addons/purchase/i18n/et.po
index a7421253ddb..934865f7b84 100644
--- a/addons/purchase/i18n/et.po
+++ b/addons/purchase/i18n/et.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-11 05:41+0000\n"
-"Last-Translator: lyyser \n"
+"PO-Revision-Date: 2010-08-28 08:37+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-08-29 03:45+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -21,11 +21,6 @@ msgstr ""
msgid "From Order"
msgstr "Tellimusest"
-#. module: purchase
-#: model:process.transition,note:purchase.process_transition_productrecept0
-msgid "Create invoice from product recept"
-msgstr ""
-
#. module: purchase
#: model:ir.actions.report.xml,name:purchase.report_purchase_order
#: model:process.node,name:purchase.process_node_purchaseorder0
@@ -145,6 +140,11 @@ msgstr ""
msgid "Fax :"
msgstr "Faks :"
+#. module: purchase
+#: model:process.transition,note:purchase.process_transition_productrecept0
+msgid "Create invoice from product recept"
+msgstr "Loo arve toote vastuvõtmisest"
+
#. module: purchase
#: help:purchase.order,pricelist_id:0
msgid ""
@@ -899,28 +899,28 @@ msgstr "Lao liikumised"
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Waiting Schedule"
-msgstr ""
+msgstr "Ootegraafik"
#. module: purchase
#: field:report.purchase.order.category,price_total:0
#: field:report.purchase.order.product,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "Hind kokku"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Quotation"
-msgstr ""
+msgstr "Hinnapakkumine"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Edenemisel käsitsi"
#. module: purchase
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "In progress"
-msgstr ""
+msgstr "Hetkel toimumas"
diff --git a/addons/purchase/i18n/lt.po b/addons/purchase/i18n/lt.po
index ba537f8a136..4966c9883c5 100644
--- a/addons/purchase/i18n/lt.po
+++ b/addons/purchase/i18n/lt.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-11 05:41+0000\n"
+"PO-Revision-Date: 2010-08-29 10:09+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-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
diff --git a/addons/purchase/i18n/mn.po b/addons/purchase/i18n/mn.po
index 7a708942d56..9786622258d 100644
--- a/addons/purchase/i18n/mn.po
+++ b/addons/purchase/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-11 10:15+0000\n"
+"PO-Revision-Date: 2010-08-14 08:46+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-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:18+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@@ -25,7 +25,7 @@ msgstr "Нэхэмжилсэн & Төлсөн"
#. module: purchase
#: model:process.node,note:purchase.process_node_invoiceafterpacking0
msgid "Supplier Invoice pre-generated on receptions for control"
-msgstr ""
+msgstr "Хүлээн авалт дээр нийлүүлэгчийн нэхэмжлэл үүснэ"
#. module: purchase
#: field:purchase.order,location_id:0
@@ -384,7 +384,7 @@ msgstr "Захиалга нэгтгэх"
#. module: purchase
#: field:purchase.order.line,move_dest_id:0
msgid "Reservation Destination"
-msgstr ""
+msgstr "Нөөц хүргэх хаяг"
#. module: purchase
#: field:purchase.order,name:0
@@ -404,7 +404,7 @@ msgstr "Үнийн хүснэгт"
#. module: purchase
#: model:process.node,note:purchase.process_node_purchaseorder0
msgid "When controlling invoice from orders"
-msgstr ""
+msgstr "Захиалгаас нэхэмлэл удирдах үед"
#. module: purchase
#: constraint:ir.ui.view:0
@@ -424,7 +424,7 @@ msgstr "Худалдан авалтаас нэхэмжлэх"
#. module: purchase
#: model:process.node,note:purchase.process_node_packinglist0
msgid "Packing is created for the products reception control."
-msgstr ""
+msgstr "Бараа хүлээн авалтын хяналт дээр савлагаа баримт үүснэ"
#. module: purchase
#: selection:purchase.order,invoice_method:0
@@ -694,7 +694,7 @@ msgstr "Цуцлах"
#. module: purchase
#: view:res.partner:0
msgid "Purchases Properties"
-msgstr ""
+msgstr "Худалдан авалтын атрибутууд"
#. module: purchase
#: field:purchase.order.line,order_id:0
@@ -747,7 +747,7 @@ msgstr "Гарах баглаа"
#. module: purchase
#: model:process.node,note:purchase.process_node_productrecept0
msgid "Control invoices on receptions"
-msgstr ""
+msgstr "Ирэх нэхэмжлэлийг удирдах"
#. module: purchase
#: rml:purchase.order:0
@@ -919,7 +919,7 @@ msgstr "Үнийн ишлэл"
#: selection:report.purchase.order.category,state:0
#: selection:report.purchase.order.product,state:0
msgid "Manual in progress"
-msgstr ""
+msgstr "Гарын авлага үргэлжилж байна"
#. module: purchase
#: selection:report.purchase.order.category,state:0
diff --git a/addons/purchase/i18n/pt_BR.po b/addons/purchase/i18n/pt_BR.po
index 3a08d911b1a..d57a19666df 100644
--- a/addons/purchase/i18n/pt_BR.po
+++ b/addons/purchase/i18n/pt_BR.po
@@ -8,14 +8,14 @@ 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-07 03:51+0000\n"
+"PO-Revision-Date: 2010-08-12 06:37+0000\n"
"Last-Translator: Renato Lima - http://www.akretion.com "
"\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-13 05:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
diff --git a/addons/purchase/i18n/tr.po b/addons/purchase/i18n/tr.po
index 2c60a305846..ff9e4f8ed38 100644
--- a/addons/purchase/i18n/tr.po
+++ b/addons/purchase/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 07:56+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-12 03:45+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
diff --git a/addons/purchase/process/purchase_process.xml b/addons/purchase/process/purchase_process.xml
index 59d48d13b43..ddf557fe9c8 100644
--- a/addons/purchase/process/purchase_process.xml
+++ b/addons/purchase/process/purchase_process.xml
@@ -17,7 +17,6 @@
-->
-
@@ -119,7 +118,6 @@
-
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index afefebd4bb9..98098cdfbe2 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -53,7 +53,7 @@ class purchase_order(osv.osv):
'amount_untaxed': 0.0,
'amount_tax': 0.0,
'amount_total': 0.0,
- }
+ }
val = val1 = 0.0
cur = order.pricelist_id.currency_id
for line in order.order_line:
@@ -294,14 +294,14 @@ class purchase_order(osv.osv):
if manager and not (manager.id in managers):
managers.append(manager.id)
for manager_id in managers:
- request.create(cr, uid,
- {'name' : "Purchase amount over the limit",
+ request.create(cr, uid,{
+ 'name' : "Purchase amount over the limit",
'act_from' : uid,
'act_to' : manager_id,
'body': 'Somebody has just confirmed a purchase with an amount over the defined limit',
'ref_partner_id': po.partner_id.id,
'ref_doc1': 'purchase.order,%d' % (po.id,),
- })
+ })
def inv_line_create(self, cr, uid, a, ol):
return (0, False, {
'name': ol.name,
@@ -521,18 +521,18 @@ class purchase_order(osv.osv):
order_infos = new_order[0]
if not order_infos:
order_infos.update({
- 'origin': porder.origin,
- 'date_order': time.strftime('%Y-%m-%d'),
- 'partner_id': porder.partner_id.id,
- 'partner_address_id': porder.partner_address_id.id,
- 'dest_address_id': porder.dest_address_id.id,
- 'warehouse_id': porder.warehouse_id.id,
- 'location_id': porder.location_id.id,
- 'pricelist_id': porder.pricelist_id.id,
- 'state': 'draft',
- 'order_line': {},
- 'notes': '%s' % (porder.notes or '',),
- 'fiscal_position': porder.fiscal_position and porder.fiscal_position.id or False,
+ 'origin': porder.origin,
+ 'date_order': time.strftime('%Y-%m-%d'),
+ 'partner_id': porder.partner_id.id,
+ 'partner_address_id': porder.partner_address_id.id,
+ 'dest_address_id': porder.dest_address_id.id,
+ 'warehouse_id': porder.warehouse_id.id,
+ 'location_id': porder.location_id.id,
+ 'pricelist_id': porder.pricelist_id.id,
+ 'state': 'draft',
+ 'order_line': {},
+ 'notes': '%s' % (porder.notes or '',),
+ 'fiscal_position': porder.fiscal_position and porder.fiscal_position.id or False,
})
else:
if porder.notes:
diff --git a/addons/purchase/purchase_unit_test.xml b/addons/purchase/purchase_unit_test.xml
index d32f2f30a53..0c6de9312c2 100644
--- a/addons/purchase/purchase_unit_test.xml
+++ b/addons/purchase/purchase_unit_test.xml
@@ -51,10 +51,6 @@
-
draft
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index a294dafeea1..81834ebbdbf 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -222,6 +222,7 @@
{'search_default_draft': 1,'search_default_create_uid':uid}
tree,form,graph,calendar
+ With the Requests for quotation menu you can create new quotations, review existing one and confirm them to order once the supplier offer is approved.
@@ -233,6 +234,7 @@
tree,form,graph,calendar
{'search_default_approved': 1,'search_default_create_uid':uid}
+ From the Purchase Orders menu, you can create directly new orders and consult the list of your orders in their various state.
@@ -252,7 +254,7 @@
-
+
purchase.order.line.form2
purchase.order.line
form
+
-
+
-
+
-
+
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 2c0a24d0f65..010f847ad99 100644
--- a/addons/purchase/wizard/purchase_installer.py
+++ b/addons/purchase/wizard/purchase_installer.py
@@ -27,7 +27,7 @@ class purchase_installer(osv.osv_memory):
_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_analytic_plans': fields.boolean('Purchase Analytic Plans',help="Manages analytic distribution and purchase orders.")
- }
+ }
purchase_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/wizard/purchase_installer.xml b/addons/purchase/wizard/purchase_installer.xml
index dc10beacd98..369849e1b18 100644
--- a/addons/purchase/wizard/purchase_installer.xml
+++ b/addons/purchase/wizard/purchase_installer.xml
@@ -9,7 +9,7 @@
- Purchase Modules Installation
+ Purchase Modules Configuration
diff --git a/addons/purchase/wizard/purchase_line_invoice.py b/addons/purchase/wizard/purchase_line_invoice.py
index 12024df71ad..421f9d3185e 100644
--- a/addons/purchase/wizard/purchase_line_invoice.py
+++ b/addons/purchase/wizard/purchase_line_invoice.py
@@ -49,7 +49,7 @@ class purchase_line_invoice(osv.osv_memory):
property_obj=self.pool.get('ir.property')
account_fiscal_obj=self.pool.get('account.fiscal.position')
invoice_line_obj=self.pool.get('account.invoice.line')
-
+
def make_invoice(order, lines):
a = order.partner_id.property_account_payable.id
if order.partner_id and order.partner_id.property_payment_term.id:
@@ -73,7 +73,7 @@ class purchase_line_invoice(osv.osv_memory):
}
inv_id = invoice_obj.create(cr, uid, inv)
return inv_id
-
+
for line in purchase_line_obj.browse(cr,uid,record_ids):
if (not line.invoiced) and (line.state not in ('draft','cancel')):
if not line.order_id.id in invoices:
@@ -108,25 +108,25 @@ class purchase_line_invoice(osv.osv_memory):
cr.execute('insert into purchase_order_line_invoice_rel (order_line_id,invoice_id) values (%s,%s)', (line.id, inv_id))
purchase_line_obj.write(cr, uid, [line.id], {'invoiced': True})
invoices[line.order_id.id].append((line,inv_id))
-
+
res = []
for result in invoices.values():
order = result[0][0].order_id
il = map(lambda x: x[1], result)
res.append(make_invoice(order, il))
-
+
return {
- 'domain': "[('id','in', ["+','.join(map(str,res))+"])]",
- 'name': _('Supplier Invoices'),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'account.invoice',
- 'view_id': False,
- 'context': "{'type':'in_invoice'}",
- 'type': 'ir.actions.act_window'
- }
+ 'domain': "[('id','in', ["+','.join(map(str,res))+"])]",
+ 'name': _('Supplier Invoices'),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'account.invoice',
+ 'view_id': False,
+ 'context': "{'type':'in_invoice'}",
+ 'type': 'ir.actions.act_window'
+ }
purchase_line_invoice()
-
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/wizard/purchase_order_group.py b/addons/purchase/wizard/purchase_order_group.py
index d9778dceb47..8d2e17609e8 100644
--- a/addons/purchase/wizard/purchase_order_group.py
+++ b/addons/purchase/wizard/purchase_order_group.py
@@ -50,14 +50,14 @@ class purchase_order_group(osv.osv_memory):
allorders = order_obj.do_merge(cr, uid, context.get('active_ids',[]), context)
return {
- 'domain': "[('id','in', [" + ','.join(map(str, allorders)) + "])]",
- 'name': 'Purchase Orders',
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'purchase.order',
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id']
+ 'domain': "[('id','in', [" + ','.join(map(str, allorders)) + "])]",
+ 'name': 'Purchase Orders',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'purchase.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id']
}
purchase_order_group()
diff --git a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
index 498ceb2bd0a..849c0260470 100644
--- a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
+++ b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/addons/purchase_requisition/__openerp__.py b/addons/purchase_requisition/__openerp__.py
index 841f8ed318b..e8811499a9f 100644
--- a/addons/purchase_requisition/__openerp__.py
+++ b/addons/purchase_requisition/__openerp__.py
@@ -33,11 +33,10 @@
"demo_xml" : [],
"update_xml" : ["wizard/purchase_requisition_partner_view.xml",
"purchase_requisition_view.xml",
- "security/ir.model.access.csv","purchase_requisition_sequence.xml"],
+ "security/ir.model.access.csv","purchase_requisition_sequence.xml"
+ ],
"active": False,
- "test":[
-# 'test/purchase_requisition.yml','test/purchase_requisition_exclusive.yml'
- ],
+ "test":[],
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py
index 37a2aaafd3a..4e7ebb19a64 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 _
@@ -117,7 +118,7 @@ class purchase_requisition_line(osv.osv):
_defaults = {
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'purchase.requisition.line', context=c),
- }
+ }
purchase_requisition_line()
class purchase_order(osv.osv):
@@ -179,9 +180,9 @@ class procurement_order(osv.osv):
})],
'purchase_ids': [(6,0,[po_id])]
})
- self.write(cr,uid,proc_id,{'requisition_id':requisition_id})
+ self.write(cr,uid,proc_id,{'requisition_id':requisition_id})
return res
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_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml
index 0a436500986..8a9c4375e52 100644
--- a/addons/purchase_requisition/purchase_requisition_view.xml
+++ b/addons/purchase_requisition/purchase_requisition_view.xml
@@ -117,10 +117,11 @@
-
-
+
+
+
-
+
diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner.py b/addons/purchase_requisition/wizard/purchase_requisition_partner.py
index 56e56799700..f87460489ea 100644
--- a/addons/purchase_requisition/wizard/purchase_requisition_partner.py
+++ b/addons/purchase_requisition/wizard/purchase_requisition_partner.py
@@ -31,7 +31,7 @@ class purchase_requisition_partner(osv.osv_memory):
_columns = {
'partner_id': fields.many2one('res.partner', 'Partner', required=True,domain=[('supplier', '=', True)]),
'partner_address_id':fields.many2one('res.partner.address', 'Address', required=True),
- }
+ }
def view_init(self, cr, uid, fields_list, context=None):
res = super(purchase_requisition_partner, self).view_init(cr, uid, fields_list, context=context)
@@ -102,7 +102,7 @@ class purchase_requisition_partner(osv.osv_memory):
'price_unit': price,
'date_planned': newdate.strftime('%Y-%m-%d %H:%M:%S'),
'notes': product.description_purchase,
- }
+ }
taxes_ids = line.product_id.product_tmpl_id.supplier_taxes_id
taxes = acc_pos_obj.map_tax(cr, uid, partner.property_account_position, taxes_ids)
purchase_order_line.update({
@@ -118,7 +118,7 @@ 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,
- })
+ })
order_ids=[]
for order_line in list_line:
order_line.update({
diff --git a/addons/report_designer/installer.py b/addons/report_designer/installer.py
index 1dd9797a68b..d67ebabb77e 100644
--- a/addons/report_designer/installer.py
+++ b/addons/report_designer/installer.py
@@ -37,6 +37,6 @@ class report_designer_installer(osv.osv_memory):
"After installation you will get Cube Browser and Cube Desinger 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."),
- }
+ }
report_designer_installer()
diff --git a/addons/report_intrastat/i18n/et.po b/addons/report_intrastat/i18n/et.po
index 2c876516de8..d592198ce7a 100644
--- a/addons/report_intrastat/i18n/et.po
+++ b/addons/report_intrastat/i18n/et.po
@@ -7,35 +7,20 @@ 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-09 19:46+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2010-08-28 08:22+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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-29 03:47+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
-#. module: report_intrastat
-#: rml:account.invoice.intrastat:0
-msgid "Canceled Invoice"
-msgstr "Tühistatud Arve"
-
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "PRO-FORMA"
msgstr "Ettemaks"
-#. module: report_intrastat
-#: rml:account.invoice.intrastat:0
-msgid "Draft Invoice"
-msgstr "Arve Mustand"
-
-#. module: report_intrastat
-#: rml:account.invoice.intrastat:0
-msgid "Total (excl. taxes):"
-msgstr "Kokku (sisald. makse):"
-
#. module: report_intrastat
#: constraint:ir.model:0
msgid ""
@@ -43,6 +28,11 @@ msgid ""
msgstr ""
"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
+#. module: report_intrastat
+#: rml:account.invoice.intrastat:0
+msgid "Canceled Invoice"
+msgstr "Tühistatud arve"
+
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Disc. (%)"
@@ -202,10 +192,15 @@ msgstr "Väärtus"
msgid "Intrastat"
msgstr "Intrastat"
+#. module: report_intrastat
+#: rml:account.invoice.intrastat:0
+msgid "Draft Invoice"
+msgstr "Arve mustand"
+
#. module: report_intrastat
#: field:report.intrastat,supply_units:0
msgid "Supply Units"
-msgstr ""
+msgstr "Tarnimis ühikud"
#. module: report_intrastat
#: model:ir.model,name:report_intrastat.model_report_intrastat_code
@@ -261,6 +256,11 @@ msgstr "Fax :"
msgid "Supplier Refund"
msgstr "Tarnija tagasimakse"
+#. module: report_intrastat
+#: rml:account.invoice.intrastat:0
+msgid "Total (excl. taxes):"
+msgstr "Kokku (maksudeta):"
+
#. module: report_intrastat
#: rml:account.invoice.intrastat:0
msgid "Price"
diff --git a/addons/report_intrastat/i18n/pt_BR.po b/addons/report_intrastat/i18n/pt_BR.po
index 45aa5fbb408..3a9a250564c 100644
--- a/addons/report_intrastat/i18n/pt_BR.po
+++ b/addons/report_intrastat/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:31+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-12 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_intrastat
diff --git a/addons/report_intrastat/i18n/tr.po b/addons/report_intrastat/i18n/tr.po
index 5579fd5a8c5..739d64f6fe2 100644
--- a/addons/report_intrastat/i18n/tr.po
+++ b/addons/report_intrastat/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:14+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-12 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_intrastat
diff --git a/addons/report_intrastat/report_intrastat.py b/addons/report_intrastat/report_intrastat.py
index 532bede5ac3..90c2884cceb 100644
--- a/addons/report_intrastat/report_intrastat.py
+++ b/addons/report_intrastat/report_intrastat.py
@@ -107,7 +107,7 @@ class report_intrastat(osv.osv):
left join account_invoice_line inv_line on inv_line.invoice_id=inv.id
left join (product_template pt
left join product_product pp on (pp.product_tmpl_id = pt.id))
- on (inv_line.product_id = pt.id)
+ on (inv_line.product_id = pp.id)
left join product_uom uom on uom.id=inv_line.uos_id
left join product_uom puom on puom.id = pt.uom_id
left join report_intrastat_code intrastat on pt.intrastat_id = intrastat.id
diff --git a/addons/resource/__openerp__.py b/addons/resource/__openerp__.py
index 01780626db7..82d68f53ef4 100644
--- a/addons/resource/__openerp__.py
+++ b/addons/resource/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
"name" : "Resource",
"version" : "1.1",
@@ -36,10 +35,9 @@
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'depends': ['base', 'process'],
+ 'depends': ['process'],
'init_xml': [],
'update_xml': [
- #'security/resource_security.xml',
'security/ir.model.access.csv',
'resource_view.xml',
],
@@ -49,4 +47,5 @@
'active': False,
'certificate': None,
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/resource/faces/plocale.py b/addons/resource/faces/plocale.py
index 3dcd35c7cae..a9de390b255 100644
--- a/addons/resource/faces/plocale.py
+++ b/addons/resource/faces/plocale.py
@@ -23,7 +23,7 @@
import gettext
import os.path
import locale
-
+import sys
def _get_translation():
try:
diff --git a/addons/resource/i18n/de.po b/addons/resource/i18n/de.po
new file mode 100644
index 00000000000..64c1816b656
--- /dev/null
+++ b/addons/resource/i18n/de.po
@@ -0,0 +1,332 @@
+# 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-18 06:50+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: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid ""
+"If empty, this is a generic holiday for the company. If a resource is set, "
+"the holiday/leave is only for this resource"
+msgstr ""
+"Wenn leer, dann ist es ein allgemeiner Feiertag für die Firma. Wenn "
+"definiert, dann gilt der Feiertag nur für diese Ressource"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr "Freitag"
+
+#. module: resource
+#: 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: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr "Ressource Typ"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr "Abwesenheitsdetail"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr "Abwesende Ressourcen"
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr "Arbeitszeit"
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr "Donnerstag"
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr "Gruppiert nach..."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr "Sonntag"
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Ungültiger Modellname in der Aktionsdefinition."
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr "Suche Ressource"
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr "Typ"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr "Ressourcen"
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr "Abteilungsleiter"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr "Suche Arbeitsperiode"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr "Montag"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr "Ressourcen Kalender"
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr "Mandant"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr "Material"
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr "Wochentag"
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr "Anfangsdatum"
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr "Benutzer"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr "Suche Arbeitsperioden Abwesenheiten"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr "Enddatum"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr "Abschlussdatum"
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr "Ressource"
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr "Bezeichnung"
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid ""
+"\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid ""
+"If the active field is set to true, it will allow you to hide the resource "
+"record without removing it."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr "Arbeits-/Bürozeiten"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr "Ressource Detail"
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr "Aktiv"
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr "Ressourcen Kalender"
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr "Definire den Einsatzplan für diese Ressource"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr "Arbeitszeit von"
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr "Code"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr "Arbeitszeit bis"
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid ""
+"This field depict the efficiency of the resource to complete tasks. e.g "
+"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
+"show a load of 100% for this phase by default, but if we put a efficency of "
+"200%, then his load will only be 50%."
+msgstr ""
+"Dieses Feld beschreibt die Effizienz der Ressource bei der Erfüllung einer "
+"Aufgabe. \r\n"
+"Werden Ressource für 5 Tage zugeteilt wird eine Auslastung von 100% "
+"angezeigt. \r\n"
+"Wenn die Effizienz auf 200% gesetzt wird, wird eine Auslastung von 50% "
+"angezeigt."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr "Dienstag"
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr "Arbeitszeit"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr "Ressource Abwesenheiten"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr "Manager"
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr "(Ferien)"
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr "Effizienzfaktor"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr "Mensch"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr "Arbeitsdetail"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr "Startdatum"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr "Samstag"
diff --git a/addons/resource/i18n/en_US.po b/addons/resource/i18n/en_US.po
new file mode 100644
index 00000000000..8c4932c4a6d
--- /dev/null
+++ b/addons/resource/i18n/en_US.po
@@ -0,0 +1,318 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * resource
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-18 06:50:02+0000\n"
+"PO-Revision-Date: 2010-08-18 06: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: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid "If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"
+msgstr "If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr "Friday"
+
+#. module: resource
+#: 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: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr "Resource Type"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr "Leave Detail"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr "Resources Leaves"
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr "Working Time"
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr "Thursday"
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr "Group By..."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr "Sunday"
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr "Search Resource"
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr "Type"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr "Resources"
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr "Workgroup manager"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr "Search Working Period"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr "Monday"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr "Resource Calendar"
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr "Company"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr "Material"
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr "Day of week"
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr "Starting date"
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr "User"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr "Date"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr "Search Working Period Leaves"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr "End Date"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr "Closing Days"
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr "Resource"
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr "Name"
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid "\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr "\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid "If the active field is set to true, it will allow you to hide the resource record without removing it."
+msgstr "If the active field is set to true, it will allow you to hide the resource record without removing it."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr "Wednesday"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr "Working Period"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr "Resource Detail"
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr "Active"
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr "Resource's Calendar"
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr "Related user name for the resource to manage its access."
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr "Define the schedule of resource"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr "Work from"
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr "Code"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr "Work to"
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid "This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."
+msgstr "This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr "Tuesday"
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr "Working time"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr "Resource Leaves"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr "Manager"
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr "(vacation)"
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr "Efficiency factor"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr "Human"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr "Work Detail"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr "Start Date"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr "Saturday"
+
diff --git a/addons/resource/i18n/et.po b/addons/resource/i18n/et.po
new file mode 100644
index 00000000000..400369f6dd9
--- /dev/null
+++ b/addons/resource/i18n/et.po
@@ -0,0 +1,323 @@
+# Estonian 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-18 06:50+0000\n"
+"PO-Revision-Date: 2010-08-28 08:21+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Estonian \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-29 03:48+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid ""
+"If empty, this is a generic holiday for the company. If a resource is set, "
+"the holiday/leave is only for this resource"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr "Reede"
+
+#. module: resource
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
+
+#. module: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr "Ressursi tüüp"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr "Tööaeg"
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Vigane XML vaate arhitektuurile!"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr "Neljapäev"
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr "Pühapäev"
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Vigane mudeli nimi toimingu definitsioonis."
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr "Tüüp"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr "Ressursid"
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr "Töörühma juhataja"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr "Esmaspäev"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr "Ettevõte"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr "Materjal"
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr "Nädalapäev"
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr "Alustamise kuupäev"
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr "Kasutaja"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr "Kuupäev"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr "Lõppkuupäev"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr "Sulgemise päevad"
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr "Ressurss"
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid ""
+"\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid ""
+"If the active field is set to true, it will allow you to hide the resource "
+"record without removing it."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr "Kolmapäev"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr "Tööaeg"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr "Aktiivne"
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr "Töötab alates"
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr "Kood"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr "Töötab kuni"
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid ""
+"This field depict the efficiency of the resource to complete tasks. e.g "
+"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
+"show a load of 100% for this phase by default, but if we put a efficency of "
+"200%, then his load will only be 50%."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr "Teisipäev"
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr "Tööaeg"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr "Haldur"
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr ""
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr "Inimene"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr "Alguskuupäev"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr "Laupäev"
diff --git a/addons/resource/i18n/fr.po b/addons/resource/i18n/fr.po
new file mode 100644
index 00000000000..ca19ddbb5dc
--- /dev/null
+++ b/addons/resource/i18n/fr.po
@@ -0,0 +1,321 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * resource
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-18 06:50+0000\n"
+"PO-Revision-Date: 2010-08-19 10:49+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-20 03:40+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid ""
+"If empty, this is a generic holiday for the company. If a resource is set, "
+"the holiday/leave is only for this resource"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr ""
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr ""
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid ""
+"\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid ""
+"If the active field is set to true, it will allow you to hide the resource "
+"record without removing it."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid ""
+"This field depict the efficiency of the resource to complete tasks. e.g "
+"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
+"show a load of 100% for this phase by default, but if we put a efficency of "
+"200%, then his load will only be 50%."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr ""
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr ""
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr ""
diff --git a/addons/resource/i18n/pl.po b/addons/resource/i18n/pl.po
new file mode 100644
index 00000000000..2faa53549c2
--- /dev/null
+++ b/addons/resource/i18n/pl.po
@@ -0,0 +1,326 @@
+# Polish 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-18 06:50+0000\n"
+"PO-Revision-Date: 2010-08-22 05:49+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Polish \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: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid ""
+"If empty, this is a generic holiday for the company. If a resource is set, "
+"the holiday/leave is only for this resource"
+msgstr ""
+"Jeśli puste, to jest to ogólny dzień wolny dla firmy. Jeśli ustawiono zasób, "
+"to jest to dzień wolny/urlop tylko dla tego zasobu"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr "Piątek"
+
+#. module: resource
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
+"specjalnych !"
+
+#. module: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr "Typ zasobu"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr "Opis nieobecności"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr "Nieobecności zasobu"
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr "Czas pracy"
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr "Czwartek"
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr "Grupuj wg..."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr "Niedziela"
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr "Szukaj zasobów"
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr "Typ"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr "Zasoby"
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr "Kierownik grupy"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr "Szukaj okresu pracy"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr "Poniedziałek"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr "Kalendarz zasobu"
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr "Firma"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr "Materiał"
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr "Dzień tygodnia"
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr "Data rozpoczęcia"
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr "Użytkownik"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr "Data"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr "Szukaj nieobecności w okresie pracy"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr "Data końcowa"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr "Dni zamknięcia"
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr "Zasób"
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr "Nazwa"
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid ""
+"\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid ""
+"If the active field is set to true, it will allow you to hide the resource "
+"record without removing it."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr "Środa"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr "Godziny pracy"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr "Szczegóły zasobu"
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr "Aktywne"
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr "Kalendarz zasobów"
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr "Użytkownik powiązany z zasobem do zarządzania jego dostępnością"
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr "Definiuj terminarz zasobu"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr "Pracuje od"
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr "Kod"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr "Pracuje do"
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid ""
+"This field depict the efficiency of the resource to complete tasks. e.g "
+"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
+"show a load of 100% for this phase by default, but if we put a efficency of "
+"200%, then his load will only be 50%."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr "Wtorek"
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr "Czas pracy"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr "Niebecności zasobu"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr "Menedżer"
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr "Współczynnik efektywności"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr "Człowiek"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr "Szczegóły pracy"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr "Data Początkowa"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr "Sobota"
diff --git a/addons/resource/i18n/resource.pot b/addons/resource/i18n/resource.pot
new file mode 100644
index 00000000000..7e201b5aa73
--- /dev/null
+++ b/addons/resource/i18n/resource.pot
@@ -0,0 +1,310 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * resource
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 6.0dev\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-08-18 06:50:02+0000\n"
+"PO-Revision-Date: 2010-08-18 06: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: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid "If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: view:resource.calendar.leaves:0
+msgid "Working Time"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr ""
+
+#. module: resource
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup manager"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Period"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of week"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting date"
+msgstr ""
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr ""
+
+#. module: resource
+#: model:ir.module.module,shortdesc:resource.module_meta_information
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr ""
+
+#. module: resource
+#: model:ir.module.module,description:resource.module_meta_information
+msgid "\n"
+" Module for resource management\n"
+" A resource represent something that can be scheduled\n"
+" (a developer on a task or a workcenter on manufacturing orders).\n"
+" This module manages a resource calendar associated to every resource.\n"
+" It also manages the leaves of every resource.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid "If the active field is set to true, it will allow you to hide the resource record without removing it."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+msgid "Working Period"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid "This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working time"
+msgstr ""
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+msgid "Resource Leaves"
+msgstr ""
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Manager"
+msgstr ""
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:0
+#, python-format
+msgid "(vacation)"
+msgstr ""
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency factor"
+msgstr ""
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr ""
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr ""
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr ""
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr ""
\ No newline at end of file
diff --git a/addons/resource/resource.py b/addons/resource/resource.py
index 0aba6b10081..d31511e33e5 100644
--- a/addons/resource/resource.py
+++ b/addons/resource/resource.py
@@ -18,7 +18,8 @@
# along with this program. If not, see .
#
##############################################################################
-import mx.DateTime
+
+from datetime import datetime, timedelta
import time
import math
@@ -37,26 +38,27 @@ class resource_calendar(osv.osv):
_defaults = {
'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.calendar', context=context)
}
-
+
def _get_leaves(self, cr, uid, id, resource):
resource_cal_leaves = self.pool.get('resource.calendar.leaves')
dt_leave = []
-
+
resource_leave_ids = resource_cal_leaves.search(cr, uid, [('calendar_id','=',id), '|', ('resource_id','=',False), ('resource_id','=',resource)])
res_leaves = resource_cal_leaves.read(cr, uid, resource_leave_ids, ['date_from', 'date_to'])
-
+
for leave in res_leaves:
- dtf = mx.DateTime.strptime(leave['date_from'], '%Y-%m-%d %H:%M:%S')
- dtt = mx.DateTime.strptime(leave['date_to'], '%Y-%m-%d %H:%M:%S')
+ dtf = datetime.strptime(leave['date_from'], '%Y-%m-%d %H:%M:%S')
+ dtt = datetime.strptime(leave['date_to'], '%Y-%m-%d %H:%M:%S')
no = dtt - dtf
- [dt_leave.append((dtf + mx.DateTime.RelativeDateTime(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))]
+ [dt_leave.append((dtf + timedelta(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))]
dt_leave.sort()
-
+
return dt_leave
-
+
def interval_min_get(self, cr, uid, id, dt_from, hours, resource=False):
if not id:
- return [(dt_from - mx.DateTime.RelativeDateTime(hours=int(hours)*3), dt_from)]
+ td = int(hours)*3
+ return [(dt_from - timedelta(hours=td), dt_from)]
dt_leave = self._get_leaves(cr, uid, id, resource)
dt_leave.reverse()
todo = hours
@@ -65,7 +67,7 @@ class resource_calendar(osv.osv):
maxrecur = 100
current_hour = dt_from.hour
while (todo>0) and maxrecur:
- cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from desc", (dt_from.day_of_week,id))
+ cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from desc", (dt_from.weekday(),id))
for (hour_from,hour_to) in cr.fetchall():
leave_flag = False
if (hour_from0):
@@ -75,17 +77,17 @@ class resource_calendar(osv.osv):
dt_check = dt_from.strftime('%Y-%m-%d')
for leave in dt_leave:
if dt_check == leave:
- dt_check = mx.DateTime.strptime(dt_check,"%Y-%m-%d") - mx.DateTime.RelativeDateTime(days=1)
+ dt_check = datetime.strptime(dt_check, '%Y-%m-%d') + timedelta(days=1)
leave_flag = True
if leave_flag:
break
else:
- d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_from)), int((hour_from%1) * 60))
- d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60))
+ d1 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_from)), int((hour_from%1) * 60))
+ d2 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60))
result.append((d1, d2))
current_hour = hour_from
todo -= (m-hour_from)
- dt_from -= mx.DateTime.RelativeDateTime(days=1)
+ dt_from -= timedelta(days=1)
current_hour = 24
maxrecur -= 1
result.reverse()
@@ -93,7 +95,8 @@ class resource_calendar(osv.osv):
def interval_get(self, cr, uid, id, dt_from, hours, resource=False, byday=True):
if not id:
- return [(dt_from,dt_from + mx.DateTime.RelativeDateTime(hours=int(hours)*3))]
+ td = int(hours)*3
+ return [(dt_from, dt_from + timedelta(hours=td))]
dt_leave = self._get_leaves(cr, uid, id, resource)
todo = hours
cycle = 0
@@ -101,7 +104,7 @@ class resource_calendar(osv.osv):
maxrecur = 100
current_hour = dt_from.hour
while (todo>0) and maxrecur:
- cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
+ cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.weekday(),id))
for (hour_from,hour_to) in cr.fetchall():
leave_flag = False
if (hour_to>current_hour) and (todo>0):
@@ -111,32 +114,32 @@ class resource_calendar(osv.osv):
dt_check = dt_from.strftime('%Y-%m-%d')
for leave in dt_leave:
if dt_check == leave:
- dt_check = mx.DateTime.strptime(dt_check, "%Y-%m-%d") + mx.DateTime.RelativeDateTime(days=1)
+ dt_check = datetime.strptime(dt_check, '%Y-%m-%d') + timedelta(days=1)
leave_flag = True
if leave_flag:
break
else:
- d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60))
- d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60))
+ d1 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60))
+ d2 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60))
result.append((d1, d2))
current_hour = hour_to
todo -= (hour_to - m)
- dt_from += mx.DateTime.RelativeDateTime(days=1)
+ dt_from += timedelta(days=1)
current_hour = 0
maxrecur -= 1
return result
-
+
def interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource=False):
result = []
if not id:
return 0.0
dt_leave = self._get_leaves(cr, uid, id, resource)
hours = 0.0
-
+
current_hour = dt_from.hour
while (dt_from <= dt_to):
- cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id))
+ cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.weekday(),id))
der = cr.fetchall()
for (hour_from,hour_to) in der:
if hours != 0.0:#For first time of the loop only,hours will be 0
@@ -146,27 +149,28 @@ class resource_calendar(osv.osv):
dt_check = dt_from.strftime('%Y-%m-%d')
for leave in dt_leave:
if dt_check == leave:
- dt_check = mx.DateTime.strptime(dt_check, "%Y-%m-%d") + mx.DateTime.RelativeDateTime(days=1)
+ dt_check = datetime.strptime(dt_check, "%Y-%m-%d") + timedelta(days=1)
leave_flag = True
-
+
if leave_flag:
break
else:
d1 = dt_from
- d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60))
-
+ d2 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60))
+
if hours != 0.0:#For first time of the loop only,hours will be 0
- d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60))
-
+ d1 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60))
+
if dt_from.day == dt_to.day:
if hour_from <= dt_to.hour <= hour_to:
d2 = dt_to
dt_from = d2
hours += (d2-d1).seconds
- dt_from = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60)) + mx.DateTime.RelativeDateTime(days=1)
+ dt_from = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60)) + timedelta(days=1)
current_hour = 0.0
+
return (hours/3600)
-
+
resource_calendar()
class resource_calendar_attendance(osv.osv):
@@ -227,6 +231,7 @@ class resource_calendar_leaves(osv.osv):
'date_to' : fields.datetime('End Date', required=True),
'resource_id' : fields.many2one("resource.resource", "Resource", help="If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"),
}
+
def check_dates(self, cr, uid, ids, context={}):
leave = self.read(cr, uid, ids[0], ['date_from', 'date_to'])
if leave['date_from'] and leave['date_to']:
@@ -238,7 +243,7 @@ class resource_calendar_leaves(osv.osv):
(check_dates, 'Error! leave start-date must be lower then leave end-date.', ['date_from', 'date_to'])
]
- def onchange_resource(self,cr, uid, ids, resource, context={}):
+ def onchange_resource(self,cr, uid, ids, resource, context=None):
result = {}
if resource:
resource_pool = self.pool.get('resource.resource')
@@ -247,4 +252,5 @@ class resource_calendar_leaves(osv.osv):
return {'value': {'calendar_id': []}}
resource_calendar_leaves()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/resource/resource_view.xml b/addons/resource/resource_view.xml
index 98afe8f5a03..02b9abd882a 100644
--- a/addons/resource/resource_view.xml
+++ b/addons/resource/resource_view.xml
@@ -26,8 +26,7 @@
-
-
+
resource.calendar.search
resource.calendar
search
@@ -41,7 +40,7 @@
-
+
@@ -78,7 +77,6 @@
-
@@ -118,6 +116,7 @@
+
resource.calendar.attendance.form
resource.calendar.attendance
@@ -176,6 +175,7 @@
+
resource.resource.tree
resource.resource
@@ -191,6 +191,7 @@
+
Resources
resource.resource
diff --git a/addons/sale/__init__.py b/addons/sale/__init__.py
index 4d8541b4ab5..62fcf516a6b 100644
--- a/addons/sale/__init__.py
+++ b/addons/sale/__init__.py
@@ -31,5 +31,4 @@ import wizard
import report
import company
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py
index bc9e073de01..ceab22fd98a 100644
--- a/addons/sale/__openerp__.py
+++ b/addons/sale/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
'name': 'Sales Management',
'version': '1.0',
@@ -48,7 +47,7 @@
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
- 'depends': ['product', 'stock', 'procurement', 'process','board'],
+ 'depends': ['stock', 'procurement', 'board'],
'init_xml': [],
'update_xml': [
'wizard/sale_make_invoice_advance.xml',
@@ -66,9 +65,9 @@
'sale_report.xml',
'stock_view.xml',
'board_sale_view.xml',
-# 'process/sale_process.xml',
+ 'process/sale_process.xml',
],
- 'demo_xml': ['sale_demo.xml','board_sale_demo.xml'],
+ 'demo_xml': ['sale_demo.xml'],
'test': [
'test/data_test.yml',
'test/manual_order_policy.yml',
@@ -77,7 +76,6 @@
'test/postpaid_order_policy.yml',
'test/advance_invoice.yml',
'test/so_make_line_invoice.yml',
- 'test/so_make_invoice.yml',
'test/sale_procurement.yml',
'test/invoice_on_ordered_qty.yml',
'test/invoice_on_shipped_qty.yml',
@@ -86,4 +84,4 @@
'active': False,
'certificate': '0058103601429',
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/board_sale_demo.xml b/addons/sale/board_sale_demo.xml
deleted file mode 100644
index 09419de206c..00000000000
--- a/addons/sale/board_sale_demo.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/addons/sale/board_sale_view.xml b/addons/sale/board_sale_view.xml
index b25e7e5b1b2..3e19e2fb4ee 100644
--- a/addons/sale/board_sale_view.xml
+++ b/addons/sale/board_sale_view.xml
@@ -5,23 +5,6 @@
Sales
-
board.sales.manager.form
board.board
@@ -52,6 +35,6 @@
-
+
-
+
\ No newline at end of file
diff --git a/addons/sale/company.py b/addons/sale/company.py
index 401a1a9c1d8..52d513f6dc9 100644
--- a/addons/sale/company.py
+++ b/addons/sale/company.py
@@ -29,9 +29,9 @@ class company(osv.osv):
"for security purpose"),
}
_defaults = {
- 'security_lead': lambda *a: 5.0,
+ 'security_lead': 5.0,
}
+
company()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/company_view.xml b/addons/sale/company_view.xml
index ead9128d6f3..4088c38db08 100644
--- a/addons/sale/company_view.xml
+++ b/addons/sale/company_view.xml
@@ -1,7 +1,6 @@
-
res.company.mrp.config
res.company
@@ -13,6 +12,5 @@
-
diff --git a/addons/sale/i18n/de.po b/addons/sale/i18n/de.po
index c85ee06ce73..a48d5d5b520 100644
--- a/addons/sale/i18n/de.po
+++ b/addons/sale/i18n/de.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-03 08: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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
@@ -414,7 +414,7 @@ msgstr "Beschreibung"
#. module: sale
#: field:sale.order.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr "Menge (UoM)"
+msgstr "Menge (ME)"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_tree1
@@ -494,7 +494,9 @@ msgstr "Zahlung Konten"
#. module: sale
#: 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: Die Verkaufseinheit sollte in einer anderen Kategorie sein als die "
+"Mengeneinheit"
#. module: sale
#: field:sale.order,client_order_ref:0
@@ -681,8 +683,8 @@ msgstr "Erzeuge Rechnungen"
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 ME muss in "
+"derselben Kategorie sein."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree7
@@ -920,7 +922,7 @@ msgstr "Andere Daten"
#: rml:sale.order:0
#: field:sale.order.line,price_unit:0
msgid "Unit Price"
-msgstr "Preis/UoM"
+msgstr "Preis/ME"
#. module: sale
#: field:sale.order,fiscal_position:0
@@ -968,7 +970,7 @@ msgstr ""
#: view:sale.order:0
#: view:sale.order.line:0
msgid "UoM"
-msgstr "UoM"
+msgstr "ME"
#. module: sale
#: field:sale.order.line,number_packages:0
@@ -1199,7 +1201,7 @@ msgstr "Händisch in Bearbeitung"
#. module: sale
#: field:sale.order.line,product_uom:0
msgid "Product UoM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: sale
#: help:sale.config.picking_policy,step:0
diff --git a/addons/sale/i18n/es_EC.po b/addons/sale/i18n/es_EC.po
new file mode 100644
index 00000000000..73ca506bc80
--- /dev/null
+++ b/addons/sale/i18n/es_EC.po
@@ -0,0 +1,1516 @@
+# Spanish (Ecuador) 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-20 18:13+0000\n"
+"Last-Translator: Cristian Salamea (GnuThink) \n"
+"Language-Team: Spanish (Ecuador) \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-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale
+#: selection:sale.order,picking_policy:0
+msgid "Partial Delivery"
+msgstr "Envío parcial"
+
+#. module: sale
+#: view:sale.order:0
+msgid "Recreate Procurement"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_confirmquotation0
+msgid "Confirm Quotation"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_deliveryorder0
+msgid "Delivery Order"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,address_allotment_id:0
+msgid "Allotment Partner"
+msgstr ""
+
+#. module: sale
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+msgid "Waiting Schedule"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,picking_policy:0
+msgid ""
+"If you don't have enough stock available to deliver all at once, do you "
+"accept partial shipments or not?"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order.line,type:0
+msgid "from stock"
+msgstr ""
+
+#. module: sale
+#: field:sale.config.picking_policy,step:0
+msgid "Steps To Deliver a Sale Order"
+msgstr ""
+
+#. module: sale
+#: wizard_field:sale.advance_payment_inv,init,qtty:0
+#: rml:sale.order:0
+msgid "Quantity"
+msgstr ""
+
+#. module: sale
+#: wizard_view:sale.advance_payment_inv,create:0
+msgid "You invoice has been successfully created !"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Automatic Declaration"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_line_tree3
+#: model:ir.ui.menu,name:sale.menu_action_order_line_tree3
+msgid "Uninvoiced and Delivered Lines"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+msgid "Invoice Exception"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,picking_ids:0
+msgid ""
+"This is the list of picking list that have been generated for this invoice"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_deliveryorder0
+msgid "Delivery, from the warehouse to the customer."
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_sale_config_picking_policy
+msgid "sale.config.picking_policy"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_validate0
+msgid "Validate"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Make Invoice"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,price_subtotal:0
+msgid "Subtotal"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_confirmquotation0
+msgid ""
+"Whenever confirm button is clicked, the draft state is moved to manual. that "
+"is, quotation is moved to sale order."
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_cancelorder0
+#: view:sale.order:0
+msgid "Cancel Order"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,move_ids:0
+msgid "Inventory Moves"
+msgstr ""
+
+#. module: sale
+#: view:sale.order.line:0
+msgid "Manual Designation"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: field:sale.order,note:0
+#: view:sale.order.line:0
+#: field:sale.order.line,notes:0
+msgid "Notes"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_invoiceafterdelivery0
+msgid "Invoice after delivery"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,amount_tax:0
+#: field:sale.order.line,tax_id:0
+msgid "Taxes"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Net Total :"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,order_policy:0
+msgid "Shipping Policy"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+#: selection:sale.order.line,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+msgid "Shipping Exception"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,amount_total:0
+msgid "Total"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,origin:0
+msgid "Origin"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,partner_invoice_id:0
+msgid "Invoice Address"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_packinglist0
+msgid "Outgoing Products"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Reference"
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,picking_policy:0
+msgid "All at Once"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_saleprocurement0
+msgid "Procurement is created after confirmation of sale order."
+msgstr ""
+
+#. module: sale
+#: field:sale.order,project_id:0
+#: field:sale.shop,project_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "TVA :"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,type:0
+msgid "Procure Method"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Fax :"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,price_net:0
+msgid "Net Price"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree9
+#: model:ir.ui.menu,name:sale.menu_action_order_tree9
+msgid "My sales order in progress"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,product_uos_qty:0
+msgid "Quantity (UoS)"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,invoice_quantity:0
+msgid ""
+"The sale order will automatically create the invoice proposition (draft "
+"invoice). Ordered and delivered quantities may not be the same. You have to "
+"choose if you invoice based on ordered or shipped quantities. If the product "
+"is a service, shipped quantities means hours spent on the associated tasks."
+msgstr ""
+
+#. module: sale
+#: selection:sale.order.line,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: sale
+#: field:sale.shop,payment_default_id:0
+msgid "Default Payment Term"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree_all
+#: model:ir.ui.menu,name:sale.menu_action_order_tree_all
+msgid "All Sales Order"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_confirm0
+msgid "Confirm"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,partner_shipping_id:0
+msgid "Shipping Address"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,invoice_quantity:0
+msgid "Shipped Quantities"
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,order_policy:0
+msgid "Invoice Based on Sales Orders"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_sale_shop
+#: view:sale.shop:0
+msgid "Sale Shop"
+msgstr ""
+
+#. module: sale
+#: field:sale.shop,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Order N°"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,order_line:0
+#: view:sale.order.line:0
+msgid "Order Lines"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Disc.(%)"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+#: field:sale.order.line,invoice_lines:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_forceassignation0
+msgid "Force Assignation"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Untaxed amount"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_packing0
+msgid ""
+"Packing list is created when 'Assign' is being clicked after confirming the "
+"sale order. This transaction moves the sale order to packing list."
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree8
+#: model:ir.ui.menu,name:sale.menu_action_order_tree8
+msgid "My sales order waiting Invoice"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Shipping address :"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_invoiceafterdelivery0
+msgid ""
+"When you select Shipping Ploicy = 'Automatic Invoice after delivery' , it "
+"will automatic create after delivery."
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,picking_policy:0
+msgid "Complete Delivery"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Manual Description"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,product_uom_qty:0
+msgid "Quantity (UoM)"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_line_tree1
+#: model:ir.ui.menu,name:sale.menu_action_order_line_tree1
+#: view:sale.order.line:0
+msgid "Sales Order Lines"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,invoice_quantity:0
+msgid "Ordered Quantities"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_saleorderprocurement0
+msgid "Sale Order Procurement"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_packing0
+msgid "Packing"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Total :"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Confirm Order"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,name:0
+msgid "Order Reference"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+#: view:sale.order.line:0
+#: selection:sale.order.line,state:0
+msgid "Done"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,pricelist_id:0
+#: field:sale.shop,pricelist_id:0
+msgid "Pricelist"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.menu_shop_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,order_policy:0
+msgid "Invoice on Order After Delivery"
+msgstr ""
+
+#. module: sale
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,picking_ids:0
+msgid "Related Packing"
+msgstr ""
+
+#. module: sale
+#: field:sale.shop,payment_account_id:0
+msgid "Payment Accounts"
+msgstr ""
+
+#. module: sale
+#: constraint:product.template:0
+msgid "Error: UOS must be in a different category than the UOM"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,client_order_ref:0
+msgid "Customer Ref"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Sales orders"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_saleprocurement0
+#: field:sale.order.line,procurement_id:0
+msgid "Procurement"
+msgstr ""
+
+#. module: sale
+#: view:sale.shop:0
+msgid "Payment accounts"
+msgstr ""
+
+#. module: sale
+#: wizard_button:sale.advance_payment_inv,create,end:0
+msgid "Close"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_invoice0
+#: model:process.node,name:sale.process_node_invoiceafterdelivery0
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: sale
+#: wizard_field:sale.order.line.make_invoice,init,grouped:0
+#: wizard_field:sale.order.make_invoice,init,grouped:0
+msgid "Group the invoices"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree5
+#: model:ir.ui.menu,name:sale.menu_action_order_tree5
+msgid "All Quotations"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,discount:0
+msgid "Discount (%)"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_invoice0
+msgid "Draft customer invoice, to be reviewed by accountant."
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree3
+#: model:ir.ui.menu,name:sale.menu_action_order_tree3
+msgid "Sales Order To Be Invoiced"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_saleorderprocurement0
+msgid "Procurement for each line"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree10
+#: model:ir.ui.menu,name:sale.menu_action_order_tree10
+msgid "My Quotations"
+msgstr ""
+
+#. module: sale
+#: wizard_view:sale.advance_payment_inv,create:0
+msgid "Invoices"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Order Line"
+msgstr ""
+
+#. module: sale
+#: field:sale.config.picking_policy,picking_policy:0
+msgid "Packing Default Policy"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_saleorder0
+msgid "Manages the delivery and invoicing progress"
+msgstr ""
+
+#. module: sale
+#: field:sale.config.picking_policy,order_policy:0
+msgid "Shipping Default Policy"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,product_packaging:0
+msgid "Packaging"
+msgstr ""
+
+#. module: sale
+#: model:ir.module.module,shortdesc:sale.module_meta_information
+#: model:ir.ui.menu,name:sale.menu_sale_root
+msgid "Sales Management"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,order_id:0
+msgid "Order Ref"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Recreate Invoice"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,user_id:0
+msgid "Salesman"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_saleorderprocurement0
+msgid ""
+"In sale order , procuerement for each line and it comes into the procurement "
+"order"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Taxes :"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,invoiced_rate:0
+#: field:sale.order.line,invoiced:0
+msgid "Invoiced"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.wizard,name:sale.advance_payment
+msgid "Advance Invoice"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,state:0
+msgid "Order State"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_line_tree2
+#: model:ir.ui.menu,name:sale.menu_action_order_line_tree2
+msgid "Uninvoiced Lines"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.todo,note:sale.config_wizard_step_sale_picking_policy
+msgid ""
+"This Configuration step use to set default picking policy when make sale "
+"order"
+msgstr ""
+
+#. module: sale
+#: model:process.process,name:sale.process_process_salesprocess0
+msgid "Sales Process"
+msgstr ""
+
+#. module: sale
+#: wizard_view:sale.order.line.make_invoice,init:0
+#: wizard_button:sale.order.line.make_invoice,init,invoice:0
+#: wizard_view:sale.order.make_invoice,init:0
+#: wizard_button:sale.order.make_invoice,init,invoice:0
+msgid "Create invoices"
+msgstr ""
+
+#. module: sale
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree7
+#: model:ir.ui.menu,name:sale.menu_action_order_tree7
+msgid "My sales in shipping exception"
+msgstr ""
+
+#. module: sale
+#: view:sale.config.picking_policy:0
+msgid "Sales Configuration"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree2
+#: model:ir.ui.menu,name:sale.menu_action_order_tree2
+msgid "Sales in Exception"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order.line,type:0
+msgid "on order"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order.line,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,invoiced:0
+msgid "Paid"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Procurement Corrected"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,order_policy:0
+msgid "Shipping & Manual Invoice"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_saleorderprocurement0
+#: model:process.transition,name:sale.process_transition_saleprocurement0
+msgid "Sale Procurement"
+msgstr ""
+
+#. module: sale
+#: view:sale.config.picking_policy:0
+msgid "Configure Sale Order Logistic"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,amount_untaxed:0
+msgid "Untaxed Amount"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,state:0
+msgid "Status"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,picking_policy:0
+msgid "Packing Policy"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_line_product_tree
+msgid "Product sales"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Our Salesman"
+msgstr ""
+
+#. module: sale
+#: wizard_button:sale.advance_payment_inv,init,create:0
+msgid "Create Advance Invoice"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_saleprocurement0
+msgid "One procurement for each product."
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_form
+#: model:ir.ui.menu,name:sale.menu_sale_order
+msgid "Sales Orders"
+msgstr ""
+
+#. module: sale
+#: field:product.product,pricelist_sale:0
+msgid "Sale Pricelists"
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,picking_policy:0
+msgid "Direct Delivery"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+#: field:sale.order.line,property_ids:0
+msgid "Properties"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_quotation0
+#: selection:sale.order,state:0
+msgid "Quotation"
+msgstr ""
+
+#. module: sale
+#: model:product.template,name:sale.advance_product_0_product_template
+msgid "Advance Product"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_invoice0
+msgid ""
+"Invoice is created when 'Create Invoice' is being clicked after confirming "
+"the sale order. This transaction moves the sale order to invoices."
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Compute"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_shop_form
+#: model:ir.ui.menu,name:sale.menu_action_shop_form
+#: field:sale.order,shop_id:0
+msgid "Shop"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "VAT"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree4
+#: model:ir.ui.menu,name:sale.menu_action_order_tree4
+msgid "Sales Order in Progress"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_assign0
+msgid "Assign"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "History"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,order_policy:0
+msgid ""
+"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
+" - The 'Pay before delivery' choice will first generate the invoice and "
+"then generate the packing order after the payment of this invoice.\n"
+" - The 'Shipping & Manual Invoice' will create the packing order directly "
+"and wait for the user to manually click on the 'Invoice' button to generate "
+"the draft invoice.\n"
+" - The 'Invoice on Order After Delivery' choice will generate the draft "
+"invoice based on sale order after all packing lists have been finished.\n"
+" - The 'Invoice from the packing' choice is used to create an invoice "
+"during the packing process."
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Your Reference"
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,step:0
+msgid "Delivery Order Only"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Sales order lines"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order
+msgid "Sales"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Qty"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_packinglist0
+msgid "Packing OUT is created for stockable products."
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Other data"
+msgstr ""
+
+#. module: sale
+#: wizard_field:sale.advance_payment_inv,init,amount:0
+#: rml:sale.order:0
+#: field:sale.order.line,price_unit:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,fiscal_position:0
+msgid "Fiscal Position"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Invoice address :"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_invoice0
+#: field:sale.order,invoice_ids:0
+msgid "Invoice"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_cancel0
+#: model:process.transition.action,name:sale.process_transition_action_cancel1
+#: model:process.transition.action,name:sale.process_transition_action_cancel2
+#: wizard_button:sale.advance_payment_inv,init,end:0
+#: view:sale.config.picking_policy:0
+#: view:sale.order.line:0
+#: wizard_button:sale.order.line.make_invoice,init,end:0
+#: wizard_button:sale.order.make_invoice,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,state:0
+msgid ""
+"Gives the state of the quotation or sale order. The exception state is "
+"automatically set when a cancel operation occurs in the invoice validation "
+"(Invoice Exception) or in the packing list process (Shipping Exception). The "
+"'Waiting Schedule' state is set when the invoice is confirmed but waiting "
+"for the scheduler to run on the date 'Date Ordered'."
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "UoM"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,number_packages:0
+msgid "Number Packages"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_deliver0
+msgid ""
+"Confirming the packing list moves them to delivery order. This can be done "
+"by clicking on 'Validate' button."
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: sale
+#: wizard_view:sale.advance_payment_inv,init:0
+msgid "Advance Payment"
+msgstr ""
+
+#. module: sale
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,note:sale.process_transition_saleinvoice0
+msgid "Confirm sale order and Create invoice."
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,step:0
+msgid "Packing List & Delivery Order"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order.line,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Sale Order Lines"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_createinvoice0
+#: view:sale.order:0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: sale
+#: wizard_view:sale.order.line.make_invoice,init:0
+#: wizard_view:sale.order.make_invoice,init:0
+msgid "Do you really want to create the invoices ?"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_invoiceafterdelivery0
+msgid "Invoice based on packing lists"
+msgstr ""
+
+#. module: sale
+#: view:sale.config.picking_policy:0
+msgid "Set Default"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Sales order"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_quotation0
+msgid "Quotation (A sale order in draft state)"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_saleinvoice0
+msgid "Sale Invoice"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,incoterm:0
+msgid "Incoterm"
+msgstr ""
+
+#. module: sale
+#: wizard_field:sale.advance_payment_inv,init,product_id:0
+#: field:sale.order.line,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: sale
+#: wizard_button:sale.advance_payment_inv,create,open:0
+msgid "Open Advance Invoice"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,partner_order_id:0
+msgid "Ordering Contact"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+#: field:sale.order.line,name:0
+msgid "Description"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Price"
+msgstr ""
+
+#. module: sale
+#: model:process.transition,name:sale.process_transition_deliver0
+msgid "Deliver"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.report.xml,name:sale.report_sale_order
+msgid "Quotation / Order"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Tel. :"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Quotation N°"
+msgstr ""
+
+#. module: sale
+#: field:stock.move,sale_line_id:0
+msgid "Sale Order Line"
+msgstr ""
+
+#. module: sale
+#: model:process.transition.action,name:sale.process_transition_action_cancelassignation0
+msgid "Cancel Assignation"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,order_policy:0
+msgid "Invoice from the Packing"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.wizard,name:sale.wizard_sale_order_line_invoice
+#: model:ir.actions.wizard,name:sale.wizard_sale_order_make_invoice
+msgid "Make invoices"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,partner_order_id:0
+msgid ""
+"The name and address of the contact that requested the order or quotation."
+msgstr ""
+
+#. module: sale
+#: field:sale.order,partner_id:0
+#: field:sale.order.line,order_partner_id:0
+msgid "Customer"
+msgstr ""
+
+#. module: sale
+#: field:product.product,pricelist_purchase:0
+msgid "Purchase Pricelists"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_sale_order
+#: model:process.node,name:sale.process_node_saleorder0
+#: model:res.request.link,name:sale.req_link_sale_order
+#: view:sale.order:0
+#: field:stock.picking,sale_id:0
+msgid "Sale Order"
+msgstr ""
+
+#. module: sale
+#: field:sale.config.picking_policy,name:0
+msgid "Name"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,invoice_quantity:0
+msgid "Invoice on"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree_new
+#: model:ir.ui.menu,name:sale.menu_action_order_tree_new
+msgid "New Quotation"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Total amount"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+#: field:sale.order,date_order:0
+msgid "Date Ordered"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,product_uos:0
+msgid "Product UoS"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,state:0
+msgid "Manual In Progress"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,product_uom:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: sale
+#: help:sale.config.picking_policy,step:0
+msgid ""
+"By default, Open ERP is able to manage complex routing and paths of products "
+"in your warehouse and partner locations. This will configure the most common "
+"and simple methods to deliver products to the customer in one or two "
+"operations by the worker."
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_config_picking_policy
+msgid "Configure Picking Policy for Sale Order"
+msgstr ""
+
+#. module: sale
+#: model:process.node,name:sale.process_node_order0
+msgid "Order"
+msgstr ""
+
+#. module: sale
+#: rml:sale.order:0
+msgid "Payment Terms"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Invoice Corrected"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,delay:0
+msgid "Delivery Delay"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Related invoices"
+msgstr ""
+
+#. module: sale
+#: field:sale.shop,name:0
+msgid "Shop Name"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,payment_term:0
+msgid "Payment Term"
+msgstr ""
+
+#. module: sale
+#: selection:sale.order,order_policy:0
+msgid "Payment Before Delivery"
+msgstr ""
+
+#. module: sale
+#: help:sale.order,invoice_ids:0
+msgid ""
+"This is the list of invoices that have been generated for this sale order. "
+"The same sale order may have been invoiced in several times (by line for "
+"example)."
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "States"
+msgstr ""
+
+#. module: sale
+#: field:sale.order.line,th_weight:0
+msgid "Weight"
+msgstr ""
+
+#. module: sale
+#: model:process.node,note:sale.process_node_order0
+msgid "After confirming order, Create the invoice."
+msgstr ""
+
+#. module: sale
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr ""
+
+#. module: sale
+#: field:sale.order,picked_rate:0
+#: field:sale.order,shipped:0
+msgid "Picked"
+msgstr ""
+
+#. module: sale
+#: view:sale.shop:0
+msgid "Accounting"
+msgstr ""
+
+#. module: sale
+#: selection:sale.config.picking_policy,order_policy:0
+msgid "Invoice Based on Deliveries"
+msgstr ""
+
+#. module: sale
+#: view:sale.order:0
+msgid "Stock Moves"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_tree
+#: model:ir.ui.menu,name:sale.menu_action_order_tree
+msgid "My Sales Order"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_sale_order_line
+msgid "Sale Order line"
+msgstr ""
+
+#. module: sale
+#: model:ir.module.module,shortdesc:sale.module_meta_information
+msgid "Dashboard for sales"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.open_board_sales_manager
+#: model:ir.ui.menu,name:sale.menu_board_sales_manager
+msgid "Sale Dashboard"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "Sales of the month"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "Sales manager board"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "Cases of the month"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "My open quotations"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "Cases statistics"
+msgstr ""
+
+#. module: sale
+#: view:board.board:0
+msgid "Top ten sales of the month"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,price_average:0
+#: field:report.sale.order.product,price_average:0
+msgid "Average Price"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_report_sale_order_created
+msgid "Report of Created Sale Order"
+msgstr ""
+
+#. module: sale
+#: view:report.sale.order.category:0
+msgid "Sales Orders by category"
+msgstr ""
+
+#. module: sale
+#: model:ir.report.custom,name:sale.ir_report_custom_6
+#: model:ir.report.custom,title:sale.ir_report_custom_6
+msgid "Monthly cumulated sales turnover over one year"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_report_sale_order_product
+msgid "Sales Orders by Products"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.ir_ui_menu1
+msgid "Monthly Sales Turnover Over One Year"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_turnover_product_tree
+#: model:ir.model,name:sale.model_report_turnover_per_product
+#: view:report.turnover.per.product:0
+msgid "Turnover Per Product"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.next_id_82
+msgid "All Months"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,price_total:0
+#: field:report.sale.order.product,price_total:0
+msgid "Total Price"
+msgstr ""
+
+#. module: sale
+#: model:ir.model,name:sale.model_report_sale_order_category
+msgid "Sales Orders by Categories"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_sale_list
+#: model:ir.ui.menu,name:sale.menu_report_order_sale_list
+msgid "Sales of the Month"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_product_tree
+#: model:ir.ui.menu,name:sale.menu_report_order_product
+msgid "Sales by Product (this month)"
+msgstr ""
+
+#. module: sale
+#: model:ir.report.custom,name:sale.ir_report_custom_4
+#: model:ir.report.custom,title:sale.ir_report_custom_4
+msgid "Monthly sales turnover over one year"
+msgstr ""
+
+#. module: sale
+#: model:ir.module.module,shortdesc:sale.module_meta_information
+msgid "Sales Management - Reporting"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_category_tree_all
+#: model:ir.ui.menu,name:sale.menu_report_order_category_all
+#: view:report.sale.order.category:0
+msgid "Sales by Category of Products"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.ir_ui_menu3
+msgid "Monthly Cumulated Sales Turnover Over One Year"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,quantity:0
+#: field:report.sale.order.product,quantity:0
+msgid "# of Products"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_product_tree_all
+#: model:ir.ui.menu,name:sale.menu_report_order_product_all
+#: view:report.sale.order.product:0
+msgid "Sales by Product"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.next_id_81
+msgid "This Month"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,category_id:0
+msgid "Categories"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_view_created_sale_order_dashboard
+msgid "Created Sale Orders"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.next_id_80
+msgid "Reporting"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_turnover_month_tree
+#: model:ir.model,name:sale.model_report_turnover_per_month
+#: view:report.turnover.per.month:0
+msgid "Turnover Per Month"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.ir_ui_menu2
+msgid "Daily Sales Turnover Over One Year"
+msgstr ""
+
+#. module: sale
+#: model:ir.ui.menu,name:sale.next_id_83
+msgid "Graphs"
+msgstr ""
+
+#. module: sale
+#: selection:report.sale.order.category,state:0
+#: selection:report.sale.order.product,state:0
+msgid "Manual in progress"
+msgstr ""
+
+#. module: sale
+#: field:report.turnover.per.month,turnover:0
+#: field:report.turnover.per.product,turnover:0
+msgid "Total Turnover"
+msgstr ""
+
+#. module: sale
+#: selection:report.sale.order.category,state:0
+#: selection:report.sale.order.product,state:0
+msgid "In progress"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_order_category_tree
+#: model:ir.ui.menu,name:sale.menu_report_order_category
+msgid "Sales by Category of Product (this month)"
+msgstr ""
+
+#. module: sale
+#: model:ir.report.custom,name:sale.ir_report_custom_5
+#: model:ir.report.custom,title:sale.ir_report_custom_5
+msgid "Daily sales turnover over one year"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,name:0
+#: field:report.sale.order.product,name:0
+#: field:report.turnover.per.month,name:0
+msgid "Month"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.category,count:0
+#: field:report.sale.order.product,count:0
+msgid "# of Lines"
+msgstr ""
+
+#. module: sale
+#: field:report.sale.order.created,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: sale
+#: view:report.sale.order.created:0
+msgid "Created Sales orders"
+msgstr ""
+
+#. module: sale
+#: model:ir.actions.act_window,name:sale.action_so_pipeline
+#: view:sale.order:0
+msgid "Sales by State"
+msgstr ""
diff --git a/addons/sale/i18n/pt_BR.po b/addons/sale/i18n/pt_BR.po
index 08df56ccfb9..f07e8a1082c 100644
--- a/addons/sale/i18n/pt_BR.po
+++ b/addons/sale/i18n/pt_BR.po
@@ -8,20 +8,19 @@ 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-11 05:13+0000\n"
-"Last-Translator: Renato Lima - http://www.akretion.com "
-"\n"
+"PO-Revision-Date: 2010-08-29 10:23+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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Partial Delivery"
-msgstr "Entrega Parcial"
+msgstr ""
#. module: sale
#: view:sale.order:0
@@ -41,7 +40,7 @@ msgstr "Ordem de Entrega"
#. module: sale
#: field:sale.order.line,address_allotment_id:0
msgid "Allotment Partner"
-msgstr ""
+msgstr "Parceiro designado"
#. module: sale
#: constraint:ir.actions.act_window:0
@@ -129,12 +128,12 @@ msgstr "Validar"
#. module: sale
#: view:sale.order:0
msgid "Make Invoice"
-msgstr ""
+msgstr "Gerar fatura"
#. module: sale
#: field:sale.order.line,price_subtotal:0
msgid "Subtotal"
-msgstr ""
+msgstr "Subtotal"
#. module: sale
#: model:process.transition,note:sale.process_transition_confirmquotation0
@@ -142,6 +141,8 @@ msgid ""
"Whenever confirm button is clicked, the draft state is moved to manual. that "
"is, quotation is moved to sale order."
msgstr ""
+"Sempre que clicar no botão confirmar, o estado de rascunho é trocado para "
+"manual, ou seja, cotação se transforma em ordem de venda."
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancelorder0
@@ -165,12 +166,12 @@ msgstr "Designação Manual"
#: view:sale.order.line:0
#: field:sale.order.line,notes:0
msgid "Notes"
-msgstr "Notas"
+msgstr "Anotações"
#. module: sale
#: model:process.transition,name:sale.process_transition_invoiceafterdelivery0
msgid "Invoice after delivery"
-msgstr ""
+msgstr "Faturar depois de entreguar"
#. module: sale
#: field:sale.order,amount_tax:0
@@ -181,7 +182,7 @@ msgstr "Impostos"
#. module: sale
#: rml:sale.order:0
msgid "Net Total :"
-msgstr ""
+msgstr "Total Líquido"
#. module: sale
#: field:sale.order,order_policy:0
@@ -207,17 +208,17 @@ msgstr ""
#. module: sale
#: field:sale.order,origin:0
msgid "Origin"
-msgstr ""
+msgstr "Origem"
#. module: sale
#: field:sale.order,partner_invoice_id:0
msgid "Invoice Address"
-msgstr "Endereço Faturamento"
+msgstr "Endereço de Faturamento"
#. module: sale
#: model:process.node,name:sale.process_node_packinglist0
msgid "Outgoing Products"
-msgstr ""
+msgstr "Produtos a serem despachados"
#. module: sale
#: view:sale.order:0
@@ -227,12 +228,12 @@ msgstr "Referência"
#. module: sale
#: selection:sale.config.picking_policy,picking_policy:0
msgid "All at Once"
-msgstr ""
+msgstr "Partida única"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleprocurement0
msgid "Procurement is created after confirmation of sale order."
-msgstr ""
+msgstr "Aquisição criada depois da confirmação do pedido"
#. module: sale
#: field:sale.order,project_id:0
@@ -248,12 +249,12 @@ msgstr "Imposto:"
#. module: sale
#: field:sale.order.line,type:0
msgid "Procure Method"
-msgstr ""
+msgstr "Método de Aquisição"
#. module: sale
#: view:sale.order:0
msgid "Extra Info"
-msgstr "Info. Extra"
+msgstr "Informações Adicionais"
#. module: sale
#: rml:sale.order:0
@@ -263,13 +264,13 @@ msgstr "Fax :"
#. module: sale
#: field:sale.order.line,price_net:0
msgid "Net Price"
-msgstr ""
+msgstr "Preço Líquido"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree9
#: model:ir.ui.menu,name:sale.menu_action_order_tree9
msgid "My sales order in progress"
-msgstr ""
+msgstr "Meus pedidos em andamento"
#. module: sale
#: field:sale.order.line,product_uos_qty:0
@@ -284,6 +285,11 @@ msgid ""
"choose if you invoice based on ordered or shipped quantities. If the product "
"is a service, shipped quantities means hours spent on the associated tasks."
msgstr ""
+"O pedido irá gerar automaticamente a fatura. Pode haver diferença entre a "
+"quantidade especificada no pedido e aquela efetivamente despachada. É "
+"necessário definir se a fatura deve se basear na quantidade pedida ou ou "
+"despachada. Quando se trata de serviços, a quantidade despachada significa o "
+"total de horas gastos nas tarefas associadas."
#. module: sale
#: selection:sale.order.line,state:0
@@ -293,28 +299,28 @@ msgstr "Confirmada"
#. module: sale
#: field:sale.shop,payment_default_id:0
msgid "Default Payment Term"
-msgstr "Pagamento Padrão"
+msgstr "Condição de Pagamento Padrão"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree_all
#: model:ir.ui.menu,name:sale.menu_action_order_tree_all
msgid "All Sales Order"
-msgstr ""
+msgstr "Todas as Ordens de Venda"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_confirm0
msgid "Confirm"
-msgstr ""
+msgstr "Confirmar"
#. module: sale
#: field:sale.order,partner_shipping_id:0
msgid "Shipping Address"
-msgstr "Endereço Entrega"
+msgstr "Endereço de Entrega"
#. module: sale
#: selection:sale.order,invoice_quantity:0
msgid "Shipped Quantities"
-msgstr "Quantidades Enbarcada"
+msgstr "Quantidade Enbarcada"
#. module: sale
#: selection:sale.config.picking_policy,order_policy:0
@@ -330,7 +336,7 @@ msgstr "Estabelecimento de Venda"
#. module: sale
#: field:sale.shop,warehouse_id:0
msgid "Warehouse"
-msgstr "Estoque Disponível"
+msgstr "Estoque"
#. module: sale
#: rml:sale.order:0
@@ -376,7 +382,7 @@ msgstr ""
#: model:ir.actions.act_window,name:sale.action_order_tree8
#: model:ir.ui.menu,name:sale.menu_action_order_tree8
msgid "My sales order waiting Invoice"
-msgstr ""
+msgstr "Meus pedidos aguardando emissão da Fatura"
#. module: sale
#: rml:sale.order:0
@@ -490,7 +496,7 @@ msgstr ""
#. module: sale
#: field:sale.order,client_order_ref:0
msgid "Customer Ref"
-msgstr ""
+msgstr "Ref. do Cliente"
#. module: sale
#: view:sale.order:0
@@ -529,7 +535,7 @@ msgstr "Agrupar Notas Fiscais"
#: model:ir.actions.act_window,name:sale.action_order_tree5
#: model:ir.ui.menu,name:sale.menu_action_order_tree5
msgid "All Quotations"
-msgstr "Todas Cotações"
+msgstr "Todas as Cotações"
#. module: sale
#: field:sale.order.line,discount:0
@@ -571,12 +577,12 @@ msgstr "Linha de Pedido"
#. module: sale
#: field:sale.config.picking_policy,picking_policy:0
msgid "Packing Default Policy"
-msgstr ""
+msgstr "Política Padrão de Empacotamento"
#. module: sale
#: model:process.node,note:sale.process_node_saleorder0
msgid "Manages the delivery and invoicing progress"
-msgstr ""
+msgstr "Gerencia o progresso das entregas e do faturamento"
#. module: sale
#: field:sale.config.picking_policy,order_policy:0
@@ -586,7 +592,7 @@ msgstr "Politica Padrão de Embarque"
#. module: sale
#: field:sale.order.line,product_packaging:0
msgid "Packaging"
-msgstr ""
+msgstr "Empacotamento"
#. module: sale
#: model:ir.module.module,shortdesc:sale.module_meta_information
@@ -632,7 +638,7 @@ msgstr "Faturado"
#. module: sale
#: model:ir.actions.wizard,name:sale.advance_payment
msgid "Advance Invoice"
-msgstr ""
+msgstr "Avançar Fatura"
#. module: sale
#: field:sale.order,state:0
@@ -655,7 +661,7 @@ msgstr ""
#. module: sale
#: model:process.process,name:sale.process_process_salesprocess0
msgid "Sales Process"
-msgstr ""
+msgstr "Processo de Vendas"
#. module: sale
#: wizard_view:sale.order.line.make_invoice,init:0
@@ -663,7 +669,7 @@ msgstr ""
#: wizard_view:sale.order.make_invoice,init:0
#: wizard_button:sale.order.make_invoice,init,invoice:0
msgid "Create invoices"
-msgstr ""
+msgstr "Gerar faturas"
#. module: sale
#: constraint:product.template:0
@@ -676,23 +682,23 @@ msgstr ""
#: model:ir.actions.act_window,name:sale.action_order_tree7
#: model:ir.ui.menu,name:sale.menu_action_order_tree7
msgid "My sales in shipping exception"
-msgstr ""
+msgstr "Minhas vendas sob status de exceção"
#. module: sale
#: view:sale.config.picking_policy:0
msgid "Sales Configuration"
-msgstr ""
+msgstr "Configuração de Vendas"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree2
#: model:ir.ui.menu,name:sale.menu_action_order_tree2
msgid "Sales in Exception"
-msgstr ""
+msgstr "Vendas em Exceção"
#. module: sale
#: selection:sale.order.line,type:0
msgid "on order"
-msgstr "em ordem"
+msgstr "no pedido"
#. module: sale
#: selection:sale.order.line,state:0
@@ -707,7 +713,7 @@ msgstr "Pago"
#. module: sale
#: view:sale.order:0
msgid "Procurement Corrected"
-msgstr ""
+msgstr "Processo de Aquisição Corrigido"
#. module: sale
#: selection:sale.order,order_policy:0
@@ -743,7 +749,7 @@ msgstr ""
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_line_product_tree
msgid "Product sales"
-msgstr ""
+msgstr "Vendas de Produtos"
#. module: sale
#: rml:sale.order:0
@@ -792,7 +798,7 @@ msgstr "Cotação"
#. module: sale
#: model:product.template,name:sale.advance_product_0_product_template
msgid "Advance Product"
-msgstr ""
+msgstr "Avançar o Produto"
#. module: sale
#: model:process.transition,note:sale.process_transition_invoice0
@@ -827,7 +833,7 @@ msgstr "Ordem de Venda em Processamento"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_assign0
msgid "Assign"
-msgstr ""
+msgstr "Designar"
#. module: sale
#: view:sale.order:0
@@ -912,7 +918,7 @@ msgstr "Endereço de Faturamento :"
#: model:process.transition,name:sale.process_transition_invoice0
#: field:sale.order,invoice_ids:0
msgid "Invoice"
-msgstr ""
+msgstr "Fatura"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancel0
@@ -935,6 +941,11 @@ msgid ""
"'Waiting Schedule' state is set when the invoice is confirmed but waiting "
"for the scheduler to run on the date 'Date Ordered'."
msgstr ""
+"Status do pedido ou cotação. O status é automaticamente modificado para "
+"exceção quando uma operação de cancelamento ocorre na etapa de validação da "
+"fatura ou no processo de empacotamento. O status de espera é acionado quando "
+"a fatura está confirmada mas na fila, esperando a data correta para ser "
+"produzida."
#. module: sale
#: view:sale.order:0
@@ -973,12 +984,12 @@ msgstr ""
#. module: sale
#: model:process.transition,note:sale.process_transition_saleinvoice0
msgid "Confirm sale order and Create invoice."
-msgstr ""
+msgstr "Confirmar Pedido e Gerar Fatura."
#. module: sale
#: selection:sale.config.picking_policy,step:0
msgid "Packing List & Delivery Order"
-msgstr ""
+msgstr "Lista de Empacotamento e Pedido de Entrega"
#. module: sale
#: selection:sale.order.line,state:0
@@ -1020,12 +1031,12 @@ msgstr "Ordem de Venda"
#. module: sale
#: model:process.node,note:sale.process_node_quotation0
msgid "Quotation (A sale order in draft state)"
-msgstr ""
+msgstr "Cotação (Rascunho do pedido)"
#. module: sale
#: model:process.transition,name:sale.process_transition_saleinvoice0
msgid "Sale Invoice"
-msgstr ""
+msgstr "Fatura (Vendas)"
#. module: sale
#: field:sale.order,incoterm:0
@@ -1041,7 +1052,7 @@ msgstr "Produto"
#. module: sale
#: wizard_button:sale.advance_payment_inv,create,open:0
msgid "Open Advance Invoice"
-msgstr ""
+msgstr "Abrir Fatura Avançada"
#. module: sale
#: field:sale.order,partner_order_id:0
@@ -1062,7 +1073,7 @@ msgstr "Preço"
#. module: sale
#: model:process.transition,name:sale.process_transition_deliver0
msgid "Deliver"
-msgstr ""
+msgstr "Entrega"
#. module: sale
#: model:ir.actions.report.xml,name:sale.report_sale_order
@@ -1082,29 +1093,29 @@ msgstr "Cotação N°"
#. module: sale
#: field:stock.move,sale_line_id:0
msgid "Sale Order Line"
-msgstr "Linhas da Ordem de Venda"
+msgstr "Linha de Pedidos"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancelassignation0
msgid "Cancel Assignation"
-msgstr ""
+msgstr "Cancelar Designação"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice from the Packing"
-msgstr ""
+msgstr "Fatura gerada a partir do empacotamento"
#. module: sale
#: model:ir.actions.wizard,name:sale.wizard_sale_order_line_invoice
#: model:ir.actions.wizard,name:sale.wizard_sale_order_make_invoice
msgid "Make invoices"
-msgstr ""
+msgstr "Gerar faturas"
#. module: sale
#: help:sale.order,partner_order_id:0
msgid ""
"The name and address of the contact that requested the order or quotation."
-msgstr ""
+msgstr "Nome e endereço de quem requisitou o pedido ou cotação"
#. module: sale
#: field:sale.order,partner_id:0
@@ -1140,7 +1151,7 @@ msgstr "Faturar em"
#: model:ir.actions.act_window,name:sale.action_order_tree_new
#: model:ir.ui.menu,name:sale.menu_action_order_tree_new
msgid "New Quotation"
-msgstr ""
+msgstr "Nova Cotação"
#. module: sale
#: view:sale.order:0
@@ -1185,7 +1196,7 @@ msgstr "Configurar Politica de Separação para Ordem de Venda"
#. module: sale
#: model:process.node,name:sale.process_node_order0
msgid "Order"
-msgstr "Ordem"
+msgstr "Pedido"
#. module: sale
#: rml:sale.order:0
@@ -1229,6 +1240,8 @@ msgid ""
"The same sale order may have been invoiced in several times (by line for "
"example)."
msgstr ""
+"Lista de Faturas geradas para este pedido. O mesmo pedido pode constar "
+"diversas vezes na fatura (ordenado por linha, por exemplo)"
#. module: sale
#: view:sale.order:0
@@ -1244,7 +1257,7 @@ msgstr "Peso"
#. module: sale
#: model:process.node,note:sale.process_node_order0
msgid "After confirming order, Create the invoice."
-msgstr ""
+msgstr "Criar a Fatura Após Confirmar o Pedido"
#. module: sale
#: constraint:product.product:0
@@ -1276,53 +1289,53 @@ msgstr "Movimentações de Estoque"
#: model:ir.actions.act_window,name:sale.action_order_tree
#: model:ir.ui.menu,name:sale.menu_action_order_tree
msgid "My Sales Order"
-msgstr ""
+msgstr "Meus Pedidos"
#. module: sale
#: model:ir.model,name:sale.model_sale_order_line
msgid "Sale Order line"
-msgstr ""
+msgstr "Linha de Pedidos"
#. module: sale
#: model:ir.module.module,shortdesc:sale.module_meta_information
msgid "Dashboard for sales"
-msgstr ""
+msgstr "Painel de Vendas"
#. module: sale
#: model:ir.actions.act_window,name:sale.open_board_sales_manager
#: model:ir.ui.menu,name:sale.menu_board_sales_manager
msgid "Sale Dashboard"
-msgstr "Dashboard de Venda"
+msgstr "Painel de Vendas"
#. module: sale
#: view:board.board:0
msgid "Sales of the month"
-msgstr ""
+msgstr "Vendas do Mes"
#. module: sale
#: view:board.board:0
msgid "Sales manager board"
-msgstr ""
+msgstr "Grupo de Gerentes de Vendas"
#. module: sale
#: view:board.board:0
msgid "Cases of the month"
-msgstr ""
+msgstr "Casos do Mes"
#. module: sale
#: view:board.board:0
msgid "My open quotations"
-msgstr ""
+msgstr "Minhas Cotações em Aberto"
#. module: sale
#: view:board.board:0
msgid "Cases statistics"
-msgstr ""
+msgstr "Estatísticas de Casos"
#. module: sale
#: view:board.board:0
msgid "Top ten sales of the month"
-msgstr ""
+msgstr "As 10 Maiores Vendas do Mes"
#. module: sale
#: field:report.sale.order.category,price_average:0
@@ -1338,23 +1351,23 @@ msgstr "Relatório de Ordem de Venda Criada"
#. module: sale
#: view:report.sale.order.category:0
msgid "Sales Orders by category"
-msgstr ""
+msgstr "Vendas ordenadas por Categoria"
#. module: sale
#: model:ir.report.custom,name:sale.ir_report_custom_6
#: model:ir.report.custom,title:sale.ir_report_custom_6
msgid "Monthly cumulated sales turnover over one year"
-msgstr ""
+msgstr "Retorno Mensal Acumulado de Vendas no Período de Um Ano"
#. module: sale
#: model:ir.model,name:sale.model_report_sale_order_product
msgid "Sales Orders by Products"
-msgstr ""
+msgstr "Pedidos Ordenados por Produto"
#. module: sale
#: model:ir.ui.menu,name:sale.ir_ui_menu1
msgid "Monthly Sales Turnover Over One Year"
-msgstr ""
+msgstr "Retorno Mensal de Vendas no Período de Um Ano"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_turnover_product_tree
@@ -1377,55 +1390,55 @@ msgstr "Preço Total"
#. module: sale
#: model:ir.model,name:sale.model_report_sale_order_category
msgid "Sales Orders by Categories"
-msgstr ""
+msgstr "Pedidos Ordenados por Categoria"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_sale_list
#: model:ir.ui.menu,name:sale.menu_report_order_sale_list
msgid "Sales of the Month"
-msgstr ""
+msgstr "Vendas Mensais"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_product_tree
#: model:ir.ui.menu,name:sale.menu_report_order_product
msgid "Sales by Product (this month)"
-msgstr ""
+msgstr "Vendas por Produto (este mes)"
#. module: sale
#: model:ir.report.custom,name:sale.ir_report_custom_4
#: model:ir.report.custom,title:sale.ir_report_custom_4
msgid "Monthly sales turnover over one year"
-msgstr ""
+msgstr "Retorno Mensal de Vendas no Período de Um Ano"
#. module: sale
#: model:ir.module.module,shortdesc:sale.module_meta_information
msgid "Sales Management - Reporting"
-msgstr ""
+msgstr "Gerenciamento de Vendas - Relatórios"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_category_tree_all
#: model:ir.ui.menu,name:sale.menu_report_order_category_all
#: view:report.sale.order.category:0
msgid "Sales by Category of Products"
-msgstr ""
+msgstr "Vendas por Categoria de Produtos"
#. module: sale
#: model:ir.ui.menu,name:sale.ir_ui_menu3
msgid "Monthly Cumulated Sales Turnover Over One Year"
-msgstr ""
+msgstr "Retorno Mensal de Vendas Acumuladas no Período de Um Ano"
#. module: sale
#: field:report.sale.order.category,quantity:0
#: field:report.sale.order.product,quantity:0
msgid "# of Products"
-msgstr ""
+msgstr "Total de Produtos"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_product_tree_all
#: model:ir.ui.menu,name:sale.menu_report_order_product_all
#: view:report.sale.order.product:0
msgid "Sales by Product"
-msgstr ""
+msgstr "Vendas por produto"
#. module: sale
#: model:ir.ui.menu,name:sale.next_id_81
@@ -1435,12 +1448,12 @@ msgstr "Este mes"
#. module: sale
#: field:report.sale.order.category,category_id:0
msgid "Categories"
-msgstr ""
+msgstr "Categorias"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_view_created_sale_order_dashboard
msgid "Created Sale Orders"
-msgstr ""
+msgstr "Pedidos Gerados"
#. module: sale
#: model:ir.ui.menu,name:sale.next_id_80
@@ -1452,12 +1465,12 @@ msgstr "Relatórios"
#: model:ir.model,name:sale.model_report_turnover_per_month
#: view:report.turnover.per.month:0
msgid "Turnover Per Month"
-msgstr "Retorno por Mês"
+msgstr "Retorno Mensal"
#. module: sale
#: model:ir.ui.menu,name:sale.ir_ui_menu2
msgid "Daily Sales Turnover Over One Year"
-msgstr ""
+msgstr "Retorno diário de Vendas no pPríodo de Um Ano"
#. module: sale
#: model:ir.ui.menu,name:sale.next_id_83
@@ -1515,10 +1528,10 @@ msgstr "Data de Criação"
#. module: sale
#: view:report.sale.order.created:0
msgid "Created Sales orders"
-msgstr "Odem de Vendas Criadas"
+msgstr "Odem de Vendas Gerada"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_so_pipeline
#: view:sale.order:0
msgid "Sales by State"
-msgstr ""
+msgstr "Vendas por Estado"
diff --git a/addons/sale/i18n/sr.po b/addons/sale/i18n/sr.po
index a2d1f8db515..45425c87556 100644
--- a/addons/sale/i18n/sr.po
+++ b/addons/sale/i18n/sr.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-11 04:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:45+0000\n"
"Last-Translator: OpenERP Administrators \n"
"Language-Team: Serbian \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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/i18n/sv.po b/addons/sale/i18n/sv.po
index 9270d24712d..97b0edad3b8 100644
--- a/addons/sale/i18n/sv.po
+++ b/addons/sale/i18n/sv.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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 10:04+0000\n"
"Last-Translator: Anders Eriksson (Mobila System) \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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/i18n/tr.po b/addons/sale/i18n/tr.po
index d835d1db382..2462ac87a1b 100644
--- a/addons/sale/i18n/tr.po
+++ b/addons/sale/i18n/tr.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 04:47+0000\n"
+"PO-Revision-Date: 2010-08-29 09:26+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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/i18n/uk.po b/addons/sale/i18n/uk.po
index 3ab5494e0bd..c428455fa3c 100644
--- a/addons/sale/i18n/uk.po
+++ b/addons/sale/i18n/uk.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-08-11 05:47+0000\n"
-"Last-Translator: Jay (OpenERP) \n"
+"PO-Revision-Date: 2010-08-29 09:58+0000\n"
+"Last-Translator: Jay (OpenERP) \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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/i18n/vi.po b/addons/sale/i18n/vi.po
index 65abd5ba8fc..c96d9de7e0f 100644
--- a/addons/sale/i18n/vi.po
+++ b/addons/sale/i18n/vi.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-11 04:42+0000\n"
+"PO-Revision-Date: 2010-08-29 10:15+0000\n"
"Last-Translator: Fabien (Open ERP) \n"
"Language-Team: Vietnamese \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:55+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/process/sale_process.xml b/addons/sale/process/sale_process.xml
index 1ebbc267de7..b4a54d5afa5 100644
--- a/addons/sale/process/sale_process.xml
+++ b/addons/sale/process/sale_process.xml
@@ -63,7 +63,7 @@
-
+
@@ -75,7 +75,6 @@
-
diff --git a/addons/sale/product.py b/addons/sale/product.py
index ab28e693524..95d45c29575 100644
--- a/addons/sale/product.py
+++ b/addons/sale/product.py
@@ -20,22 +20,20 @@
##############################################################################
from osv import fields, osv
-from tools import config
-
-
class product_product(osv.osv):
- _name = 'product.product'
_inherit = 'product.product'
def _pricelist_calculate(self, cr, uid, ids, name, arg, context=None):
result = {}
- pricelist_obj=self.pool.get('product.pricelist')
- if name=='pricelist_purchase':
- pricelist_ids=pricelist_obj.search(cr,uid,[('type','=','purchase')])
+ pricelist_obj = self.pool.get('product.pricelist')
+ if context is None:
+ context = {}
+ if name == 'pricelist_purchase':
+ pricelist_ids = pricelist_obj.search(cr,uid,[('type','=','purchase')])
else:
- pricelist_ids=pricelist_obj.search(cr,uid,[('type','=','sale')])
- pricelist_browse=pricelist_obj.browse(cr,uid,pricelist_ids)
+ pricelist_ids = pricelist_obj.search(cr,uid,[('type','=','sale')])
+ pricelist_browse = pricelist_obj.browse(cr,uid,pricelist_ids)
for product in self.browse(cr, uid, ids, context):
result[product.id] = ""
for pricelist in pricelist_browse:
@@ -70,4 +68,5 @@ class product_product(osv.osv):
}
product_product()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/report/__init__.py b/addons/sale/report/__init__.py
index fb04b328a57..99397dd4afd 100644
--- a/addons/sale/report/__init__.py
+++ b/addons/sale/report/__init__.py
@@ -20,6 +20,7 @@
##############################################################################
import sale_prepare_allot
-import order
+import sale_order
import sale_report
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/report/order.py b/addons/sale/report/sale_order.py
similarity index 91%
rename from addons/sale/report/order.py
rename to addons/sale/report/sale_order.py
index dcd6f54e047..88a2d32c490 100644
--- a/addons/sale/report/order.py
+++ b/addons/sale/report/sale_order.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,21 +15,22 @@
# 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
+
from report import report_sxw
-from osv import osv
class order(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
+ def __init__(self, cr, uid, name, context=None):
super(order, self).__init__(cr, uid, name, context=context)
self.localcontext.update({
'time': time,
})
-report_sxw.report_sxw('report.sale.order','sale.order','addons/sale/report/order.rml',parser=order)
+
+report_sxw.report_sxw('report.sale.order','sale.order','addons/sale/report/sale_order.rml',parser=order, header="external")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/report/order.rml b/addons/sale/report/sale_order.rml
similarity index 100%
rename from addons/sale/report/order.rml
rename to addons/sale/report/sale_order.rml
diff --git a/addons/sale/report/sale_prepare_allot.py b/addons/sale/report/sale_prepare_allot.py
index d5292b6d515..21a37797a73 100644
--- a/addons/sale/report/sale_prepare_allot.py
+++ b/addons/sale/report/sale_prepare_allot.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,20 +15,22 @@
# 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
+
from report import report_sxw
class sale_prepare(report_sxw.rml_parse):
- def __init__(self, cr, uid, name, context):
+
+ def __init__(self, cr, uid, name, context=None):
super(sale_prepare, self).__init__(cr, uid, name, context=context)
self.localcontext.update( {
'allotment': self._allotment,
})
-
+
def _allotment(self, object):
allotments = {}
for line in object.order_line:
@@ -39,8 +41,7 @@ class sale_prepare(report_sxw.rml_parse):
allotments[line.address_allotment_id.id][1].append(line)
return allotments.values()
-report_sxw.report_sxw('report.sale.order.prepare.allot', 'sale.order', 'addons/sale/report/prepare_allot.rml',parser=sale_prepare)
+report_sxw.report_sxw('report.sale.order.prepare.allot', 'sale.order', 'addons/sale/report/sale_prepare_allot.rml',parser=sale_prepare)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/report/prepare.rml b/addons/sale/report/sale_prepare_allot.rml
similarity index 100%
rename from addons/sale/report/prepare.rml
rename to addons/sale/report/sale_prepare_allot.rml
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index 0880cdb76d1..b18e539864e 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -22,7 +22,6 @@
import tools
from osv import fields,osv
-
class sale_report(osv.osv):
_name = "sale.report"
_description = "Sales Orders Statistics"
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index ed11f80e3a0..36b1afee891 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -26,7 +26,7 @@
-
+
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index c1ea2ea6a8e..3fa024074dc 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -37,8 +37,8 @@ class sale_shop(osv.osv):
'payment_default_id': fields.many2one('account.payment.term', 'Default Payment Term', required=True),
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist'),
- 'project_id': fields.many2one('account.analytic.account', 'Analytic Account'),
- 'company_id': fields.many2one('res.company', 'Company'),
+ 'project_id': fields.many2one('account.analytic.account', 'Analytic Account', domain=[('parent_id', '!=', False)]),
+ 'company_id': fields.many2one('res.company', 'Company', required=True),
}
sale_shop()
@@ -290,7 +290,6 @@ class sale_order(osv.osv):
'partner_invoice_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['invoice'])['invoice'],
'partner_order_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['contact'])['contact'],
'partner_shipping_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['delivery'])['delivery'],
-# 'pricelist_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').browse(cr, uid, context['partner_id']).property_product_pricelist.id,
}
_order = 'name desc'
@@ -315,7 +314,6 @@ class sale_order(osv.osv):
# Que faire si le client a une pricelist a lui ?
if shop.pricelist_id.id:
v['pricelist_id'] = shop.pricelist_id.id
- #v['payment_default_id']=shop.payment_default_id.id
return {'value': v}
def action_cancel_draft(self, cr, uid, ids, *args):
@@ -703,6 +701,7 @@ class sale_order(osv.osv):
for proc_id in proc_ids:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
+ wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_check', cr)
if order.state == 'shipping_except':
val['state'] = 'progress'
@@ -772,6 +771,7 @@ sale_order()
# - update it on change product and unit price
# - use it in report if there is a uos
class sale_order_line(osv.osv):
+
def _amount_line(self, cr, uid, ids, field_name, arg, context=None):
tax_obj = self.pool.get('account.tax')
cur_obj = self.pool.get('res.currency')
@@ -1171,9 +1171,9 @@ class sale_config_picking_policy(osv.osv_memory):
"in one or two operations by the worker.")
}
_defaults = {
- 'picking_policy': lambda *a: 'direct',
- 'order_policy': lambda *a: 'manual',
- 'step': lambda *a: 'one'
+ 'picking_policy': 'direct',
+ 'order_policy': 'manual',
+ 'step': 'one'
}
def execute(self, cr, uid, ids, context=None):
diff --git a/addons/sale/sale_demo.xml b/addons/sale/sale_demo.xml
index 0920cdeebb2..31ab58eb60b 100644
--- a/addons/sale/sale_demo.xml
+++ b/addons/sale/sale_demo.xml
@@ -2,9 +2,8 @@
-
+
+
@@ -12,10 +11,8 @@
-
-
+
+
@@ -26,10 +23,8 @@
-
-
+
+
New server config + material
@@ -70,13 +65,8 @@
make_to_stock
-
-
-
-
-
+
+
@@ -87,10 +77,8 @@
-
-
+
+
[PC2] Computer assembled on demand
@@ -110,12 +98,8 @@
make_to_order
-
-
-
-
+
+
@@ -147,9 +131,8 @@
-
+
+
@@ -181,9 +164,8 @@
-
+
+
@@ -208,9 +190,9 @@
-
+
Advance Product
@@ -222,4 +204,4 @@
-
+
\ No newline at end of file
diff --git a/addons/sale/sale_installer.py b/addons/sale/sale_installer.py
index d85273fa9a0..92758559439 100644
--- a/addons/sale/sale_installer.py
+++ b/addons/sale/sale_installer.py
@@ -18,6 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
+
from osv import fields, osv
class sale_installer(osv.osv_memory):
@@ -41,4 +42,7 @@ class sale_installer(osv.osv_memory):
'sale_order_dates': fields.boolean('Sale Order Dates',
help="Add commitment, requested and effective dates on the sale order."),
}
+
sale_installer()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/sale_installer.xml b/addons/sale/sale_installer.xml
index c77faf905e6..0806ae941ac 100644
--- a/addons/sale/sale_installer.xml
+++ b/addons/sale/sale_installer.xml
@@ -8,7 +8,7 @@
- Sale Management Modules Installation
+ Sale Management Modules Configuration
diff --git a/addons/sale/sale_report.xml b/addons/sale/sale_report.xml
index f21f20c63f7..33819df0bde 100644
--- a/addons/sale/sale_report.xml
+++ b/addons/sale/sale_report.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/addons/sale/sale_sequence.xml b/addons/sale/sale_sequence.xml
index 5e5005d3b1b..8a500a9395c 100644
--- a/addons/sale/sale_sequence.xml
+++ b/addons/sale/sale_sequence.xml
@@ -1,16 +1,19 @@
+
Sale Order
sale.order
+
Sale Order
sale.order
SO
3
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index bb32cfc8f83..48230f9bd5f 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -1,7 +1,7 @@
-
+
@@ -116,7 +116,7 @@
+ groups="base.group_extended" domain="[('parent_id','!=',False)]" />
@@ -169,8 +169,6 @@
-
-
@@ -290,6 +288,12 @@
form
tree,form,calendar,graph
+ The sale order manages the invoicing, the product fullfilment and the
+delivery processes. OpenERP can handle products, services and
+consumables so that a sale order can trigger tasks, manufacturing
+orders, purchases, etc. It support several invoicing methods according
+to your configuration: from the sale order, from the pickings, etc.
+
@@ -411,9 +415,6 @@
attrs="{'invisible': ['|',('state', 'not in', ('confirmed','exception')),('invoiced', '=', 0)]}"/>
-
-
-
diff --git a/addons/sale/sale_workflow.xml b/addons/sale/sale_workflow.xml
index effe7cb6fff..0ff5eb15ea0 100644
--- a/addons/sale/sale_workflow.xml
+++ b/addons/sale/sale_workflow.xml
@@ -6,7 +6,7 @@
sale.order
True
-
+
@@ -28,7 +28,7 @@
wait_ship
-
+
done
@@ -88,10 +88,6 @@
ship
function
-
action_ship_create()
@@ -113,78 +109,78 @@
stopall
action_cancel()
-
+
-
+
-
+
order_confirm
-
+
cancel
-
+
all_lines
-
+
(order_policy=='picking')
-
+
-
+
-
+
cancel
-
+
cancel
-
+
(order_policy!='prepaid') or invoiced
-
+
(order_policy=='prepaid') or ((order_policy=='postpaid') and shipped)
-
+
manual_invoice
-
+
@@ -214,7 +210,7 @@
-
+
@@ -225,10 +221,6 @@
-
test_state('canceled')
@@ -246,6 +238,6 @@
ship_cancel
-
+
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 557f30f637e..19da6a6f81f 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -9,10 +9,6 @@
Sales / User
-
-
diff --git a/addons/sale/stock.py b/addons/sale/stock.py
index b908c440b1d..39260e759b4 100644
--- a/addons/sale/stock.py
+++ b/addons/sale/stock.py
@@ -29,12 +29,13 @@ class stock_move(osv.osv):
_defaults = {
'sale_line_id': False
}
+
stock_move()
class stock_picking(osv.osv):
_inherit = 'stock.picking'
_columns = {
- 'sale_id': fields.many2one('sale.order', 'Sale Order', ondelete='set null', select=True, readonly=True),
+ 'sale_id': fields.many2one('sale.order', 'Sale Order', ondelete='set null', select=True),
}
_defaults = {
'sale_id': False
@@ -115,6 +116,8 @@ class stock_picking(osv.osv):
invoice_obj = self.pool.get('account.invoice')
picking_obj = self.pool.get('stock.picking')
invoice_line_obj = self.pool.get('account.invoice.line')
+ if context is None:
+ context = {}
result = super(stock_picking, self).action_invoice_create(cursor, user,
ids, journal_id=journal_id, group=group, type=type,
@@ -183,10 +186,10 @@ class stock_picking(osv.osv):
'quantity': sale_line.product_uos_qty,
'invoice_line_tax_id': [(6, 0, tax_ids)],
'account_analytic_id': account_analytic_id,
- }, context=context)
+ }, context=context)
self.pool.get('sale.order.line').write(cursor, user, [sale_line.id], {'invoiced':True,
'invoice_lines': [(6, 0, [invoice_line_id])],
- })
+ })
return result
diff --git a/addons/sale/stock_view.xml b/addons/sale/stock_view.xml
index 2e9e7e0b66e..73df12db523 100644
--- a/addons/sale/stock_view.xml
+++ b/addons/sale/stock_view.xml
@@ -12,5 +12,20 @@
+
+
+
+
+ Outgoing picking Inherited
+ stock.picking
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/sale/test/advance_invoice.yml b/addons/sale/test/advance_invoice.yml
index 5a8d06c354c..7bb1ac8e902 100644
--- a/addons/sale/test/advance_invoice.yml
+++ b/addons/sale/test/advance_invoice.yml
@@ -26,11 +26,7 @@
pricelist_id: product.list0
shop_id: sale.shop
-
- I confirm the Sale Order.
--
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so5}
--
- I use the Advance Payment wizard.
+ I use the Advance Payment wizard.
-
!record {model: sale.advance.payment.inv, id: sale_advance_payment_inv_0}:
amount: 1000.0
@@ -66,7 +62,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
assert invoice_id, "Invoice is not in the open state"
-
Creating a account invoice pay entry.
@@ -95,19 +91,23 @@
writeoff_acc_id: account.a_sale
writeoff_journal_id: sale.account_journal_bankjournal0
-
- I verify that invoice has transit from Open to Done state
+ I verify that invoice has transit from Open to Paid state
-
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
- assert invoice_id, "Invoice for SO is not in done state."
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
+ assert invoice_id, "Invoice for SO is not in paid state."
-
I verify that Paid has been set to true.
-
!python {model: sale.order}: |
sale_id=self.browse(cr, uid, ref("sale_order_so5"))
assert(sale_id.invoiced == True), "Paid has not been set to true"
+-
+ I confirm the Sale Order.
+-
+ !workflow {model: sale.order, action: order_confirm, ref: sale_order_so5}
-
I click on "Create Invoice" button of Sales order to create the invoice.
-
@@ -135,7 +135,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
assert invoice_id, "Invoice is not in the open state"
-
Creating a account invoice pay entry.
@@ -178,7 +178,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so5"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
assert invoice_id, "Invoice for SO is not in done state."
-
I verify that Paid has been set to true.
diff --git a/addons/sale/test/data_test.yml b/addons/sale/test/data_test.yml
index ef3b0bfe0ed..4a9eb489500 100644
--- a/addons/sale/test/data_test.yml
+++ b/addons/sale/test/data_test.yml
@@ -38,7 +38,7 @@
I create Minimal Chart Account.
-
!record {model: account.account, id: account_account_minimalchart0}:
- code: '0'
+ code: MC
company_id: base.main_company
currency_mode: current
name: Minimal Chart
diff --git a/addons/sale/test/invoice_on_ordered_qty.yml b/addons/sale/test/invoice_on_ordered_qty.yml
index 9056e4cbb83..c845a4cb741 100644
--- a/addons/sale/test/invoice_on_ordered_qty.yml
+++ b/addons/sale/test/invoice_on_ordered_qty.yml
@@ -3,7 +3,7 @@
I create a Sale Order for Slider Mobile for 500 quantity having Shipping Policy 'Shipping & Manual Invoice' and Invoice on 'Ordered quantities'
in order to create an invoice based on the ordered quantity
-
- !record {model: sale.order, id: sale_order_so8}:
+ !record {model: sale.order, id: sale_order_so9}:
date_order: '2010-07-17'
invoice_quantity: order
name: Test_SO006
@@ -29,13 +29,13 @@
-
I confirm the Sale Order.
-
- !workflow {model: sale.order, action: order_confirm, ref: sale_order_so8}
+ !workflow {model: sale.order, action: order_confirm, ref: sale_order_so9}
-
I verify that the picking has been generated for the sale order
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert so.picking_ids,"Picking has not been generated for sale_order_so8"
+ so = self.browse(cr, uid, ref("sale_order_so9"))
+ assert so.picking_ids,"Picking has not been generated for sale_order_so9"
-
Then I click on the "Products Received" button of Incoming Shipments
-
@@ -47,7 +47,7 @@
!python {model: stock.picking }: |
import time
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
@@ -67,33 +67,32 @@
-
I click on Create Invoice button to create the invoice.
-
- !workflow {model: sale.order, action: manual_invoice, ref: sale_order_so8}
+ !workflow {model: sale.order, action: manual_invoice, ref: sale_order_so9}
-
I verify whether the invoice has been generated for SO
-
!python {model: sale.order}: |
- so = self.browse(cr, uid, ref("sale_order_so8"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so8"
+ so = self.browse(cr, uid, ref("sale_order_so9"))
+ assert so.invoice_ids, "Invoices has not been generated for sale_order_so9"
-
I verify that an invoice is created on the basis of ordered quantity
-
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
for so_lines in so.order_line:
- qty=so_lines.product_uom_qty
- ids = self.search(cr, uid, [('origin', '=', so.name)])
+ qty = so_lines.product_uom_qty
+ ids = self.search(cr, uid, [('origin','=',so.name)])
inv_brw = self.browse(cr,uid,ids)[0]
for inv_lines in inv_brw.invoice_line:
- qty1=inv_lines.quantity
- invoice_id = self.search(cr, uid, [('qty1','=', 'qty') and ('origin', '=', so.name)])
- assert invoice_id, "Quantities are not same"
+ qty1 = inv_lines.quantity
+ assert ('qty1','=','qty'), "Quantities are not same"
-
I open the Invoice for the SO.
-
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
import netsvc
wf_service = netsvc.LocalService("workflow")
invoice_ids = so.invoice_ids
@@ -113,7 +112,7 @@
-
!python {model: account.invoice.pay}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
self.wo_check(cr, uid, [ref("account_invoice_pay_tst1")], {"lang": "en_US", "tz":
False, "active_model": 'account.invoice', "active_ids": [so.invoice_ids[0].id], "type":
"out_invoice", "active_id": so.invoice_ids[0].id, })
@@ -130,7 +129,7 @@
-
!python {model: account.invoice.pay.writeoff}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
self.pay_and_reconcile_writeoff(cr, uid, [ref("account_invoice_pay_writeoff_0")],
{"lang": 'en_US', "tz": False, "active_model": 'account.invoice', "active_ids":
[so.invoice_ids[0].id], "type": "out_invoice", "active_id": so.invoice_ids[0].id })
@@ -139,7 +138,7 @@
-
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
invoice_ids = so.invoice_ids
for invoice in invoice_ids:
assert (invoice.state) =='paid', "Invoice for SO is not in done state."
@@ -147,5 +146,5 @@
I check that Paid has been set to true.
-
!python {model: sale.order}: |
- sale_id=self.browse(cr, uid, ref("sale_order_so8"))
+ sale_id=self.browse(cr, uid, ref("sale_order_so9"))
assert(sale_id.invoiced == True), "Paid has not been set to true"
\ No newline at end of file
diff --git a/addons/sale/test/invoice_on_shipped_qty.yml b/addons/sale/test/invoice_on_shipped_qty.yml
index 06e90cb9c4b..c399948c004 100644
--- a/addons/sale/test/invoice_on_shipped_qty.yml
+++ b/addons/sale/test/invoice_on_shipped_qty.yml
@@ -103,8 +103,7 @@
inv_brw = self.browse(cr,uid,inv_id)[0]
for inv_lines in inv_brw.invoice_line:
qty1=inv_lines.quantity
- invoice_id = self.search(cr, uid, [('qty1','=', 'qty') and ('origin', '=', so.name)])
- assert invoice_id, "Quantities are not same"
+ assert ('qty1','=','qty'), "Quantities are not same"
-
I open the Invoice for the SO.
-
diff --git a/addons/sale/test/manual_order_policy.yml b/addons/sale/test/manual_order_policy.yml
index 3d7abdcf549..9dd12ed375c 100644
--- a/addons/sale/test/manual_order_policy.yml
+++ b/addons/sale/test/manual_order_policy.yml
@@ -56,7 +56,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
assert invoice_id, "Invoice is not in the open state"
-
I verify that its Journal Entries has been created
@@ -64,7 +64,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
inv_brw = self.browse(cr, uid, invoice_id)[0]
assert inv_brw.move_id, "Journal Entries has not been created"
-
@@ -108,7 +108,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
assert invoice_id, "Invoice for SO is not in done state."
-
I verify that Paid has been set to true.
@@ -161,7 +161,7 @@
if (mod_brw.state == 'installed'):
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
+ proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
assert proc_ids, _('Procurement is not in the running state!')
-
I verify that a purchase order has been generated
@@ -259,7 +259,7 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
+ ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
Then I done the picking
diff --git a/addons/sale/test/picking_order_policy.yml b/addons/sale/test/picking_order_policy.yml
index d973f31d1f3..d9b2500d432 100644
--- a/addons/sale/test/picking_order_policy.yml
+++ b/addons/sale/test/picking_order_policy.yml
@@ -174,7 +174,7 @@
if (mod_brw.state == 'installed'):
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
+ proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
assert proc_ids, _('Procurement is not in the running state!')
-
I verify that a purchase order has been generated
@@ -271,7 +271,7 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
+ ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
I verify that delivery order has been generated for sale order
diff --git a/addons/sale/test/postpaid_order_policy.yml b/addons/sale/test/postpaid_order_policy.yml
index 056a8327435..c4cf24eb419 100644
--- a/addons/sale/test/postpaid_order_policy.yml
+++ b/addons/sale/test/postpaid_order_policy.yml
@@ -139,7 +139,8 @@
if (mod_brw.state == 'installed'):
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
+ proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
+ assert proc_ids, _('Procurement is not in the running state!')
-
I verify that a purchase order has been generated
-
@@ -235,7 +236,7 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
+ ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
I verify that a "Picked" has been set to true
diff --git a/addons/sale/test/prepaid_order_policy.yml b/addons/sale/test/prepaid_order_policy.yml
index fd7f04bede0..f5329f1540a 100644
--- a/addons/sale/test/prepaid_order_policy.yml
+++ b/addons/sale/test/prepaid_order_policy.yml
@@ -94,7 +94,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
assert invoice_id, "Invoice for SO is not in done state."
-
I check that Paid has been set to true.
@@ -171,7 +171,7 @@
if(mod_brw.state == 'installed'):
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
+ proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
assert proc_ids, _('Procurement is not in the running state!')
-
I verify that a purchase order has been generated
@@ -268,7 +268,7 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ) and ('state', '=', 'done')])
+ ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
I verify that a "Picked" has been set to true
diff --git a/addons/sale/test/sale_procurement.yml b/addons/sale/test/sale_procurement.yml
index 4e7d2162421..f7753948339 100644
--- a/addons/sale/test/sale_procurement.yml
+++ b/addons/sale/test/sale_procurement.yml
@@ -68,11 +68,13 @@
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
-
- I check that one procurement is generated.
+ I check that procurement is generated.
-
!python {model: procurement.order}: |
from tools.translate import _
- proc_ids = self.search(cr, uid, [('state','=','confirmed')])
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
+ proc_ids = self.search(cr, uid, [('origin','=',so.name)])
assert proc_ids, _('No Procurements!')
-
I run the scheduler.
diff --git a/addons/sale/test/so_make_invoice.yml b/addons/sale/test/so_make_invoice.yml
index c5860ed875e..abd18751a11 100644
--- a/addons/sale/test/so_make_invoice.yml
+++ b/addons/sale/test/so_make_invoice.yml
@@ -1,307 +1,60 @@
-
- In order to test the sale module in the Open-ERP, I need to configure details regarding product & customer.
+ In order to test the 'Make Invoices' wizard of sale module in the Open-ERP,
+ I create two Sale order,group them and create invoice.
-
- I am going to sell my Mobile products to the customer with name Cleartrail
--
- I create View Account Type.
--
- !record {model: account.account.type, id: account_account_type_view0}:
- close_method: none
- code: View
- name: View
- sign: 1
--
- I create Income Account Type.
--
- !record {model: account.account.type, id: account_account_type_income0}:
- close_method: unreconciled
- code: Income
- name: Income
- sign: 1
--
- I create Expense Account Type.
--
- !record {model: account.account.type, id: account_account_type_expense0}:
- close_method: unreconciled
- code: Expense
- name: Expense
- sign: 1
--
- I create Cash Account Type.
--
- !record {model: account.account.type, id: account_account_type_cash0}:
- close_method: balance
- code: Cash
- name: Cash
- sign: 1
--
- I create Minimal Chart Account.
--
- !record {model: account.account, id: account_account_minimalchart0}:
- code: '0'
- company_id: base.main_company
- currency_mode: current
- name: Minimal Chart
- parent_left: 1
- parent_right: 12
- type: view
- user_type: account_account_type_view0
--
- I create Payable Account.
--
- !record {model: account.account, id: account_account_payable1}:
- code: AP
- company_id: base.main_company
- currency_mode: current
- name: Payable
- parent_id: account_account_minimalchart0
- parent_left: 2
- parent_right: 3
- reconcile: true
- type: payable
- user_type: account_account_type_expense0
--
- I create Receivable Account.
--
- !record {model: account.account, id: account_account_receivable0}:
- code: AR
- currency_mode: current
- name: Receivable
- parent_id: account_account_minimalchart0
- parent_left: 4
- parent_right: 5
- reconcile: true
- type: receivable
- user_type: account_account_type_income0
--
- I create Cash Account.
--
- !record {model: account.account, id: account_account_cash0}:
- code: C
- currency_mode: current
- name: Cash
- parent_id: account_account_minimalchart0
- parent_left: 6
- parent_right: 7
- type: other
- user_type: account_account_type_cash0
--
- I create Purchases Account.
--
- !record {model: account.account, id: account_account_purchases0}:
- code: P
- company_id: base.main_company
- currency_mode: current
- name: Purchases
- parent_id: account_account_minimalchart0
- parent_left: 8
- parent_right: 9
- type: other
- user_type: account_account_type_expense0
--
- I create Sales Account.
--
- !record {model: account.account, id: account_account_sales0}:
- code: S
- company_id: base.main_company
- currency_mode: current
- name: Sales
- parent_id: account_account_minimalchart0
- parent_left: 10
- parent_right: 11
- type: other
- user_type: account_account_type_income0
--
- I create Purchase Journal.
--
- !record {model: account.journal, id: account_journal_purchasejournal0}:
- code: PUJ
- company_id: base.main_company
- default_credit_account_id: account_account_purchases0
- default_debit_account_id: account_account_purchases0
- name: Purchase Journal
- sequence_id: account.sequence_purchase_journal
- type: purchase
- view_id: account.account_journal_view
--
- I create Sale Journal.
--
- !record {model: account.journal, id: account_journal_salejournal0}:
- code: SAJ
- company_id: base.main_company
- default_credit_account_id: account_account_sales0
- default_debit_account_id: account_account_sales0
- name: Sale Journal
- sequence_id: account.sequence_sale_journal
- type: sale
- view_id: account.account_journal_view
--
- I create Bank Journal.
--
- !record {model: account.journal, id: account_journal_bankjournal0}:
- code: BNK
- default_credit_account_id: account_account_cash0
- default_debit_account_id: account_account_cash0
- name: Bank Journal
- sequence_id: account.sequence_journal
- type: cash
- view_id: account.account_journal_bank_view
--
- I create ir.property for account payable.
--
- !record {model: ir.property, id: ir_property_propertyaccountexpensecateg0}:
- company_id: base.main_company
- fields_id: account.field_res_partner_property_account_payable
- name: property_account_expense_categ
- value_reference: account.account,5
--
- I create ir.property for account receivable.
--
- !record {model: ir.property, id: ir_property_propertyaccountincomecateg0}:
- company_id: base.main_company
- fields_id: account.field_res_partner_property_account_receivable
- name: property_account_income_categ
- value_reference: account.account,6
--
- I create Partner category Customers.
--
- !record {model: res.partner.category, id: res_partner_category_customers0}:
- name: Customers
+ I create a Sale Order for Slider Mobile for qty 100 having order_policy manual.
-
- I create Cleartrail Customer.
--
- !record {model: res.partner, id: res_partner_cleartrail0}:
- category_id:
- - res_partner_category_customers0
- name: Cleartrail
--
- I create contact address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_1}:
- partner_id: res_partner_cleartrail0
- street: onam plaza, 14 B palasia A B Road
- type: contact
--
- I create invoice address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_2}:
- partner_id: res_partner_cleartrail0
- street: sarda house 24 B palasia, A B Road
- type: invoice
--
- I create delivery address for Cleartrail.
--
- !record {model: res.partner.address, id: res_partner_address_3}:
- partner_id: res_partner_cleartrail0
- street: sangam house 15 B palasia, A B Road
- type: delivery
+ !record {model: sale.order, id: sale_order_so3}:
+ date_order: '2010-08-02'
+ invoice_quantity: order
+ name: Test_SO003
+ order_line:
+ - name: Slider Mobile
+ price_unit: 200.0
+ product_uom: product.product_uom_unit
+ product_uom_qty: 100.0
+ state: draft
+ delay: 7.0
+ product_id: sale.product_product_slidermobile0
+ product_uos_qty: 100.0
+ type: make_to_order
+ order_policy: manual
+ partner_id: sale.res_partner_cleartrail0
+ partner_invoice_id: sale.res_partner_address_2
+ partner_order_id: sale.res_partner_address_1
+ partner_shipping_id: sale.res_partner_address_3
+ picking_policy: direct
+ pricelist_id: product.list0
+ shop_id: sale.shop
-
- Customer Cleartrail has specific instrument requirement regarding the stockable products.
+ I confirm the Sale Order.
-
- I define product category Mobile Products Sellable.
--
- !record {model: product.category, id: product_category_allproductssellable0}:
- name: Mobile Products Sellable
--
- I define product category Mobile Services.
--
- !record {model: product.category, id: product_category_services0}:
- name: Mobile Services
--
- I define LG Viewty Smart product template.
--
- !record {model: product.template, id: product_template_lgviewtysmart0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 170.0
- mes_type: fixed
- name: LG Viewty Smart
- procure_method: make_to_order
- standard_price: 160.0
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I define LG Viewty Smart product.
--
- !record {model: product.product, id: product_product_lgviewtysmart0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 170.0
- mes_type: fixed
- name: LG Viewty Smart
- pricelist_purchase: 'Default Purchase Pricelist (0.00) : 160.00\n'
- pricelist_sale: 'Public Pricelist (0.00) : 170.00\n'
- procure_method: make_to_order
- property_account_expense: sale.account_account_payable1
- property_account_income: sale.account_account_receivable0
- seller_delay: '1'
- standard_price: 160.0
- supply_method: produce
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
+ !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
-
- I define New Chocolate Slider Mobile template.
--
- !record {model: product.template, id: product_template_newchocolateslidermobile0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 200.0
- mes_type: fixed
- name: New Chocolate Slider Mobile
- procure_method: make_to_order
- standard_price: 189.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I define New Chocolate Slider Mobile.
--
- !record {model: product.product, id: product_product_newchocolateslidermobile0}:
- categ_id: product_category_allproductssellable0
- cost_method: standard
- list_price: 200.0
- mes_type: fixed
- name: New Chocolate Slider Mobile
- pricelist_purchase: 'Default Purchase Pricelist (0.00) : 189.00\n'
- pricelist_sale: 'Public Pricelist (0.00) : 200.00\n'
- procure_method: make_to_order
- property_account_expense: sale.account_account_payable1
- property_account_income: sale.account_account_receivable0
- seller_delay: '1'
- standard_price: 189.0
- supply_method: buy
- type: product
- uom_id: product.product_uom_unit
- uom_po_id: product.product_uom_unit
--
- I create a Sale Order for LG Viewty Smart for qty 500 having order_policy manual.
+ I create a Sale Order for products Slider Mobile and LG Viewty Smart for qty 100 having order_policy manual.
-
!record {model: sale.order, id: sale_order_so4}:
- date_order: '2010-05-12'
+ date_order: '2010-08-02'
invoice_quantity: order
name: Test_SO004
order_line:
- - name: New Chocolate Slider Mobile
+ - name: Slider Mobile
price_unit: 200.0
product_uom: product.product_uom_unit
- product_uom_qty: 500.0
+ product_uom_qty: 100.0
state: draft
delay: 7.0
- product_id: sale.product_product_newchocolateslidermobile0
- product_uos_qty: 500.0
+ product_id: sale.product_product_slidermobile0
+ product_uos_qty: 100.0
type: make_to_order
- name: LG Viewty Smart
price_unit: 170.0
product_uom: product.product_uom_unit
- product_uom_qty: 500.0
+ product_uom_qty: 100.0
state: draft
delay: 7.0
product_id: sale.product_product_lgviewtysmart0
- product_uos_qty: 500.0
+ product_uos_qty: 100.0
th_weight: 0.0
type: make_to_order
order_policy: manual
@@ -317,22 +70,158 @@
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so4}
-
- I create an invoice on sale order.
--
- !record {model: sale.make.invoice, id: sale_make_invoice_1}:
- {}
--
- Invoice is created for specific sale order.
--
- !python {model: sale.make.invoice}: |
- self.make_invoices(cr, uid, [ref("sale_make_invoice_1")], {"lang": 'en_US', "search_default_user_id":
- 1, "tz": False, "active_model": 'sale.order', "active_ids": [ref("sale_order_so4")], "active_id":
- ref("sale_order_so4"), })
+ Then I cancel the sale order line
-
- I verify that invoice regarding sale order has been created.
+ I click on the "Cancel" button of sale order line and verify that it gives a warning message.
-
+ !python {model: sale.order.line}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ sol = so.order_line[1]
+ try:
+ self.button_cancel(cr, uid, [sol.id], {"lang": "en_US", "tz": False, "active_model":
+ "ir.ui.menu", "active_ids": [ref("sale.menu_invoicing_sales_order_lines")],
+ "search_default_uninvoiced": 1, "active_id": ref("sale.menu_invoicing_sales_order_lines"),
+ })
+ except:
+ pass
+-
+ I verify that picking has been generated for the sale order.
+-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so4"))
- assert so.invoice_ids, "Invoices has not been generated for sale_order_so0"
-
-
\ No newline at end of file
+ assert so.picking_ids,"Picking has not been generated for sale_order_so4"
+-
+ Then I cancel its related stock move from Outgoing Products
+-
+ !python {model: stock.move}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ pick_obj = self.pool.get('stock.picking')
+ pick_id = pick_obj.search(cr, uid, [('origin', '=', so.name),('type','=','out')])
+ pick_brw = pick_obj.browse(cr,uid,pick_id)[0]
+ move_obj = self.pool.get('stock.move')
+ move_id = move_obj.search(cr, uid, [('picking_id', '=', pick_brw.name),('name','=','LG Viewty Smart')])
+ self.action_cancel(cr,uid,move_id)
+-
+ Then I cancel its related stock move from Delivery Order
+-
+ !python {model: stock.move}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ pick_obj = self.pool.get('stock.picking')
+ pick_id = pick_obj.search(cr, uid, [('origin', '=', so.name),('type','=','delivery')])
+ pick_brw = pick_obj.browse(cr,uid,pick_id)[0]
+ move_obj = self.pool.get('stock.move')
+ move_id = move_obj.search(cr, uid, [('picking_id', '=', pick_brw.name),('name','=','LG Viewty Smart')])
+ self.action_cancel(cr,uid,move_id)
+-
+ Then I cancel the sale order line for LG Viewty Smart
+-
+ !python {model: sale.order.line}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ sol = so.order_line[1]
+ self.button_cancel(cr, uid, [sol.id], {"lang": "en_US", "tz": False, "active_model":
+ "ir.ui.menu", "active_ids": [ref("sale.menu_invoicing_sales_order_lines")],
+ "search_default_uninvoiced": 1, "active_id": ref("sale.menu_invoicing_sales_order_lines"),
+ })
+-
+ I verify that the state of sale order line is cancel
+-
+ !python {model: sale.order.line}: |
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ chk = self.search(cr, uid, [('order_id', '=', so.name),('state','=','cancel')])
+ assert chk,"Sale order line has not been cancelled"
+-
+ Then I click on the "Make Invoices" button
+-
+ !record {model: sale.make.invoice, id: sale_make_invoice_1}:
+ grouped: 1
+ invoice_date: '2010-08-02'
+-
+ Then I click on the "Create Invoices" button of wizard
+-
+ !python {model: sale.make.invoice}: |
+ self.make_invoices(cr, uid, [ref("sale_make_invoice_1")], {"lang": 'en_US', "search_default_user_id":
+ 1, "tz": False, "active_model": 'sale.order', "active_ids": [ref("sale_order_so4"),ref("sale_order_so3")], "active_id":
+ ref("sale_order_so4")})
+-
+ I verify that an invoice has been created
+-
+ !python {model: account.invoice}: |
+ inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ assert inv, "Invoices has not been generated"
+-
+ I verify that an account invoice line with origin 'Test_SO004' is created
+-
+ !python {model: account.invoice.line}: |
+ sale_order_obj = self.pool.get('sale.order')
+ acc_inv_obj = self.pool.get('account.invoice')
+ inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
+ inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
+ assert inv_line, "Account invoice line has not been created"
+-
+ I verify that an account invoice line with origin 'Test_SO003' is created
+-
+ !python {model: account.invoice.line}: |
+ sale_order_obj = self.pool.get('sale.order')
+ acc_inv_obj = self.pool.get('account.invoice')
+ inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
+ inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
+ assert inv_line, "Account invoice line has not been created"
+-
+ I open the Invoice for the SO.
+-
+ !python {model: account.invoice}: |
+ import netsvc
+ wf_service = netsvc.LocalService("workflow")
+ inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ for id in inv:
+ wf_service.trg_validate(uid, 'account.invoice',id,'invoice_open', cr)
+-
+ Creating a account invoice pay entry.
+-
+ !record {model: account.invoice.pay, id: account_invoice_pay_tst1}:
+ amount: 40000.0
+ date: '2010-08-02'
+ journal_id: sale.account_journal_bankjournal0
+ name: tst
+ period_id: account.period_8
+-
+ I pay the invoice.
+-
+ !python {model: account.invoice.pay}: |
+ acc_inv_obj = self.pool.get('account.invoice')
+ inv_id = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ for ids in inv_id:
+ self.wo_check(cr, uid, [ref("account_invoice_pay_tst1")], {"lang": "en_US", "tz":
+ False, "active_model": 'account.invoice', 'record_id': ids, "active_ids": [ids], "type":
+ "out_invoice", "active_id": ids, })
+-
+ Creating an account invoice pay writeoff entry.
+-
+ !record {model: account.invoice.pay.writeoff, id: account_invoice_pay_writeoff_0}:
+ analytic_id: account.analytic_customers
+ comment: Write-Off
+ writeoff_acc_id: account.a_sale
+ writeoff_journal_id: sale.account_journal_bankjournal0
+-
+ Pay and Reconcile the Invoice.
+-
+ !python {model: account.invoice.pay.writeoff}: |
+ acc_inv_obj = self.pool.get('account.invoice')
+ inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
+ for inv_id in inv:
+ self.pay_and_reconcile_writeoff(cr, uid, [ref("account_invoice_pay_writeoff_0")],
+ {"lang": 'en_US', "tz": False, "active_model": 'account.invoice', "active_ids":
+ [inv_id], "type": "out_invoice", "active_id": inv_id, })
+-
+ I verify the invoice is in Paid sate
+-
+ !python {model: account.invoice}: |
+ invoice_id = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|'),('state','=','paid')])
+ assert invoice_id, "Invoice for SO is not in done state."
diff --git a/addons/sale/test/so_make_line_invoice.yml b/addons/sale/test/so_make_line_invoice.yml
index 6a5ea58f6da..07c45bec996 100644
--- a/addons/sale/test/so_make_line_invoice.yml
+++ b/addons/sale/test/so_make_line_invoice.yml
@@ -79,7 +79,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
assert invoice_id, "Invoice is not in the open state"
-
Creating an account invoice pay entry.
@@ -122,7 +122,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
assert invoice_id, "Invoice for SO is not in done state."
-
I verify that Paid has been set to true.
@@ -189,7 +189,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','open')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
assert invoice_id, "Invoice is not in the open state"
-
Creating a account invoice pay entry.
@@ -232,7 +232,7 @@
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
- invoice_id = self.search(cr, uid, [('origin','=',so.name) and ('state','=','paid')])
+ invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
assert invoice_id, "Invoice for SO is not in done state."
-
I verify that Paid has been set to true.
diff --git a/addons/sale/wizard/__init__.py b/addons/sale/wizard/__init__.py
index ba6fd677a3c..6cf076164d8 100644
--- a/addons/sale/wizard/__init__.py
+++ b/addons/sale/wizard/__init__.py
@@ -23,5 +23,4 @@ import sale_make_invoice
import sale_line_invoice
import sale_make_invoice_advance
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py
index 195931ecb04..b7ea27a3049 100644
--- a/addons/sale/wizard/sale_line_invoice.py
+++ b/addons/sale/wizard/sale_line_invoice.py
@@ -110,7 +110,6 @@ class sale_order_line_make_invoice(osv.osv_memory):
(order_id,invoice_id) values (%s,%s)', (order.id, res))
return {}
-
sale_order_line_make_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_line_invoice.xml b/addons/sale/wizard/sale_line_invoice.xml
index eb9100c6777..63a26587d43 100644
--- a/addons/sale/wizard/sale_line_invoice.xml
+++ b/addons/sale/wizard/sale_line_invoice.xml
@@ -22,6 +22,5 @@
form
new
-
-
+
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_make_invoice.py b/addons/sale/wizard/sale_make_invoice.py
index 850fc2e25d4..e1d26c7b987 100644
--- a/addons/sale/wizard/sale_make_invoice.py
+++ b/addons/sale/wizard/sale_make_invoice.py
@@ -29,15 +29,19 @@ class sale_make_invoice(osv.osv_memory):
'grouped': fields.boolean('Group the invoices', help='Check the box to group the invoices for the same customers'),
'invoice_date':fields.date('Invoice Date'),
}
- _default = {
- 'grouped' : lambda *a: False
+ _defaults = {
+ 'grouped': False
}
+
def view_init(self, cr, uid, fields_list, context=None):
+ if context is None:
+ context = {}
record_id = context and context.get('active_id', False)
order = self.pool.get('sale.order').browse(cr, uid, record_id)
if order.state == 'draft':
raise osv.except_osv(_('Warning !'),'You can not create invoice when sale order is not confirmed.')
return False
+
def make_invoices(self, cr, uid, ids, context={}):
order_obj = self.pool.get('sale.order')
newinv = []
@@ -68,5 +72,5 @@ class sale_make_invoice(osv.osv_memory):
}
sale_make_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_make_invoice.xml b/addons/sale/wizard/sale_make_invoice.xml
index 37239aedd38..2bef6b67513 100644
--- a/addons/sale/wizard/sale_make_invoice.xml
+++ b/addons/sale/wizard/sale_make_invoice.xml
@@ -27,13 +27,5 @@
new
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py
index 3b966e014e6..0eac0308acc 100644
--- a/addons/sale/wizard/sale_make_invoice_advance.py
+++ b/addons/sale/wizard/sale_make_invoice_advance.py
@@ -19,7 +19,6 @@
##############################################################################
from osv import fields, osv
-from service import web_services
from tools.translate import _
import ir
@@ -31,9 +30,10 @@ class sale_advance_payment_inv(osv.osv_memory):
'amount': fields.float('Unit Price', size=(16, 2), required=True),
'qtty': fields.float('Quantity', size=(16, 2), required=True),
}
- _default = {
- 'qtty' : lambda *a: 1
- }
+ _defaults = {
+ 'qtty': 1.0
+ }
+
def create_invoices(self, cr, uid, ids, context={}):
"""
To create invoices.
@@ -65,7 +65,7 @@ class sale_advance_payment_inv(osv.osv_memory):
that is defined as 'Automatic Invoice after delivery'."))
val = obj_lines.product_id_change(cr, uid, [], sale_adv_obj.product_id.id,
uom = False, partner_id = sale.partner_id.id, fposition_id = sale.fiscal_position.id)
- line_id =obj_lines.create(cr, uid, {
+ line_id = obj_lines.create(cr, uid, {
'name': val['value']['name'],
'account_id': val['value']['account_id'],
'price_unit': sale_adv_obj.amount,
@@ -92,7 +92,7 @@ class sale_advance_payment_inv(osv.osv_memory):
'comment': '',
'payment_term':sale.payment_term.id,
'fiscal_position': sale.fiscal_position.id or sale.partner_id.property_account_position.id
- }
+ }
inv_id = inv_obj.create(cr, uid, inv)
@@ -121,15 +121,15 @@ class sale_advance_payment_inv(osv.osv_memory):
context.update({'invoice_id':list_inv})
- return {#'invoice_ids':list_inv,
- 'name': 'Open Invoice',
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'sale.open.invoice',
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- 'context':context
- }
+ return {
+ 'name': 'Open Invoice',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.open.invoice',
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context':context
+ }
sale_advance_payment_inv()
@@ -168,7 +168,6 @@ class sale_open_invoice(osv.osv_memory):
tree_id = mod_obj._get_id(cr, uid, 'account', 'invoice_tree')
tree_res = mod_obj.browse(cr, uid, tree_id, context=context).res_id
return {
-# 'domain': "[('id','in', ["+','.join(map(str, invoices))+"])]", # TODO
'name': 'Invoices',
'view_type': 'form',
'view_mode': 'form,tree',
@@ -180,9 +179,6 @@ class sale_open_invoice(osv.osv_memory):
'type': 'ir.actions.act_window',
}
-
-
-
sale_open_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/sale/wizard/sale_make_invoice_advance.xml b/addons/sale/wizard/sale_make_invoice_advance.xml
index be74ac94ac9..3257d1aafe8 100644
--- a/addons/sale/wizard/sale_make_invoice_advance.xml
+++ b/addons/sale/wizard/sale_make_invoice_advance.xml
@@ -6,17 +6,17 @@
sale.advance.payment.inv
form
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -34,15 +34,15 @@
sale.open.invoice
form
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -55,4 +55,4 @@
new
-
+
\ No newline at end of file
diff --git a/addons/sale_analytic_plans/i18n/mn.po b/addons/sale_analytic_plans/i18n/mn.po
new file mode 100644
index 00000000000..adeec2fa25d
--- /dev/null
+++ b/addons/sale_analytic_plans/i18n/mn.po
@@ -0,0 +1,33 @@
+# Mongolian 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-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-08-24 02:53+0000\n"
+"Last-Translator: FULL NAME \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-25 03:55+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_analytic_plans
+#: field:sale.order.line,analytics_id:0
+msgid "Analytic Distribution"
+msgstr ""
+
+#. module: sale_analytic_plans
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale_analytic_plans
+#: model:ir.module.module,shortdesc:sale_analytic_plans.module_meta_information
+msgid "Sales Analytic Distribution Management"
+msgstr ""
diff --git a/addons/sale_crm/board_sale_crm_view.xml b/addons/sale_crm/board_sale_crm_view.xml
index 610184b0e71..83fa1ea583a 100644
--- a/addons/sale_crm/board_sale_crm_view.xml
+++ b/addons/sale_crm/board_sale_crm_view.xml
@@ -102,4 +102,4 @@
-
+
\ No newline at end of file
diff --git a/addons/sale_crm/test/sale_crm.yml b/addons/sale_crm/test/sale_crm.yml
index 3d4542dc7b1..86095929691 100644
--- a/addons/sale_crm/test/sale_crm.yml
+++ b/addons/sale_crm/test/sale_crm.yml
@@ -36,15 +36,15 @@
Then I click on the 'Ok' button of wizard
-
!python {model: crm.make.sale}: |
+ crm_obj = self.pool.get('crm.lead')
+ crm = crm_obj.browse(cr, uid, ref("crm_lead_opportunity0"))
self.makeOrder(cr, uid, [ref("crm_make_sale_0")], {"lang": "en_US", "tz": False,
- "active_model": "crm.lead", "section_id": False, "default_type": "opportunity",
- "search_default_user_id": 1, "search_default_current": 1, "active_ids": [1],
- "active_id": (1)})
+ "active_model": "crm.lead", "section_id": "crm.section_sales_department", "default_type": "opportunity",
+ "search_default_user_id": 1, "search_default_current": 1, "active_ids": [crm.id],
+ "active_id": crm.id})
-
I verify that a sale order has been generated from an opportunity
-
- !python {model: sale.order}: |
- crm_obj = self.pool.get('crm.lead')
+ !python {model: crm.lead}: |
crm = self.browse(cr, uid, ref("crm_lead_opportunity0"))
- so = self.search(cr, uid, [('origin','=', 'Opportunity: %s' % str(crm.id))])
- assert so, "Sale order has not been created "
\ No newline at end of file
+ assert (crm.ref),("sale order has not been created")
\ No newline at end of file
diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py
index f6a99e56578..7d9e4086f52 100644
--- a/addons/sale_crm/wizard/crm_make_sale.py
+++ b/addons/sale_crm/wizard/crm_make_sale.py
@@ -48,7 +48,7 @@ class crm_make_sale(osv.osv_memory):
return False
lead = lead_obj.read(cr, uid, active_id, ['partner_id'])
return lead['partner_id']
-
+
def view_init(self, cr, uid, fields_list, context=None):
if context is None:
context = {}
@@ -58,8 +58,8 @@ class crm_make_sale(osv.osv_memory):
if not line.section_id:
raise osv.except_osv(_('Warning !'), _(' Sales Team is not specified.'))
return super(crm_make_sale, self).view_init(cr, uid, fields_list, context=context)
-
-
+
+
def makeOrder(self, cr, uid, ids, context=None):
"""
@@ -176,9 +176,9 @@ class crm_make_sale(osv.osv_memory):
'view_id': False,
'type': 'ir.actions.act_window',
'res_id': new_ids
- }
+ }
return value
-
+
def _get_shop_id(self, cr, uid, ids, context=None):
if context is None:
context = {}
@@ -198,7 +198,7 @@ class crm_make_sale(osv.osv_memory):
'partner_id': _selectPartner,
'close': 1
}
-
+
crm_make_sale()
class sale_order_make_line(osv.osv_memory):
diff --git a/addons/sale_crm/wizard/crm_make_sale_view.xml b/addons/sale_crm/wizard/crm_make_sale_view.xml
index 736a0712b53..c6b589145c7 100644
--- a/addons/sale_crm/wizard/crm_make_sale_view.xml
+++ b/addons/sale_crm/wizard/crm_make_sale_view.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/addons/sale_journal/i18n/pl.po b/addons/sale_journal/i18n/pl.po
index eb0f1a70cbf..46bea4cc1e2 100644
--- a/addons/sale_journal/i18n/pl.po
+++ b/addons/sale_journal/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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:40+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:58+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_journal
diff --git a/addons/sale_journal/i18n/tr.po b/addons/sale_journal/i18n/tr.po
index 05a0a6283ae..3f21aeb03e1 100644
--- a/addons/sale_journal/i18n/tr.po
+++ b/addons/sale_journal/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-11 05:43+0000\n"
+"PO-Revision-Date: 2010-08-29 08:27+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-12 03:58+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_journal
diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml
index e59b743ed91..7340a7ef133 100644
--- a/addons/sale_journal/sale_journal_view.xml
+++ b/addons/sale_journal/sale_journal_view.xml
@@ -43,7 +43,7 @@
tree,form
-
+
@@ -479,21 +479,6 @@
-
-
-
-
stock.picking.journal.search
stock.picking
@@ -504,8 +489,8 @@
-
-
+
+
stock.picking.journal.search
stock.picking
@@ -517,7 +502,7 @@
-
+
stock.picking.journal.search
stock.picking
@@ -528,8 +513,8 @@
-
-
+
+
stock.picking.journal.search
stock.picking
@@ -540,8 +525,8 @@
-
-
-
+
+
+
diff --git a/addons/sale_layout/i18n/de.po b/addons/sale_layout/i18n/de.po
new file mode 100644
index 00000000000..c72dc09733e
--- /dev/null
+++ b/addons/sale_layout/i18n/de.po
@@ -0,0 +1,279 @@
+# 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-11-26 08:45+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: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Sub Total"
+msgstr "Zwischensumme"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Title"
+msgstr "Überschrift"
+
+#. module: sale_layout
+#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
+msgid "sale_layout"
+msgstr "sale_layout"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc. (%)"
+msgstr "Rabatt (%)"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Note"
+msgstr "Notiz"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Unit Price"
+msgstr "Preis/ME"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Order N°"
+msgstr "Bestellnummer"
+
+#. module: sale_layout
+#: field:sale.order,abstract_line_ids:0
+msgid "Order Lines"
+msgstr "Auftragszeilen"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc.(%)"
+msgstr "Rabatt (%)"
+
+#. module: sale_layout
+#: field:sale.order.line,layout_type:0
+msgid "Layout Type"
+msgstr "Layout Typ"
+
+#. module: sale_layout
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Seq."
+msgstr "Seq."
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Product"
+msgstr "Produkt"
+
+#. module: sale_layout
+#: model:ir.module.module,description:sale_layout.module_meta_information
+msgid ""
+"\n"
+" This module provides some features to improve the layout of the Sale "
+"Order.\n"
+"\n"
+" It gives you the possibility to\n"
+" * order all the lines of an sale order\n"
+" * add titles, comment lines, sub total lines\n"
+" * draw horizontal lines and put page breaks \n"
+"\n"
+" "
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Description"
+msgstr "Beschreibung"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Manual Description"
+msgstr "Manuelle Beschreibung"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Our Salesman"
+msgstr "Unser Verkäufer"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Automatic Declaration"
+msgstr "Automatischer Liefernachweis"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Invoice Lines"
+msgstr "Rechnungszeilen"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quantity"
+msgstr "Menge"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quotation N°"
+msgstr "Angebot Nr."
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "VAT"
+msgstr "USt."
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Make Invoice"
+msgstr "Erzeuge Rechnung"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Properties"
+msgstr "Eigenschaften"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Invoice address :"
+msgstr "Rechnungsanschrift:"
+
+#. module: sale_layout
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Page Break"
+msgstr "Seitenwechsel"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Notes"
+msgstr "Notiz"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Date Ordered"
+msgstr "Auftragsdatum"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Shipping address :"
+msgstr "Lieferanschrift:"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes"
+msgstr "Steuern"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Net Total :"
+msgstr "Gesamt Netto:"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Tel. :"
+msgstr "Tel.:"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Total :"
+msgstr "Summe :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Payment Terms"
+msgstr "Zahlungsbedingungen"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "History"
+msgstr "Verlauf"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sale Order Lines"
+msgstr "Auftragspositionen"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Separator Line"
+msgstr "Trennlinie"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Your Reference"
+msgstr "Ihre Referenz"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sales order lines"
+msgstr "Auftragspositionen"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Qty"
+msgstr "Menge"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "States"
+msgstr "Zustände"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "TVA :"
+msgstr "USt.:"
+
+#. module: sale_layout
+#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
+msgid "Order with Layout"
+msgstr "Auftrag mit Layout"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Extra Info"
+msgstr "Zusatzinfo"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "UoM"
+msgstr "ME"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Fax :"
+msgstr "Fax:"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Order Line"
+msgstr "Auftragszeile"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Price"
+msgstr "Preis"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes :"
+msgstr "Steuern:"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Stock Moves"
+msgstr "Lagerbuchungen"
diff --git a/addons/sale_layout/i18n/es.po b/addons/sale_layout/i18n/es.po
new file mode 100644
index 00000000000..7a164a36e72
--- /dev/null
+++ b/addons/sale_layout/i18n/es.po
@@ -0,0 +1,279 @@
+# Spanish 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-11-26 08:45+0000\n"
+"PO-Revision-Date: 2010-08-23 14:06+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish \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: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Sub Total"
+msgstr ""
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Title"
+msgstr ""
+
+#. module: sale_layout
+#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
+msgid "sale_layout"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc. (%)"
+msgstr ""
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Note"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Order N°"
+msgstr ""
+
+#. module: sale_layout
+#: field:sale.order,abstract_line_ids:0
+msgid "Order Lines"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc.(%)"
+msgstr ""
+
+#. module: sale_layout
+#: field:sale.order.line,layout_type:0
+msgid "Layout Type"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Seq."
+msgstr ""
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Product"
+msgstr ""
+
+#. module: sale_layout
+#: model:ir.module.module,description:sale_layout.module_meta_information
+msgid ""
+"\n"
+" This module provides some features to improve the layout of the Sale "
+"Order.\n"
+"\n"
+" It gives you the possibility to\n"
+" * order all the lines of an sale order\n"
+" * add titles, comment lines, sub total lines\n"
+" * draw horizontal lines and put page breaks \n"
+"\n"
+" "
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Description"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Manual Description"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Our Salesman"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Automatic Declaration"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Invoice Lines"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quantity"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quotation N°"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "VAT"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Make Invoice"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Properties"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Invoice address :"
+msgstr ""
+
+#. module: sale_layout
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Page Break"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Notes"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Date Ordered"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Shipping address :"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Net Total :"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Tel. :"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Total :"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Payment Terms"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "History"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sale Order Lines"
+msgstr ""
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Separator Line"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Your Reference"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sales order lines"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Qty"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "States"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "TVA :"
+msgstr ""
+
+#. module: sale_layout
+#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
+msgid "Order with Layout"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "UoM"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Fax :"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Order Line"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Price"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes :"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Stock Moves"
+msgstr ""
diff --git a/addons/sale_layout/i18n/et.po b/addons/sale_layout/i18n/et.po
new file mode 100644
index 00000000000..8b16a15c4ca
--- /dev/null
+++ b/addons/sale_layout/i18n/et.po
@@ -0,0 +1,279 @@
+# Estonian 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-11-26 08:45+0000\n"
+"PO-Revision-Date: 2010-08-16 09:47+0000\n"
+"Last-Translator: lyyser \n"
+"Language-Team: Estonian \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-17 07:01+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Sub Total"
+msgstr "Vahesumma"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Title"
+msgstr "Pealkiri"
+
+#. module: sale_layout
+#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
+msgid "sale_layout"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc. (%)"
+msgstr "Allahindl. (%)"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Note"
+msgstr "Märkus"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Unit Price"
+msgstr "Ühiku hind"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Order N°"
+msgstr "Korraldus Nr."
+
+#. module: sale_layout
+#: field:sale.order,abstract_line_ids:0
+msgid "Order Lines"
+msgstr "Korralduse read"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc.(%)"
+msgstr "Allah. (%)"
+
+#. module: sale_layout
+#: field:sale.order.line,layout_type:0
+msgid "Layout Type"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Seq."
+msgstr "Jär."
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Product"
+msgstr "Toode"
+
+#. module: sale_layout
+#: model:ir.module.module,description:sale_layout.module_meta_information
+msgid ""
+"\n"
+" This module provides some features to improve the layout of the Sale "
+"Order.\n"
+"\n"
+" It gives you the possibility to\n"
+" * order all the lines of an sale order\n"
+" * add titles, comment lines, sub total lines\n"
+" * draw horizontal lines and put page breaks \n"
+"\n"
+" "
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Description"
+msgstr "Kirjeldus"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Manual Description"
+msgstr "Manuaalne kirjeldus"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Our Salesman"
+msgstr "Meie müügimees"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Automatic Declaration"
+msgstr "Automaatne deklareerimine"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Invoice Lines"
+msgstr "Arve read"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quantity"
+msgstr "Kogus"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quotation N°"
+msgstr "Hinnapakkumine Nr"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "VAT"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Make Invoice"
+msgstr "Loo arve"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Properties"
+msgstr "Seaded"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Invoice address :"
+msgstr "Arveaadress :"
+
+#. module: sale_layout
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Vigane XML vaate arhitektuurile!"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Page Break"
+msgstr "Leheküljepiir"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Notes"
+msgstr "Märkused"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Date Ordered"
+msgstr "Tellimuse kuupäev"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Shipping address :"
+msgstr "Tarneaadress :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes"
+msgstr "Maksud"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Net Total :"
+msgstr "Netosumma:"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Tel. :"
+msgstr "Tel:"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Total :"
+msgstr "Kokku :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Payment Terms"
+msgstr "Makse tingimused"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "History"
+msgstr "Ajalugu"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sale Order Lines"
+msgstr "Müügikorralduse read"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Separator Line"
+msgstr "Eraldusjoon"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Your Reference"
+msgstr "Sinu viide"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sales order lines"
+msgstr "Müügikorralduste read"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Qty"
+msgstr "Kogus"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "States"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "TVA :"
+msgstr "KM:"
+
+#. module: sale_layout
+#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
+msgid "Order with Layout"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Extra Info"
+msgstr "Täiendav info"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "UoM"
+msgstr "Mõõtühik"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Fax :"
+msgstr "Faks :"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Order Line"
+msgstr "Korralduse rida"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Price"
+msgstr "Hind"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes :"
+msgstr "Maksud :"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Stock Moves"
+msgstr "Lao liikumised"
diff --git a/addons/sale_layout/i18n/pl.po b/addons/sale_layout/i18n/pl.po
new file mode 100644
index 00000000000..078e7895114
--- /dev/null
+++ b/addons/sale_layout/i18n/pl.po
@@ -0,0 +1,279 @@
+# Polish 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-11-26 08:45+0000\n"
+"PO-Revision-Date: 2010-08-22 05:49+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Polish \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: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Sub Total"
+msgstr "Wartość"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Title"
+msgstr "Tytuł"
+
+#. module: sale_layout
+#: model:ir.module.module,shortdesc:sale_layout.module_meta_information
+msgid "sale_layout"
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc. (%)"
+msgstr "Up. (%)"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Note"
+msgstr "Notatka"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Unit Price"
+msgstr "Cena jedn."
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Order N°"
+msgstr "Nr zamówienia"
+
+#. module: sale_layout
+#: field:sale.order,abstract_line_ids:0
+msgid "Order Lines"
+msgstr "Pozycje zamówienia"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Disc.(%)"
+msgstr "Up.(%)"
+
+#. module: sale_layout
+#: field:sale.order.line,layout_type:0
+msgid "Layout Type"
+msgstr "Typ układu"
+
+#. module: sale_layout
+#: view:sale.order:0
+#: view:sale.order.line:0
+msgid "Seq."
+msgstr "Num."
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Product"
+msgstr "Produkt"
+
+#. module: sale_layout
+#: model:ir.module.module,description:sale_layout.module_meta_information
+msgid ""
+"\n"
+" This module provides some features to improve the layout of the Sale "
+"Order.\n"
+"\n"
+" It gives you the possibility to\n"
+" * order all the lines of an sale order\n"
+" * add titles, comment lines, sub total lines\n"
+" * draw horizontal lines and put page breaks \n"
+"\n"
+" "
+msgstr ""
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Manual Description"
+msgstr "Opis ręczny"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Our Salesman"
+msgstr "Nasz sprzedawca"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Automatic Declaration"
+msgstr "Deklaracja automatyczna"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Invoice Lines"
+msgstr "Pozycje faktury"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quantity"
+msgstr "Ilość"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Quotation N°"
+msgstr "Nr oferty"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "VAT"
+msgstr ""
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Make Invoice"
+msgstr "Utwórz fakturę"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Properties"
+msgstr "Właściwości"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Invoice address :"
+msgstr "Adres do faktury :"
+
+#. module: sale_layout
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Page Break"
+msgstr "Podział strony"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Notes"
+msgstr "Uwagi"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Date Ordered"
+msgstr "Data zamówienia"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Shipping address :"
+msgstr "Adres do wysyłki :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes"
+msgstr "Podatki"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Net Total :"
+msgstr "Suma netto :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Tel. :"
+msgstr "Tel. :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Total :"
+msgstr "Suma :"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Payment Terms"
+msgstr "Warunki Płatności"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "History"
+msgstr "Historia"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sale Order Lines"
+msgstr "Pozycje zamówienia sprzedaży"
+
+#. module: sale_layout
+#: selection:sale.order.line,layout_type:0
+msgid "Separator Line"
+msgstr "Linia rozdzielająca"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Your Reference"
+msgstr "Twój odnośnik"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Sales order lines"
+msgstr "Pozycje zamówienia sprzedaży"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Qty"
+msgstr "Il."
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "States"
+msgstr "Stany"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "TVA :"
+msgstr "VAT :"
+
+#. module: sale_layout
+#: model:ir.actions.report.xml,name:sale_layout.sale_order_1
+msgid "Order with Layout"
+msgstr "Zamowienie z układem"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Extra Info"
+msgstr "Dodatkowe informacje"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "UoM"
+msgstr "JM"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Fax :"
+msgstr "Faks :"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Order Line"
+msgstr "Pozycja zamówienia"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Price"
+msgstr "Cena"
+
+#. module: sale_layout
+#: rml:sale.order.layout:0
+msgid "Taxes :"
+msgstr "Podatki :"
+
+#. module: sale_layout
+#: view:sale.order:0
+msgid "Stock Moves"
+msgstr "Przesunięcia zapasów"
diff --git a/addons/sale_layout/sale_layout.py b/addons/sale_layout/sale_layout.py
index 9bb73a8e1c3..6144ea13d05 100755
--- a/addons/sale_layout/sale_layout.py
+++ b/addons/sale_layout/sale_layout.py
@@ -57,19 +57,20 @@ class sale_order_line(osv.osv):
if (not type):
return {}
if type != 'article':
- temp = {'value': {
- 'product_id': False,
- 'uos_id': False,
- 'account_id': False,
- 'price_unit': 0.0,
- 'price_subtotal': 0.0,
- 'quantity': 0,
- 'discount': 0.0,
- 'invoice_line_tax_id': False,
- 'account_analytic_id': False,
- 'product_uom_qty':0.0,
- },
- }
+ temp = {
+ 'value': {
+ 'product_id': False,
+ 'uos_id': False,
+ 'account_id': False,
+ 'price_unit': 0.0,
+ 'price_subtotal': 0.0,
+ 'quantity': 0,
+ 'discount': 0.0,
+ 'invoice_line_tax_id': False,
+ 'account_analytic_id': False,
+ 'product_uom_qty':0.0,
+ },
+ }
if type == 'line':
temp['value']['name'] = ' '
if type == 'break':
diff --git a/addons/sale_layout/sale_layout_view.xml b/addons/sale_layout/sale_layout_view.xml
index 41ab5d33900..f184f79da49 100755
--- a/addons/sale_layout/sale_layout_view.xml
+++ b/addons/sale_layout/sale_layout_view.xml
@@ -21,6 +21,7 @@
sale.order.form.inherit_1
sale.order
+ 30
form
diff --git a/addons/sale_margin/i18n/de.po b/addons/sale_margin/i18n/de.po
new file mode 100644
index 00000000000..96ddea2be34
--- /dev/null
+++ b/addons/sale_margin/i18n/de.po
@@ -0,0 +1,375 @@
+# 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-11-25 14:28+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: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+#: selection:stock.invoice_onshipping,init,type:0
+msgid "Customer Refund"
+msgstr "Kundengutschrift"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr "report.account.invoice.product"
+
+#. module: sale_margin
+#: 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: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr "Rechnugnen je Produkt"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+#: selection:stock.invoice_onshipping,init,type:0
+msgid "Customer Invoice"
+msgstr "Ausgangsrechnung"
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr "Erzeuge Rechnungen"
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr "report.account.invoice.partner.product"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+#: selection:stock.invoice_onshipping,init,type:0
+msgid "Supplier Invoice"
+msgstr "Eingangsrechnungen"
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr "Status"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr "Erzeuge Rechnung"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr "Entwurf"
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Ungültiger Modellname in der Aktionsdefinition."
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr "Alle Monate"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr "report.account.invoice.partner.product.tree"
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr "Typ"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr "Zieljournal"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr "Eingangsrechnungen"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr "Produkt"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr "Rechnungen je Partner"
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr "Rechnungen je Kategorie"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr "Bezahlt"
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr "Erzeuge Rechnung"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr "report.account.invoice.category.tree"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr "Rechnungen je Partner und Produkt"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr "report.account.invoice.category"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr "Dieser Monat"
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr "Kategorien"
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Herstellungskosten"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr "Gruppiert nach Partner"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr "report.account.invoice.partner"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr "Rechnungen je Partner"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr "Rechnungen je Kategorie"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr "Rechnungen je Partner und Produkt"
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr "Betrag"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr "Rechnungsdatum"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+#: selection:stock.invoice_onshipping,init,type:0
+msgid "Supplier Refund"
+msgstr "Lieferantengutschrift"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr "report.account.invoice.partner.tree"
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Marge"
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr "Menge"
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr "Rechnungen je Produkt"
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr "Deckungsbeiträge in Verkaufsaufträgen"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr "report.account.invoice"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr "Rechnungen"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr "Pro-Forma"
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr "Monat"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr "Abgebrochen"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr "Rechnung"
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr "report.account.invoice.tree"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr "Offen"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr "report.account.invoice.product.tree"
diff --git a/addons/sale_mrp/i18n/de.po b/addons/sale_mrp/i18n/de.po
new file mode 100644
index 00000000000..4d717102bd0
--- /dev/null
+++ b/addons/sale_mrp/i18n/de.po
@@ -0,0 +1,74 @@
+# 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-06-28 09:21+0000\n"
+"PO-Revision-Date: 2010-08-23 06:40+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: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sale order."
+msgstr "zeigt Kundenreferenz aus dem Verkaufsauftrag"
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sale order."
+msgstr "Zeigt die Bezeichnungdes Verkaufsauftrages"
+
+#. module: sale_mrp
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Fehlerhafter XML-Code für diese Ansicht!"
+
+#. module: sale_mrp
+#: 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: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr "Verkauf Bezeichnung"
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr "Produktionsauftrag"
+
+#. module: sale_mrp
+#: model:ir.module.module,description:sale_mrp.module_meta_information
+msgid ""
+"\n"
+" This module provides facility to the user to install mrp and sale "
+"modules\n"
+" at a time. It is basically used when we want to keep track of "
+"production\n"
+" orders generated from sale orders.\n"
+" It adds sale name and sale Reference on production order\n"
+" "
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr "Verkaufsauftrag Referenz"
+
+#. module: sale_mrp
+#: model:ir.module.module,shortdesc:sale_mrp.module_meta_information
+msgid "Sales and MRP Management"
+msgstr "Verkauf und Prokuktions Management"
diff --git a/addons/sale_mrp/i18n/es.po b/addons/sale_mrp/i18n/es.po
new file mode 100644
index 00000000000..47e42a8843f
--- /dev/null
+++ b/addons/sale_mrp/i18n/es.po
@@ -0,0 +1,72 @@
+# Spanish 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-06-28 09:21+0000\n"
+"PO-Revision-Date: 2010-08-23 14:07+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Spanish \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: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sale order."
+msgstr ""
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sale order."
+msgstr ""
+
+#. module: sale_mrp
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale_mrp
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr ""
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr ""
+
+#. module: sale_mrp
+#: model:ir.module.module,description:sale_mrp.module_meta_information
+msgid ""
+"\n"
+" This module provides facility to the user to install mrp and sale "
+"modules\n"
+" at a time. It is basically used when we want to keep track of "
+"production\n"
+" orders generated from sale orders.\n"
+" It adds sale name and sale Reference on production order\n"
+" "
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr ""
+
+#. module: sale_mrp
+#: model:ir.module.module,shortdesc:sale_mrp.module_meta_information
+msgid "Sales and MRP Management"
+msgstr ""
diff --git a/addons/share/i18n/en_US.po b/addons/share/i18n/en_US.po
new file mode 100644
index 00000000000..c701e031c93
--- /dev/null
+++ b/addons/share/i18n/en_US.po
@@ -0,0 +1,228 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * share
+#
+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:47:11+0000\n"
+"PO-Revision-Date: 2010-08-20 10:47:11+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: share
+#: view:share.create:0
+msgid "Exising Users"
+msgstr "Exising Users"
+
+#. module: share
+#: view:share.create:0
+msgid "Step 1: Chose the action and the additional domain"
+msgstr "Step 1: Chose the action and the additional domain"
+
+#. module: share
+#: field:share.create,user_ids:0
+msgid "Share Users"
+msgstr "Share Users"
+
+#. module: share
+#: view:share.create:0
+msgid "Step 3: Chose Access Mode"
+msgstr "Step 3: Chose Access Mode"
+
+#. module: share
+#: 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: share
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: share
+#: model:ir.module.module,shortdesc:share.module_meta_information
+msgid "Share Management"
+msgstr "Share Management"
+
+#. module: share
+#: view:share.create:0
+msgid "New Users"
+msgstr "New Users"
+
+#. module: share
+#: model:ir.actions.act_window,name:share.action_share_wizard
+#: model:ir.ui.menu,name:share.menu_action_share_wizard
+msgid "Share Access Rules"
+msgstr "Share Access Rules"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Error"
+msgstr "Error"
+
+#. module: share
+#: view:share.result:0
+msgid "Step 4: Share Users Detail"
+msgstr "Step 4: Share Users Detail"
+
+#. module: share
+#: view:share.create:0
+msgid "Next"
+msgstr "Next"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Share Group is exits without sharing !"
+msgstr "Share Group is exits without sharing !"
+
+#. module: share
+#: model:ir.model,name:share.model_share_result
+msgid "share.result"
+msgstr "share.result"
+
+#. module: share
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "New"
+msgstr "New"
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ ONLY"
+msgstr "READ ONLY"
+
+#. module: share
+#: field:share.result,users:0
+msgid "Users"
+msgstr "Users"
+
+#. module: share
+#: view:share.result:0
+msgid "Send Email"
+msgstr "Send Email"
+
+#. module: share
+#: model:ir.model,name:share.model_res_groups
+msgid "res.groups"
+msgstr "res.groups"
+
+#. module: share
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Invalid XML for View Architecture!"
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ & WRITE"
+msgstr "READ & WRITE"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:3 Sharing Wizard"
+msgstr "Step:3 Sharing Wizard"
+
+#. module: share
+#: model:ir.model,name:share.model_share_create
+msgid "Create share"
+msgstr "Create share"
+
+#. module: share
+#: field:share.create,user_type:0
+msgid "User Type"
+msgstr "User Type"
+
+#. module: share
+#: view:share.create:0
+msgid "Step 2: Chose the User type"
+msgstr "Step 2: Chose the User type"
+
+#. module: share
+#: field:share.create,new_user:0
+msgid "New user"
+msgstr "New user"
+
+#. module: share
+#: field:share.create,action_id:0
+msgid "Action"
+msgstr "Action"
+
+#. module: share
+#: field:share.create,domain:0
+msgid "Domain"
+msgstr "Domain"
+
+#. module: share
+#: field:share.create,access_mode:0
+msgid "Access Mode"
+msgstr "Access Mode"
+
+#. module: share
+#: field:res.groups,share:0
+#: field:res.users,share:0
+#: view:share.create:0
+#: view:share.result:0
+msgid "Share"
+msgstr "Share"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:2 Sharing Wizard"
+msgstr "Step:2 Sharing Wizard"
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "Existing"
+msgstr "Existing"
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:4 Share Users Detail"
+msgstr "Step:4 Share Users Detail"
+
+#. module: share
+#: model:ir.module.module,description:share.module_meta_information
+msgid "The goal is to implement a generic sharing mechanism, where user of OpenERP\n"
+"can share data from OpenERP to their colleagues, customers, or friends.\n"
+"The system will work by creating new users and groups on the fly, and by\n"
+"combining the appropriate access rights and ir.rules to ensure that the /shared\n"
+"users/ will only have access to the correct data.\n"
+" "
+msgstr "The goal is to implement a generic sharing mechanism, where user of OpenERP\n"
+"can share data from OpenERP to their colleagues, customers, or friends.\n"
+"The system will work by creating new users and groups on the fly, and by\n"
+"combining the appropriate access rights and ir.rules to ensure that the /shared\n"
+"users/ will only have access to the correct data.\n"
+" "
+
+#. module: share
+#: view:share.create:0
+#: view:share.result:0
+msgid "Cancel"
+msgstr "Cancel"
+
+#. module: share
+#: model:ir.model,name:share.model_res_users
+msgid "res.users"
+msgstr "res.users"
+
+#. module: share
+#: field:share.create,read_access:0
+#: field:share.create,write_access:0
+msgid "Write Access"
+msgstr "Write Access"
+
diff --git a/addons/share/i18n/fr.po b/addons/share/i18n/fr.po
new file mode 100644
index 00000000000..34ddbb0359e
--- /dev/null
+++ b/addons/share/i18n/fr.po
@@ -0,0 +1,223 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * share
+#
+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:39:48+0000\n"
+"PO-Revision-Date: 2010-08-20 10:39: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: share
+#: view:share.create:0
+msgid "Exising Users"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 1: Chose the action and the additional domain"
+msgstr ""
+
+#. module: share
+#: field:share.create,user_ids:0
+msgid "Share Users"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 3: Chose Access Mode"
+msgstr ""
+
+#. module: share
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: share
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: share
+#: model:ir.module.module,shortdesc:share.module_meta_information
+msgid "Share Management"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "New Users"
+msgstr ""
+
+#. module: share
+#: model:ir.actions.act_window,name:share.action_share_wizard
+#: model:ir.ui.menu,name:share.menu_action_share_wizard
+msgid "Share Access Rules"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: share
+#: view:share.result:0
+msgid "Step 4: Share Users Detail"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Next"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Share Group is exits without sharing !"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_share_result
+msgid "share.result"
+msgstr ""
+
+#. module: share
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "New"
+msgstr ""
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ ONLY"
+msgstr ""
+
+#. module: share
+#: field:share.result,users:0
+msgid "Users"
+msgstr ""
+
+#. module: share
+#: view:share.result:0
+msgid "Send Email"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_groups
+msgid "res.groups"
+msgstr ""
+
+#. module: share
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ & WRITE"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:3 Sharing Wizard"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_share_create
+msgid "Create share"
+msgstr ""
+
+#. module: share
+#: field:share.create,user_type:0
+msgid "User Type"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 2: Chose the User type"
+msgstr ""
+
+#. module: share
+#: field:share.create,new_user:0
+msgid "New user"
+msgstr ""
+
+#. module: share
+#: field:share.create,action_id:0
+msgid "Action"
+msgstr ""
+
+#. module: share
+#: field:share.create,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: share
+#: field:share.create,access_mode:0
+msgid "Access Mode"
+msgstr ""
+
+#. module: share
+#: field:res.groups,share:0
+#: field:res.users,share:0
+#: view:share.create:0
+#: view:share.result:0
+msgid "Share"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:2 Sharing Wizard"
+msgstr ""
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "Existing"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:4 Share Users Detail"
+msgstr ""
+
+#. module: share
+#: model:ir.module.module,description:share.module_meta_information
+msgid "The goal is to implement a generic sharing mechanism, where user of OpenERP\n"
+"can share data from OpenERP to their colleagues, customers, or friends.\n"
+"The system will work by creating new users and groups on the fly, and by\n"
+"combining the appropriate access rights and ir.rules to ensure that the /shared\n"
+"users/ will only have access to the correct data.\n"
+" "
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+#: view:share.result:0
+msgid "Cancel"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. module: share
+#: field:share.create,read_access:0
+#: field:share.create,write_access:0
+msgid "Write Access"
+msgstr ""
+
diff --git a/addons/share/i18n/share.pot b/addons/share/i18n/share.pot
new file mode 100644
index 00000000000..34ddbb0359e
--- /dev/null
+++ b/addons/share/i18n/share.pot
@@ -0,0 +1,223 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * share
+#
+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:39:48+0000\n"
+"PO-Revision-Date: 2010-08-20 10:39: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: share
+#: view:share.create:0
+msgid "Exising Users"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 1: Chose the action and the additional domain"
+msgstr ""
+
+#. module: share
+#: field:share.create,user_ids:0
+msgid "Share Users"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 3: Chose Access Mode"
+msgstr ""
+
+#. module: share
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: share
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: share
+#: model:ir.module.module,shortdesc:share.module_meta_information
+msgid "Share Management"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "New Users"
+msgstr ""
+
+#. module: share
+#: model:ir.actions.act_window,name:share.action_share_wizard
+#: model:ir.ui.menu,name:share.menu_action_share_wizard
+msgid "Share Access Rules"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: share
+#: view:share.result:0
+msgid "Step 4: Share Users Detail"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Next"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Share Group is exits without sharing !"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_share_result
+msgid "share.result"
+msgstr ""
+
+#. module: share
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "New"
+msgstr ""
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ ONLY"
+msgstr ""
+
+#. module: share
+#: field:share.result,users:0
+msgid "Users"
+msgstr ""
+
+#. module: share
+#: view:share.result:0
+msgid "Send Email"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_groups
+msgid "res.groups"
+msgstr ""
+
+#. module: share
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: share
+#: selection:share.create,access_mode:0
+msgid "READ & WRITE"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:3 Sharing Wizard"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_share_create
+msgid "Create share"
+msgstr ""
+
+#. module: share
+#: field:share.create,user_type:0
+msgid "User Type"
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+msgid "Step 2: Chose the User type"
+msgstr ""
+
+#. module: share
+#: field:share.create,new_user:0
+msgid "New user"
+msgstr ""
+
+#. module: share
+#: field:share.create,action_id:0
+msgid "Action"
+msgstr ""
+
+#. module: share
+#: field:share.create,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: share
+#: field:share.create,access_mode:0
+msgid "Access Mode"
+msgstr ""
+
+#. module: share
+#: field:res.groups,share:0
+#: field:res.users,share:0
+#: view:share.create:0
+#: view:share.result:0
+msgid "Share"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:2 Sharing Wizard"
+msgstr ""
+
+#. module: share
+#: selection:share.create,user_type:0
+msgid "Existing"
+msgstr ""
+
+#. module: share
+#: code:addons/share/wizard/share_wizard.py:0
+#, python-format
+msgid "Step:4 Share Users Detail"
+msgstr ""
+
+#. module: share
+#: model:ir.module.module,description:share.module_meta_information
+msgid "The goal is to implement a generic sharing mechanism, where user of OpenERP\n"
+"can share data from OpenERP to their colleagues, customers, or friends.\n"
+"The system will work by creating new users and groups on the fly, and by\n"
+"combining the appropriate access rights and ir.rules to ensure that the /shared\n"
+"users/ will only have access to the correct data.\n"
+" "
+msgstr ""
+
+#. module: share
+#: view:share.create:0
+#: view:share.result:0
+msgid "Cancel"
+msgstr ""
+
+#. module: share
+#: model:ir.model,name:share.model_res_users
+msgid "res.users"
+msgstr ""
+
+#. module: share
+#: field:share.create,read_access:0
+#: field:share.create,write_access:0
+msgid "Write Access"
+msgstr ""
+
diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py
index 722fa9809b0..add9c4f9352 100644
--- a/addons/share/wizard/share_wizard.py
+++ b/addons/share/wizard/share_wizard.py
@@ -84,60 +84,60 @@ class share_create(osv.osv_memory):
'user_type' : 'existing',
'domain': '[]',
'access_mode': 'readonly'
-
+
}
def default_get(self, cr, uid, fields, context=None):
- """
+ """
To get default values for the object.
- """
+ """
- res = super(share_create, self).default_get(cr, uid, fields, context=context)
+ res = super(share_create, self).default_get(cr, uid, fields, context=context)
if not context:
context={}
action_id = context.get('action_id', False)
- domain = context.get('domain', '[]')
-
-
+ domain = context.get('domain', '[]')
+
+
if 'action_id' in fields:
res['action_id'] = action_id
if 'domain' in fields:
- res['domain'] = domain
+ res['domain'] = domain
return res
def do_step_1(self, cr, uid, ids, context=None):
"""
This action to excute step 1
-
+
"""
if not context:
context = {}
- data_obj = self.pool.get('ir.model.data')
-
+ data_obj = self.pool.get('ir.model.data')
+
step1_form_view = data_obj._get_id(cr, uid, 'share', 'share_step1_form')
-
+
if step1_form_view:
- step1_form_view_id = data_obj.browse(cr, uid, step1_form_view, context=context).res_id
+ step1_form_view_id = data_obj.browse(cr, uid, step1_form_view, context=context).res_id
step1_id = False
for this in self.browse(cr, uid, ids, context=context):
vals ={
- 'domain': this.domain,
+ 'domain': this.domain,
'action_id': this.action_id and this.action_id.id or False,
- }
- step1_id = this.id
+ }
+ step1_id = this.id
context.update(vals)
value = {
- 'name': _('Step:2 Sharing Wizard'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'share.create',
+ 'name': _('Step:2 Sharing Wizard'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'share.create',
'view_id': False,
- 'res_id': step1_id,
- 'views': [(step1_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
+ 'res_id': step1_id,
+ 'views': [(step1_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
'context': context,
'target': 'new'
}
@@ -147,35 +147,35 @@ class share_create(osv.osv_memory):
def do_step_2(self, cr, uid, ids, context=None):
"""
This action to excute step 2
-
+
"""
if not context:
context = {}
- data_obj = self.pool.get('ir.model.data')
-
+ data_obj = self.pool.get('ir.model.data')
+
step2_form_view = data_obj._get_id(cr, uid, 'share', 'share_step2_form')
-
+
if step2_form_view:
- step2_form_view_id = data_obj.browse(cr, uid, step2_form_view, context=context).res_id
+ step2_form_view_id = data_obj.browse(cr, uid, step2_form_view, context=context).res_id
step1_id = False
for this in self.browse(cr, uid, ids, context=context):
- vals ={
- 'user_type': this.user_type,
+ vals = {
+ 'user_type': this.user_type,
'existing_user_ids': map(lambda x:x.id, this.user_ids),
'new_user': this.new_user,
- }
+ }
context.update(vals)
value = {
- 'name': _('Step:3 Sharing Wizard'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'share.create',
- 'view_id': False,
- 'views': [(step2_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
+ 'name': _('Step:3 Sharing Wizard'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'share.create',
+ 'view_id': False,
+ 'views': [(step2_form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
'context': context,
'target': 'new'
}
@@ -185,33 +185,33 @@ class share_create(osv.osv_memory):
def do_step_3(self, cr, uid, ids, context=None):
"""
This action to excute step 3
-
+
"""
if not context:
context = {}
- for this in self.browse(cr, uid, ids, context=context):
- vals ={
+ for this in self.browse(cr, uid, ids, context=context):
+ vals = {
'access_mode': this.access_mode,
- }
+ }
context.update(vals)
-
+
group_obj = self.pool.get('res.groups')
user_obj = self.pool.get('res.users')
- fields_obj = self.pool.get('ir.model.fields')
- model_access_obj = self.pool.get('ir.model.access')
+ fields_obj = self.pool.get('ir.model.fields')
+ model_access_obj = self.pool.get('ir.model.access')
model_obj = self.pool.get('ir.model')
rule_obj = self.pool.get('ir.rule')
- action_obj = self.pool.get('ir.actions.act_window')
+ action_obj = self.pool.get('ir.actions.act_window')
new_users = context.get('new_user', False)
action_id = context.get('action_id', False)
user_type = context.get('user_type', False)
access_mode = context.get('access_mode', False)
action = action_obj.browse(cr, uid, action_id, context=context)
- active_model = action.res_model
-
+ active_model = action.res_model
+
active_id = False #TODO: Pass record id of res_model of action
existing_user_ids = context.get('existing_user_ids', False)
domain = eval(context.get('domain', '[]'))
@@ -225,10 +225,10 @@ class share_create(osv.osv_memory):
else:
group = group_obj.browse(cr, uid, group_id, context=context)
if not group.share:
- raise osv.except_osv(_('Error'), _("Share Group is exits without sharing !"))
-
- # Create new user
-
+ raise osv.except_osv(_('Error'), _("Share Group is exits without sharing !"))
+
+ # Create new user
+
current_user = user_obj.browse(cr, uid, uid)
user_ids = []
if user_type == 'new' and new_users:
@@ -242,27 +242,28 @@ class share_create(osv.osv_memory):
'groups_id': [(6,0,[group_id])],
'action_id': action_id,
'share': True,
- 'company_id': current_user.company_id and current_user.company_id.id})
+ 'company_id': current_user.company_id and current_user.company_id.id
+ })
user_ids.append(user_id)
context['new_user_ids'] = user_ids
# Modify existing user
- if user_type == 'existing':
+ if user_type == 'existing':
user_obj.write(cr, uid, existing_user_ids , {
'groups_id': [(4,group_id)],
'action_id': action_id
})
-
- #ACCESS RIGHTS / IR.RULES COMPUTATION
-
+
+ #ACCESS RIGHTS / IR.RULES COMPUTATION
+
active_model_ids = model_obj.search(cr, uid, [('model','=',active_model)])
active_model_id = active_model_ids and active_model_ids[0] or False
-
- def _get_relation(model_id, ttypes, new_obj=[]):
- obj = []
+
+ def _get_relation(model_id, ttypes, new_obj=[]):
+ obj = []
models = map(lambda x:x[1].model, new_obj)
- field_ids = fields_obj.search(cr, uid, [('model_id','=',model_id),('ttype','in', ttypes)])
+ field_ids = fields_obj.search(cr, uid, [('model_id','=',model_id),('ttype','in', ttypes)])
for field in fields_obj.browse(cr, uid, field_ids, context=context):
if field.relation not in models:
relation_model_ids = model_obj.search(cr, uid, [('model','=',field.relation)])
@@ -271,8 +272,8 @@ class share_create(osv.osv_memory):
obj.append((field.relation_field, relation_model))
if relation_model_id != model_id and field.ttype in ['one2many', 'many2many']:
- obj += _get_relation(relation_model_id, [field.ttype], obj)
-
+ obj += _get_relation(relation_model_id, [field.ttype], obj)
+
return obj
active_model = model_obj.browse(cr, uid, active_model_id, context=context)
@@ -286,7 +287,7 @@ class share_create(osv.osv_memory):
current_user = user_obj.browse(cr, uid, uid, context=context)
if access_mode == 'readonly':
res = []
- # intersect with read access rights of user running the
+ # intersect with read access rights of user running the
# wizard, to avoid adding more access than current
for group in current_user.groups_id:
for access_control in group.model_access:
@@ -299,18 +300,18 @@ class share_create(osv.osv_memory):
'model_id' : access_control.model_id.id,
'group_id' : group_id,
'perm_read' : True
- })
+ })
res = []
for rel_field, model in obj0+obj1+obj2+obj3:
if model.id in res:
continue
res.append(model.id)
model_access_obj.create(cr, uid, {
- 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name),
- 'model_id' : model.id,
- 'group_id' : group_id,
- 'perm_read' : True
- })
+ 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name),
+ 'model_id' : model.id,
+ 'group_id' : group_id,
+ 'perm_read' : True
+ })
if access_mode == 'readwrite':
res = []
for rel_field, model in obj0+obj1:
@@ -318,15 +319,15 @@ class share_create(osv.osv_memory):
continue
res.append(model.id)
model_access_obj.create(cr, uid, {
- 'name': 'Write Access of group %s on %s model'%(share_group_name, model.name),
- 'model_id' : model.id,
- 'group_id' : group_id,
- 'perm_read' : True,
- 'perm_write' : True,
- 'perm_unlink' : True,
- 'perm_create' : True,
- })
- # intersect with access rights of user
+ 'name': 'Write Access of group %s on %s model'%(share_group_name, model.name),
+ 'model_id' : model.id,
+ 'group_id' : group_id,
+ 'perm_read' : True,
+ 'perm_write' : True,
+ 'perm_unlink' : True,
+ 'perm_create' : True,
+ })
+ # intersect with access rights of user
# running the wizard, to avoid adding more access than current
for group in current_user.groups_id:
@@ -336,24 +337,24 @@ class share_create(osv.osv_memory):
if access_control.perm_read:
res.append(access_control.model_id.id)
model_access_obj.create(cr, uid, {
- 'name': 'Read Access of group %s on %s model'%(share_group_name, access_control.model_id.name),
- 'model_id' : access_control.model_id.id,
- 'group_id' : group_id,
- 'perm_read' : True
+ 'name': 'Read Access of group %s on %s model'%(share_group_name, access_control.model_id.name),
+ 'model_id' : access_control.model_id.id,
+ 'group_id' : group_id,
+ 'perm_read' : True
})
for rel_field, model in obj2+obj3:
if model.id in res:
continue
res.append(model.id)
model_access_obj.create(cr, uid, {
- 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name),
- 'model_id' : model.id,
- 'group_id' : group_id,
- 'perm_read' : True
+ 'name': 'Read Access of group %s on %s model'%(share_group_name, model.name),
+ 'model_id' : model.id,
+ 'group_id' : group_id,
+ 'perm_read' : True
})
- #
+ #
# And on OBJ0, OBJ1, OBJ2, OBJ3: add all rules from groups of the user
- # that is sharing in the many2many of the rules on the new group
+ # that is sharing in the many2many of the rules on the new group
# (rule must be copied instead of adding it if it contains a reference to uid
# or user.xxx so it can be replaced correctly)
@@ -364,10 +365,11 @@ class share_create(osv.osv_memory):
continue
res.append(model.id)
for rule in group.rule_groups:
- if rule.model_id == model.id:
+ if rule.model_id == model.id:
rule_obj.copy(cr, uid, rule.id, default={
- 'name': '%s-%s'%(share_group_name, model.model),
- 'groups': [(6,0,[group_id])]}, context=context)
+ 'name': '%s-%s'%(share_group_name, model.model),
+ 'groups': [(6,0,[group_id])]
+ }, context=context)
rule_obj.create(cr, uid, {
'name': '%s-%s'%(share_group_name, active_model.model),
@@ -390,23 +392,23 @@ class share_create(osv.osv_memory):
context['share_model'] = active_model.model
context['share_rec_id'] = active_id
-
- data_obj = self.pool.get('ir.model.data')
-
+
+ data_obj = self.pool.get('ir.model.data')
+
form_view = data_obj._get_id(cr, uid, 'share', 'share_result_form')
form_view_id = False
if form_view:
- form_view_id = data_obj.browse(cr, uid, form_view, context=context).res_id
+ form_view_id = data_obj.browse(cr, uid, form_view, context=context).res_id
+
-
value = {
- 'name': _('Step:4 Share Users Detail'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'share.result',
- 'view_id': False,
- 'views': [(form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
- 'type': 'ir.actions.act_window',
+ 'name': _('Step:4 Share Users Detail'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'share.result',
+ 'view_id': False,
+ 'views': [(form_view_id, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
+ 'type': 'ir.actions.act_window',
'context': context,
'target': 'new'
}
@@ -415,19 +417,19 @@ share_create()
class share_result(osv.osv_memory):
- _name = "share.result"
+ _name = "share.result"
_columns = {
- 'users': fields.text("Users", readonly=True),
+ 'users': fields.text("Users", readonly=True),
}
-
- def do_send_email(self, cr, uid, ids, context=None):
- user_obj = self.pool.get('res.users')
+
+ def do_send_email(self, cr, uid, ids, context=None):
+ user_obj = self.pool.get('res.users')
if not context:
context={}
existing_user_ids = context.get('existing_user_ids', [])
- new_user_ids = context.get('new_user_ids', [])
+ new_user_ids = context.get('new_user_ids', [])
share_url = tools.config.get('share_root_url', False)
user = user_obj.browse(cr, uid, uid, context=context)
for share_user in user_obj.browse(cr, uid, new_user_ids+existing_user_ids, context=context):
@@ -436,13 +438,13 @@ class share_result(osv.osv_memory):
body = """
Dear,
- %s wants to share private data from OpenERP with you!
+ %s wants to share private data from OpenERP with you!
"""%(user.name)
if share_url:
body += """
To view it, you can access the following URL:
%s
- """%(user.name, share_url)
+ """%(user.name, share_url)
if share_user.id in new_user_ids:
body += """
You may use the following login and password to get access to this
@@ -454,28 +456,28 @@ class share_result(osv.osv_memory):
body += """
You may use your existing login and password to get access to this
additional data. As a reminder, your login is %s.
- """%(user.name)
+ """%(user.name)
flag = tools.email_send(
user.user_email,
email_to,
subject,
- body
+ body
)
return flag
-
+
def default_get(self, cr, uid, fields, context=None):
- """
+ """
To get default values for the object.
- """
+ """
res = super(share_result, self).default_get(cr, uid, fields, context=context)
- user_obj = self.pool.get('res.users')
+ user_obj = self.pool.get('res.users')
if not context:
context={}
existing_user_ids = context.get('existing_user_ids', [])
- new_user_ids = context.get('new_user_ids', [])
+ new_user_ids = context.get('new_user_ids', [])
share_url = tools.config.get('share_root_url', False)
if 'users' in fields:
users = []
@@ -483,13 +485,13 @@ class share_result(osv.osv_memory):
txt = 'Login: %s Password: %s' %(user.login, user.password)
if share_url:
txt += ' Share URL: %s' %(share_url)
- users.append(txt)
- for user in user_obj.browse(cr, uid, existing_user_ids):
+ users.append(txt)
+ for user in user_obj.browse(cr, uid, existing_user_ids):
txt = 'Login: %s' %(user.login)
if share_url:
txt += ' Share URL: %s' %(share_url)
users.append(txt)
res['users'] = '\n'.join(users)
return res
-
-share_result()
+
+share_result()
diff --git a/addons/stock/board_warehouse_view.xml b/addons/stock/board_warehouse_view.xml
index df33d91a2a3..5704df7685b 100644
--- a/addons/stock/board_warehouse_view.xml
+++ b/addons/stock/board_warehouse_view.xml
@@ -45,6 +45,7 @@
+
diff --git a/addons/stock/i18n/bs.po b/addons/stock/i18n/bs.po
index d06b2744476..3f03cc06b5f 100644
--- a/addons/stock/i18n/bs.po
+++ b/addons/stock/i18n/bs.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-11 05:39+0000\n"
+"PO-Revision-Date: 2010-08-29 09:49+0000\n"
"Last-Translator: adnan \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-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/i18n/de.po b/addons/stock/i18n/de.po
index a495101ab66..254974cdcdf 100644
--- a/addons/stock/i18n/de.po
+++ b/addons/stock/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-11 05:18+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2010-08-29 10:21+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:42+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
@@ -81,7 +81,7 @@ msgstr "STOCK_ZOOM_100"
#: rml:lot.stock.overview:0
#: rml:lot.stock.overview_all:0
msgid "UoM"
-msgstr "Masseinheit (UoM)"
+msgstr "ME"
#. module: stock
#: model:ir.actions.wizard,name:stock.return_picking
@@ -189,7 +189,7 @@ msgstr "Wert tatsächlicher Bestand"
#. module: stock
#: view:stock.move:0
msgid "UOM"
-msgstr "UoM"
+msgstr "ME"
#. module: stock
#: selection:stock.move,state:0
@@ -687,7 +687,7 @@ msgstr "Lagerort beim Partner"
#: help:stock.move,tracking_id:0
msgid ""
"Tracking lot is the code that will be put on the logistical unit/pallet"
-msgstr ""
+msgstr "Diese Losnummer wird für die logistische Einheit/Pallette vergeben"
#. module: stock
#: view:stock.tracking:0
@@ -1085,7 +1085,7 @@ msgstr "Warenrückverfolgung"
#: rml:lot.stock.overview_all:0
#: field:stock.move,price_unit:0
msgid "Unit Price"
-msgstr "Preis/UoM"
+msgstr "Preis/ME"
#. module: stock
#: view:stock.picking:0
@@ -1801,7 +1801,7 @@ msgstr "Lagerort Etage (Z)"
#: field:stock.inventory.line,product_uom:0
#: field:stock.move,product_uom:0
msgid "Product UOM"
-msgstr "Produkt UoM"
+msgstr "Produkt ME"
#. module: stock
#: rml:lot.stock.overview:0
diff --git a/addons/stock/i18n/it.po b/addons/stock/i18n/it.po
index d85a94321e4..92c5165d9ab 100644
--- a/addons/stock/i18n/it.po
+++ b/addons/stock/i18n/it.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-11 04:55+0000\n"
+"PO-Revision-Date: 2010-08-29 09:38+0000\n"
"Last-Translator: Davide Corio - Domsense \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:42+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/i18n/pl.po b/addons/stock/i18n/pl.po
index d876a2246db..a89027cccab 100644
--- a/addons/stock/i18n/pl.po
+++ b/addons/stock/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 10:02+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:42+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/i18n/pt_BR.po b/addons/stock/i18n/pt_BR.po
index 404e0925d9c..857be18053b 100644
--- a/addons/stock/i18n/pt_BR.po
+++ b/addons/stock/i18n/pt_BR.po
@@ -7,14 +7,14 @@ 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-11 05:42+0000\n"
+"PO-Revision-Date: 2010-08-29 08:02+0000\n"
"Last-Translator: Renato Lima - http://www.akretion.com "
"\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 03:42+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/i18n/tr.po b/addons/stock/i18n/tr.po
index 8f61ea18ae1..fdf2bc72cad 100644
--- a/addons/stock/i18n/tr.po
+++ b/addons/stock/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-11 05:46+0000\n"
+"PO-Revision-Date: 2010-08-29 09:44+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:42+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/product.py b/addons/stock/product.py
index dfe6f82c30d..c79896f07aa 100644
--- a/addons/stock/product.py
+++ b/addons/stock/product.py
@@ -149,16 +149,16 @@ class product_product(osv.osv):
product.id,))
amount_diff = qty * -diff
move_line_obj.create(cr, uid, {
- 'name': product.name,
- 'account_id': stock_output_acc,
- 'credit': amount_diff,
- 'move_id': move_id
+ 'name': product.name,
+ 'account_id': stock_output_acc,
+ 'credit': amount_diff,
+ 'move_id': move_id
})
move_line_obj.create(cr, uid, {
- 'name': product.categ_id.name,
- 'account_id': account_variation_id,
- 'debit': amount_diff,
- 'move_id': move_id
+ 'name': product.categ_id.name,
+ 'account_id': account_variation_id,
+ 'debit': amount_diff,
+ 'move_id': move_id
})
self.write(cr, uid, rec_id, {'standard_price': new_price})
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 10b7606533f..ef9b833ec32 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -33,8 +33,6 @@
-
-
product.template.stock.property.form.inherit
product.template
@@ -135,6 +133,5 @@
-
diff --git a/addons/stock/report/__init__.py b/addons/stock/report/__init__.py
index ab4b2e16599..7b0f561897f 100644
--- a/addons/stock/report/__init__.py
+++ b/addons/stock/report/__init__.py
@@ -28,4 +28,5 @@ import lot_overview_all
import report_stock
import report_stock_picking
import report_stock_move
+import stock_inventory_move_report
diff --git a/addons/stock/report/report_stock.py b/addons/stock/report/report_stock.py
index 5ea8c83c602..9f23f325e35 100644
--- a/addons/stock/report/report_stock.py
+++ b/addons/stock/report/report_stock.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 .
#
##############################################################################
@@ -29,12 +29,12 @@ class stock_report_prodlots(osv.osv):
_description = "Stock report by production lots"
_auto = False
_columns = {
- 'name': fields.float('Quantity', readonly=True),
- 'location_id': fields.many2one('stock.location', 'Location', readonly=True, select=True),
- 'product_id': fields.many2one('product.product', 'Product', readonly=True, select=True),
- 'prodlot_id': fields.many2one('stock.production.lot', 'Production lot', readonly=True, select=True),
+ 'name': fields.float('Quantity', readonly=True),
+ 'location_id': fields.many2one('stock.location', 'Location', readonly=True, select=True),
+ 'product_id': fields.many2one('product.product', 'Product', readonly=True, select=True),
+ 'prodlot_id': fields.many2one('stock.production.lot', 'Production lot', readonly=True, select=True),
}
-
+
def init(self, cr):
drop_view_if_exists(cr, 'stock_report_prodlots')
cr.execute("""
@@ -73,11 +73,11 @@ class stock_report_prodlots(osv.osv):
) as report
group by location_id, product_id, prodlot_id
)""")
-
+
def unlink(self, cr, uid, ids, context={}):
raise osv.except_osv(_('Error !'), _('You cannot delete any record!'))
-
+
stock_report_prodlots()
class stock_report_tracklots(osv.osv):
@@ -85,17 +85,17 @@ class stock_report_tracklots(osv.osv):
_description = "Stock report by tracking lots"
_auto = False
_columns = {
- 'name': fields.float('Quantity', readonly=True),
- 'location_id': fields.many2one('stock.location', 'Location', readonly=True, select=True),
- 'product_id': fields.many2one('product.product', 'Product', readonly=True, select=True),
- 'tracking_id': fields.many2one('stock.tracking', 'Tracking lot', readonly=True, select=True),
+ 'name': fields.float('Quantity', readonly=True),
+ 'location_id': fields.many2one('stock.location', 'Location', readonly=True, select=True),
+ 'product_id': fields.many2one('product.product', 'Product', readonly=True, select=True),
+ 'tracking_id': fields.many2one('stock.tracking', 'Tracking lot', readonly=True, select=True),
}
-
+
def init(self, cr):
drop_view_if_exists(cr, 'stock_report_tracklots')
cr.execute("""
create or replace view stock_report_tracklots as (
-
+
select max(id) as id,
location_id,
product_id,
diff --git a/addons/stock/report/report_stock_view.xml b/addons/stock/report/report_stock_view.xml
index e97df880671..de7c6b41003 100644
--- a/addons/stock/report/report_stock_view.xml
+++ b/addons/stock/report/report_stock_view.xml
@@ -49,7 +49,6 @@
-
report.stock.lines.date.form
report.stock.lines.date
diff --git a/addons/stock/report/stock_inventory_move.rml b/addons/stock/report/stock_inventory_move.rml
new file mode 100755
index 00000000000..cd82cc4312a
--- /dev/null
+++ b/addons/stock/report/stock_inventory_move.rml
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [[ repeatIn(objects,'o') ]]
+
+
+
+ Stock Inventory
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inventory
+
+
+ Date
+
+
+
+
+ [[ o.name ]]
+ [[ formatLang(o.date,date=True) ]]
+
+
+
+
+
+
+
+
+
+
+
+
+ Location
+
+
+ Production Lot
+
+
+ Product
+
+
+ Quantity
+
+
+ UOM
+
+
+
+
+
+
+
+ [[ repeatIn(o.inventory_line_id, 'p') ]]
+
+
+
+ [[ p.location_id.name ]]
+
+
+ [[ p.prod_lot_id and p.prod_lot_id.name or '' ]]
+
+
+ [[ p.product_id.name ]]
+
+
+ [[ p.product_qty ]]
+
+
+ [[ p.product_uom.name ]]
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Total:
+
+
+ [[ format(qty_total(o.inventory_line_id)['quantity']) ]]
+
+
+ [[ format(qty_total(o.inventory_line_id)['uom']) ]]
+
+
+
+
+
+
+
+
diff --git a/addons/stock/report/stock_inventory_move_report.py b/addons/stock/report/stock_inventory_move_report.py
new file mode 100755
index 00000000000..b89b6b9fa9b
--- /dev/null
+++ b/addons/stock/report/stock_inventory_move_report.py
@@ -0,0 +1,46 @@
+# -*- 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 stock_inventory_move(report_sxw.rml_parse):
+ def __init__(self, cr, uid, name, context):
+ super(stock_inventory_move, self).__init__(cr, uid, name, context=context)
+ self.localcontext.update({
+ 'time': time,
+ 'qty_total':self._qty_total
+ })
+
+ def _qty_total(self,objects):
+ total = 0.0
+ uom = objects[0].product_uom.name
+ for obj in objects:
+ total += obj.product_qty
+ return {'quantity':str(total),'uom':uom}
+
+report_sxw.report_sxw(
+ 'report.stock.inventory.move',
+ 'stock.inventory',
+ 'addons/stock/report/stock_inventory_move.rml',
+ parser=stock_inventory_move
+)
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index 7280e238e8b..60be468d17e 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -13,18 +13,6 @@
-
-
-
-
-
-
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index fc37f1590e0..c76bc609a65 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -181,7 +181,10 @@ class stock_location(osv.osv):
'chained_journal_id': fields.many2one('stock.journal', 'Chained Journal'),
'chained_location_id': fields.many2one('stock.location', 'Chained Location If Fixed'),
'chained_location_type': fields.selection([('none', 'None'), ('customer', 'Customer'), ('fixed', 'Fixed Location')],
- 'Chained Location Type', required=True),
+ 'Chained Location Type', required=True,
+ help="This field is set to determine the destination location.\n" \
+ "If the field is set to 'customer', the location is given by the properties of the partner form.\n"\
+ "If the field is set to 'fixed', the destination location is given by the field Location if link is fixed."),
'chained_auto_packing': fields.selection(
[('auto', 'Automatic Move'), ('manual', 'Manual Operation'), ('transparent', 'Automatic No Step Added')],
'Automatic Move',
@@ -876,7 +879,7 @@ class stock_picking(osv.osv):
'origin': (invoice.origin or '') + ', ' + (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
'comment': (comment and (invoice.comment and invoice.comment+"\n"+comment or comment)) or (invoice.comment and invoice.comment or ''),
'date_invoice':context.get('date_inv',False),
- 'user_id':uid
+ 'user_id':uid
}
invoice_obj.write(cr, uid, [invoice_id], invoice_vals, context=context)
else:
@@ -894,7 +897,7 @@ class stock_picking(osv.osv):
'date_invoice': context.get('date_inv',False),
'company_id': picking.company_id.id,
'user_id':uid
- }
+ }
cur_id = self.get_currency_id(cr, uid, picking)
if cur_id:
invoice_vals['currency_id'] = cur_id
@@ -957,7 +960,7 @@ class stock_picking(osv.osv):
'invoice_line_tax_id': [(6, 0, tax_ids)],
'account_analytic_id': account_analytic_id,
'note': notes,
- }, context=context)
+ }, context=context)
self._invoice_line_hook(cr, uid, move_line, invoice_line_id)
invoice_obj.button_compute(cr, uid, [invoice_id], context=context,
@@ -1170,10 +1173,10 @@ class stock_picking(osv.osv):
}
message = type_list.get(pick.type, _('Document')) + " '" + (pick.name or 'n/a') + "' "
state_list = {
- 'confirmed': "is scheduled for the '" + datetime.strptime(pick.min_date, '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d') + "'.",
- 'assigned': 'is ready to process.',
- 'cancel': 'is Cancelled.',
- 'done': 'is processed.',
+ 'confirmed': "is scheduled for the '" + datetime.strptime(pick.min_date, '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d') + "'.",
+ 'assigned': 'is ready to process.',
+ 'cancel': 'is Cancelled.',
+ 'done': 'is processed.',
}
message += state_list[pick.state]
self.log(cr, uid, pick.id, message)
@@ -1374,7 +1377,7 @@ class stock_move(osv.osv):
'backorder_id': fields.related('picking_id','backorder_id',type='many2one', relation="stock.picking", string="Back Order"),
'origin': fields.related('picking_id','origin',type='char', size=64, relation="stock.picking", string="Origin",store=True),
'scraped': fields.related('location_dest_id','scrap_location',type='boolean',relation='stock.location',string='Scraped'),
- 'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True),
+ 'move_stock_return_history': fields.many2many('stock.move', 'stock_move_return_history', 'move_id', 'return_move_id', 'Move Return History',readonly=True),
}
_constraints = [
(_check_tracking,
@@ -1391,7 +1394,7 @@ class stock_move(osv.osv):
if context.get('move_line', []):
if context['move_line'][0]:
if isinstance(context['move_line'][0], (tuple, list)):
- return context['move_line'][0][2] and context['move_line'][0][2]['location_dest_id'] or False
+ return context['move_line'][0][2] and context['move_line'][0][2].get('location_dest_id',False)
else:
move_list = self.pool.get('stock.move').read(cr, uid, context['move_line'][0], ['location_dest_id'])
return move_list and move_list['location_dest_id'][0] or False
@@ -1586,7 +1589,7 @@ class stock_move(osv.osv):
'invoice_state': 'none',
'date': picking.date,
'sale_id':' sale_id' in picking._columns.keys() and picking.sale_id.id or 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,
@@ -1830,8 +1833,8 @@ class stock_move(osv.osv):
'type':'cont_voucher',
'line_id': line,
'ref': move.picking_id and move.picking_id.name,
- })
-
+ })
+
self.write(cr, uid, ids, {'state': 'done', 'date_planned': time.strftime('%Y-%m-%d %H:%M:%S')})
wf_service = netsvc.LocalService("workflow")
for id in ids:
@@ -1850,25 +1853,25 @@ class stock_move(osv.osv):
context = {}
partner_id = move.picking_id.address_id and (move.picking_id.address_id.partner_id and move.picking_id.address_id.partner_id.id or False) or False
lines=[(0, 0, {
- 'name': move.name,
- 'quantity': move.product_qty,
- 'product_id': move.product_id and move.product_id.id or False,
- 'credit': amount,
- 'account_id': account_id,
- 'ref': move.picking_id and move.picking_id.name or False,
- 'date': time.strftime('%Y-%m-%d') ,
- 'partner_id': partner_id,
- }),
- (0, 0, {
- 'name': move.name,
- 'product_id': move.product_id and move.product_id.id or False,
- 'quantity': move.product_qty,
- 'debit': amount,
- 'account_id': account_variation,
- 'ref': move.picking_id and move.picking_id.name or False,
- 'date': time.strftime('%Y-%m-%d') ,
- 'partner_id': partner_id,
- })]
+ 'name': move.name,
+ 'quantity': move.product_qty,
+ 'product_id': move.product_id and move.product_id.id or False,
+ 'credit': amount,
+ 'account_id': account_id,
+ 'ref': move.picking_id and move.picking_id.name or False,
+ 'date': time.strftime('%Y-%m-%d') ,
+ 'partner_id': partner_id,
+ }),
+ (0, 0, {
+ 'name': move.name,
+ 'product_id': move.product_id and move.product_id.id or False,
+ 'quantity': move.product_qty,
+ 'debit': amount,
+ 'account_id': account_variation,
+ 'ref': move.picking_id and move.picking_id.name or False,
+ 'date': time.strftime('%Y-%m-%d') ,
+ 'partner_id': partner_id,
+ })]
return lines
def unlink(self, cr, uid, ids, context=None):
@@ -1906,12 +1909,12 @@ class stock_move(osv.osv):
move_qty = move.product_qty
uos_qty = quantity / move_qty * move.product_uos_qty
default_val = {
- 'product_qty': quantity,
- 'product_uos_qty': uos_qty,
- 'state': move.state,
- 'scraped' : True,
- 'location_dest_id': location_id
- }
+ 'product_qty': quantity,
+ 'product_uos_qty': uos_qty,
+ 'state': move.state,
+ 'scraped' : True,
+ 'location_dest_id': location_id
+ }
new_move = self.copy(cr, uid, move.id, default_val)
res += [new_move]
product_obj = self.pool.get('product.product')
diff --git a/addons/stock/stock_demo.xml b/addons/stock/stock_demo.xml
index bfa1845b43c..31cd94e040d 100644
--- a/addons/stock/stock_demo.xml
+++ b/addons/stock/stock_demo.xml
@@ -37,7 +37,6 @@
Shelf 2
-
Sub Products
@@ -242,30 +241,7 @@
-
+
@@ -288,12 +264,12 @@
-
+
property_stock_variation
-
+
diff --git a/addons/stock/stock_report.xml b/addons/stock/stock_report.xml
index f1adfc33816..855a56a0f75 100644
--- a/addons/stock/stock_report.xml
+++ b/addons/stock/stock_report.xml
@@ -3,10 +3,10 @@
-
+
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 507df8dc683..f81de1c5faf 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -400,11 +400,11 @@
+ string="Internal" domain="[('usage', '=', 'internal')]" help="Internal Locations" />
+ string="Customer" domain="[('usage', '=', 'customer')]" help="Customer Locations" />
+ string="Supplier" domain="[('usage', '=', 'supplier')]" help="Supplier Locations" />
@@ -433,6 +433,7 @@
ir.actions.act_window
form
+
{'full':1, 'search_default_in_location':1}
@@ -619,7 +620,7 @@
-
+
@@ -1636,7 +1637,7 @@
-
+
@@ -1670,8 +1671,6 @@
-
-
# -------------------------------------------------------------
# Stock incoterms
@@ -1706,7 +1705,6 @@
form
tree,form
-
diff --git a/addons/stock/wizard/stock_change_standard_price.py b/addons/stock/wizard/stock_change_standard_price.py
index 7d0be0b333b..47fb5387f26 100644
--- a/addons/stock/wizard/stock_change_standard_price.py
+++ b/addons/stock/wizard/stock_change_standard_price.py
@@ -26,14 +26,14 @@ class change_standard_price(osv.osv_memory):
_name = "stock.change.standard.price"
_description = "Change Standard Price"
_columns = {
- 'new_price': fields.float('Price', required=True,
- help="If cost price is increased, stock variation account will be debited "
- "and stock output account will be credited with the value = (difference of amount * quantity available).\n"
- "If cost price is decreased, stock variation account will be creadited and stock input account will be debited."),
- 'stock_account_input':fields.many2one('account.account', 'Stock Input Account'),
- 'stock_account_output':fields.many2one('account.account', 'Stock Output Account'),
- 'stock_journal':fields.many2one('account.journal', 'Stock journal', required=True),
- 'enable_stock_in_out_acc':fields.boolean('Enable Related Account',),
+ 'new_price': fields.float('Price', required=True,
+ help="If cost price is increased, stock variation account will be debited "
+ "and stock output account will be credited with the value = (difference of amount * quantity available).\n"
+ "If cost price is decreased, stock variation account will be creadited and stock input account will be debited."),
+ 'stock_account_input':fields.many2one('account.account', 'Stock Input Account'),
+ 'stock_account_output':fields.many2one('account.account', 'Stock Output Account'),
+ 'stock_journal':fields.many2one('account.journal', 'Stock journal', required=True),
+ 'enable_stock_in_out_acc':fields.boolean('Enable Related Account',),
}
def default_get(self, cr, uid, fields, context):
@@ -98,7 +98,7 @@ class change_standard_price(osv.osv_memory):
rec_id = context and context.get('active_id', False)
assert rec_id, _('Active ID is not set in Context')
prod_obj = self.pool.get('product.product')
- res = self.browse(cr, uid, ids)
+ res = self.browse(cr, uid, ids)
datas = {
'new_price' : res[0].new_price,
'stock_output_account' : res[0].stock_account_output.id,
diff --git a/addons/stock/wizard/stock_fill_inventory.py b/addons/stock/wizard/stock_fill_inventory.py
index a33c3569e8e..e133a9fc879 100644
--- a/addons/stock/wizard/stock_fill_inventory.py
+++ b/addons/stock/wizard/stock_fill_inventory.py
@@ -26,8 +26,8 @@ class stock_fill_inventory(osv.osv_memory):
_name = "stock.fill.inventory"
_description = "Fill Inventory"
_columns = {
- 'location_id': fields.many2one('stock.location', 'Location', required=True),
- 'recursive': fields.boolean("Include all children for the location"),
+ 'location_id': fields.many2one('stock.location', 'Location', required=True),
+ 'recursive': fields.boolean("Include all children for the location"),
}
def fill_inventory(self, cr, uid, ids, context):
@@ -35,10 +35,10 @@ class stock_fill_inventory(osv.osv_memory):
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: the ID or list of IDs if we want more than one
- @param context: A standard dictionary
- @return:
- """
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+ @return:
+ """
inventory_line_obj = self.pool.get('stock.inventory.line')
location_obj = self.pool.get('stock.location')
product_obj = self.pool.get('product.product')
@@ -57,7 +57,7 @@ class stock_fill_inventory(osv.osv_memory):
res = location_obj._product_get(cr, uid,
fill_inventory.location_id.id, context=context)
res_location[fill_inventory.location_id.id] = res
-
+
product_ids = []
for location in res_location.keys():
res = res_location[location]
@@ -76,11 +76,13 @@ class stock_fill_inventory(osv.osv_memory):
('product_uom', '=', uom),
('product_qty', '=', amount)])
if not len(line_ids):
- inventory_line = {'inventory_id': context['active_ids'][0],
- 'location_id': location,
- 'product_id': product_id,
- 'product_uom': uom,
- 'product_qty': amount}
+ inventory_line = {
+ 'inventory_id': context['active_ids'][0],
+ 'location_id': location,
+ 'product_id': product_id,
+ 'product_uom': uom,
+ 'product_qty': amount
+ }
inventory_line_obj.create(cr, uid, inventory_line)
product_ids.append(product_id)
diff --git a/addons/stock/wizard/stock_inventory_merge.py b/addons/stock/wizard/stock_inventory_merge.py
index b08f0ca79c8..46c589f18e9 100644
--- a/addons/stock/wizard/stock_inventory_merge.py
+++ b/addons/stock/wizard/stock_inventory_merge.py
@@ -63,11 +63,11 @@ class stock_inventory_merge(osv.osv_memory):
for key, quantity in invent_lines.items():
invent_line_obj.create(cr, uid, {
- 'inventory_id': new_invent,
- 'location_id': key[0],
- 'product_id': key[1],
- 'product_uom': key[2],
- 'product_qty': quantity,
+ 'inventory_id': new_invent,
+ 'location_id': key[0],
+ 'product_id': key[1],
+ 'product_uom': key[2],
+ 'product_qty': quantity,
})
return {}
diff --git a/addons/stock/wizard/stock_inventory_set_stock_zero.py b/addons/stock/wizard/stock_inventory_set_stock_zero.py
index 93d79f24991..4cbba93bdb6 100644
--- a/addons/stock/wizard/stock_inventory_set_stock_zero.py
+++ b/addons/stock/wizard/stock_inventory_set_stock_zero.py
@@ -25,31 +25,31 @@ from tools.translate import _
class inventory_set_stock_zero(osv.osv_memory):
_name = "stock.inventory.set.stock.zero"
_description = "Set Stock to 0"
-
+
_columns = {
- 'location_id': fields.many2one('stock.location', 'Location', required=True),
+ 'location_id': fields.many2one('stock.location', 'Location', required=True),
}
-
+
def do_merge(self, cr, uid, ids, context):
- """ To set stock to Zero
+ """ To set stock to Zero
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: the ID or list of IDs if we want more than one
- @param context: A standard dictionary
- @return:
- """
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+ @return:
+ """
invent_obj = self.pool.get('stock.inventory')
invent_line_obj = self.pool.get('stock.inventory.line')
prod_obj = self.pool.get('product.product')
-
+
if len(context['active_ids']) <> 1:
- raise osv.except_osv(_('Warning'),
+ raise osv.except_osv(_('Warning'),
_('Please select one and only one inventory !'))
for id in ids:
datas = self.read(cr, uid, id)
loc = str(datas['location_id'])
-
+
cr.execute('select distinct location_id,product_id \
from stock_inventory_line \
where inventory_id=%s', (context['active_id'],))
@@ -61,11 +61,11 @@ class inventory_set_stock_zero(osv.osv_memory):
if (loc, s[0]) not in inv:
p = prod_obj.browse(cr, uid, s[0])
invent_line_obj.create(cr, uid, {
- 'inventory_id': context['active_id'],
- 'location_id': loc,
- 'product_id': s[0],
- 'product_uom': p.uom_id.id,
- 'product_qty': 0.0,
+ 'inventory_id': context['active_id'],
+ 'location_id': loc,
+ 'product_id': s[0],
+ 'product_uom': p.uom_id.id,
+ 'product_qty': 0.0,
})
return {}
diff --git a/addons/stock/wizard/stock_invoice_onshipping.py b/addons/stock/wizard/stock_invoice_onshipping.py
index e1063e7d992..b8692783824 100644
--- a/addons/stock/wizard/stock_invoice_onshipping.py
+++ b/addons/stock/wizard/stock_invoice_onshipping.py
@@ -27,13 +27,13 @@ class stock_invoice_onshipping(osv.osv_memory):
_name = "stock.invoice.onshipping"
_description = "Stock Invoice Onshipping"
_columns = {
- 'journal_id': fields.many2one('account.journal', 'Destination Journal', required=True),
- 'group': fields.boolean("Group by partner"),
- 'type': fields.selection([('out_invoice', 'Customer Invoice'),
- ('in_invoice', 'Supplier Invoice'),
- ('out_refund', 'Customer Refund'),
- ('in_refund', 'Supplier Refund')] , 'Type', required=True),
- 'invoice_date': fields.date('Invoiced date'),
+ 'journal_id': fields.many2one('account.journal', 'Destination Journal', required=True),
+ 'group': fields.boolean("Group by partner"),
+ 'type': fields.selection([('out_invoice', 'Customer Invoice'),
+ ('in_invoice', 'Supplier Invoice'),
+ ('out_refund', 'Customer Refund'),
+ ('in_refund', 'Supplier Refund')] , 'Type', required=True),
+ 'invoice_date': fields.date('Invoiced date'),
}
def _get_type(self, cr, uid, context=None):
@@ -41,12 +41,12 @@ class stock_invoice_onshipping(osv.osv_memory):
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: The ID or list of IDs if we want more than one
- @param context: A standard dictionary
+ @param ids: The ID or list of IDs if we want more than one
+ @param context: A standard dictionary
@return: Invoice type
"""
if context is None:
- context = {}
+ context = {}
picking_obj = self.pool.get('stock.picking')
usage = 'customer'
pick = picking_obj.browse(cr, uid, context['active_id'], context=context)
@@ -70,7 +70,7 @@ class stock_invoice_onshipping(osv.osv_memory):
return type
_defaults = {
- 'type': _get_type,
+ 'type': _get_type,
}
def create_invoice(self, cr, uid, ids, context):
@@ -78,10 +78,10 @@ class stock_invoice_onshipping(osv.osv_memory):
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param ids: the ID or list of IDs if we want more than one
- @param context: A standard dictionary
- @return: Invoice ids
- """
+ @param ids: the ID or list of IDs if we want more than one
+ @param context: A standard dictionary
+ @return: Invoice ids
+ """
result = []
picking_obj = self.pool.get('stock.picking')
mod_obj = self.pool.get('ir.model.data')
diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py
index f3af091d58b..51429058eb5 100644
--- a/addons/stock/wizard/stock_partial_move.py
+++ b/addons/stock/wizard/stock_partial_move.py
@@ -81,24 +81,24 @@ class stock_partial_move(osv.osv_memory):
continue
_moves_fields.update({
'move%s_product_id'%(m.id) : {
- 'string': _('Product'),
- 'type' : 'many2one',
- 'relation': 'product.product',
- 'required' : True,
- 'readonly' : True,
- },
+ 'string': _('Product'),
+ 'type' : 'many2one',
+ 'relation': 'product.product',
+ 'required' : True,
+ 'readonly' : True,
+ },
'move%s_product_qty'%(m.id) : {
- 'string': _('Quantity'),
- 'type' : 'float',
- 'required': True,
- },
+ 'string': _('Quantity'),
+ 'type' : 'float',
+ 'required': True,
+ },
'move%s_product_uom'%(m.id) : {
- 'string': _('Product UOM'),
- 'type' : 'many2one',
- 'relation': 'product.uom',
- 'required' : True,
- 'readonly' : True,
- }
+ 'string': _('Product UOM'),
+ 'type' : 'many2one',
+ 'relation': 'product.uom',
+ 'required' : True,
+ 'readonly' : True,
+ }
})
_moves_arch_lst += """
@@ -110,15 +110,15 @@ class stock_partial_move(osv.osv_memory):
if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
_moves_fields.update({
'move%s_product_price'%(m.id) : {
- 'string': _('Price'),
- 'type' : 'float',
- },
+ 'string': _('Price'),
+ 'type' : 'float',
+ },
'move%s_product_currency'%(m.id): {
- 'string': _('Currency'),
- 'type' : 'float',
- 'type' : 'many2one',
- 'relation': 'res.currency',
- }
+ 'string': _('Currency'),
+ 'type' : 'float',
+ 'type' : 'many2one',
+ 'relation': 'res.currency',
+ }
})
_moves_arch_lst += """
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index ae5fd396d3e..3b6ce21b6ee 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -27,7 +27,7 @@ class stock_partial_picking(osv.osv_memory):
_name = "stock.partial.picking"
_description = "Partial Picking"
_columns = {
- 'date': fields.datetime('Date', required=True),
+ 'date': fields.datetime('Date', required=True),
}
def view_init(self, cr, uid, fields_list, context=None):
@@ -75,30 +75,30 @@ class stock_partial_picking(osv.osv_memory):
continue
_moves_fields.update({
'move%s_product_id'%(m.id) : {
- 'string': _('Product'),
- 'type' : 'many2one',
- 'relation': 'product.product',
- 'required' : True,
- 'readonly' : True,
- },
+ 'string': _('Product'),
+ 'type' : 'many2one',
+ 'relation': 'product.product',
+ 'required' : True,
+ 'readonly' : True,
+ },
'move%s_product_qty'%(m.id) : {
- 'string': _('Quantity'),
- 'type' : 'float',
- 'required': True,
- },
+ 'string': _('Quantity'),
+ 'type' : 'float',
+ 'required': True,
+ },
'move%s_product_uom'%(m.id) : {
- 'string': _('Product UOM'),
- 'type' : 'many2one',
- 'relation': 'product.uom',
- 'required' : True,
- 'readonly' : True,
- },
+ 'string': _('Product UOM'),
+ 'type' : 'many2one',
+ 'relation': 'product.uom',
+ 'required' : True,
+ 'readonly' : True,
+ },
'move%s_prodlot_id'%(m.id): {
- 'string': _('Production Lot'),
- 'type': 'many2one',
- 'relation': 'stock.production.lot',
- 'readonly': True,
- }
+ 'string': _('Production Lot'),
+ 'type': 'many2one',
+ 'relation': 'stock.production.lot',
+ 'readonly': True,
+ }
})
_moves_arch_lst += """
@@ -111,15 +111,15 @@ class stock_partial_picking(osv.osv_memory):
if (m.product_id.cost_method == 'average'):
_moves_fields.update({
'move%s_product_price'%(m.id) : {
- 'string': _('Price'),
- 'type' : 'float',
- },
+ 'string': _('Price'),
+ 'type' : 'float',
+ },
'move%s_product_currency'%(m.id): {
- 'string': _('Currency'),
- 'type' : 'float',
- 'type' : 'many2one',
- 'relation': 'res.currency',
- }
+ 'string': _('Currency'),
+ 'type' : 'float',
+ 'type' : 'many2one',
+ 'relation': 'res.currency',
+ }
})
_moves_arch_lst += """
diff --git a/addons/stock/wizard/stock_replacement.py b/addons/stock/wizard/stock_replacement.py
index f1a1caced62..130f2469d45 100644
--- a/addons/stock/wizard/stock_replacement.py
+++ b/addons/stock/wizard/stock_replacement.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 .
#
##############################################################################
@@ -34,23 +34,23 @@ class stock_replacement(osv.osv_memory):
return {}
def replace_composant(self, cr, uid, ids, context = {}):
- """ To open a new wizard that acknowledge, a replacement task
+ """ To open a new wizard that acknowledge, a replacement task
@return: It returns the replacement acknowledgement form
- """
+ """
return {
- 'name': False,
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'stock.replacement.result',
- 'type': 'ir.actions.act_window',
- 'target':'new',
+ 'name': False,
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'stock.replacement.result',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
}
stock_replacement()
class stock_replacement_result(osv.osv_memory):
"""
- This class has been defined for replacement result
+ This class has been defined for replacement result
"""
_name = "stock.replacement.result"
_description = "Stock Replacement result"
diff --git a/addons/stock/wizard/stock_return_picking.py b/addons/stock/wizard/stock_return_picking.py
index af422b63dd5..e1aa0dc4e13 100644
--- a/addons/stock/wizard/stock_return_picking.py
+++ b/addons/stock/wizard/stock_return_picking.py
@@ -30,27 +30,31 @@ class stock_return_picking(osv.osv_memory):
_description = 'Return Picking'
def default_get(self, cr, uid, fields, context):
- """
+ """
To get default values for the object.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
- """
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary with default values for all field in ``fields``
+ """
res = super(stock_return_picking, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
pick_obj = self.pool.get('stock.picking')
pick = pick_obj.browse(cr, uid, record_id)
- for m in [line for line in pick.move_lines]:
- res['return%s'%(m.id)] = m.product_qty
- if pick.invoice_state=='invoiced':
- res['invoice_state'] = '2binvoiced'
- else:
- res['invoice_state'] = 'none'
+ if pick:
+ if 'invoice_state' in fields:
+ if pick.invoice_state=='invoiced':
+ res['invoice_state'] = '2binvoiced'
+ else:
+ res['invoice_state'] = 'none'
+ for line in pick.move_lines:
+ return_id = 'return%s'%(line.id)
+ if return_id in fields:
+ res[return_id] = line.product_qty
return res
-
+
def view_init(self, cr, uid, fields_list, context=None):
"""
Creates view dynamically and adding fields at runtime.
diff --git a/addons/stock/wizard/stock_traceability.py b/addons/stock/wizard/stock_traceability.py
index b77b798a55a..063c094d296 100644
--- a/addons/stock/wizard/stock_traceability.py
+++ b/addons/stock/wizard/stock_traceability.py
@@ -53,9 +53,9 @@ class action_traceability(osv.osv_memory):
'field_parent': type1,
'view_id': (view_id,'View'),
'type': 'ir.actions.act_window'
- }
+ }
return value
-
+
action_traceability()
class stock_traceability_downstream(osv.osv_memory):
@@ -66,7 +66,7 @@ class stock_traceability_downstream(osv.osv_memory):
_name = "stock.traceability.downstream"
_inherit = "action.traceability"
_description = "Stock traceability downstream"
-
+
stock_traceability_downstream()
class stock_traceability_upstream(osv.osv_memory):
@@ -77,7 +77,7 @@ class stock_traceability_upstream(osv.osv_memory):
_name = "stock.traceability.upstream"
_inherit = "action.traceability"
_description = "Stock traceability upstream"
-
+
stock_traceability_upstream()
class stock_traceability_lot_upstream(osv.osv_memory):
diff --git a/addons/stock/wizard/stock_traceability_view.xml b/addons/stock/wizard/stock_traceability_view.xml
index 466f249a06b..47f244b2cb6 100644
--- a/addons/stock/wizard/stock_traceability_view.xml
+++ b/addons/stock/wizard/stock_traceability_view.xml
@@ -36,13 +36,11 @@
form
-
-
+
-
@@ -63,13 +61,11 @@
form
-
-
+
-
@@ -90,13 +86,11 @@
form
-
-
+
-
diff --git a/addons/stock/wizard/stock_ups.py b/addons/stock/wizard/stock_ups.py
index 03156dfe7fc..2f2315027a6 100644
--- a/addons/stock/wizard/stock_ups.py
+++ b/addons/stock/wizard/stock_ups.py
@@ -29,26 +29,26 @@ class stock_ups(osv.osv_memory):
def ups_save(self, cr, uid, ids, context = {}):
return {
- 'name': False,
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'stock.ups.final',
- 'type': 'ir.actions.act_window',
- 'target':'new',
+ 'name': False,
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'stock.ups.final',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
}
-
+
def ups_upload(self, cr, uid, ids, context = {}):
return {
- 'name': False,
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'stock.ups.upload',
- 'type': 'ir.actions.act_window',
- 'target':'new',
+ 'name': False,
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'stock.ups.upload',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
}
_columns = {
- 'weight': fields.float('Lot weight', required=True),
+ 'weight': fields.float('Lot weight', required=True),
}
_defaults = {
diff --git a/addons/stock_invoice_directly/i18n/it.po b/addons/stock_invoice_directly/i18n/it.po
index c61ef891bf6..6392ae4436b 100644
--- a/addons/stock_invoice_directly/i18n/it.po
+++ b/addons/stock_invoice_directly/i18n/it.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:08+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-08-12 05:53+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-13 05:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_invoice_directly
diff --git a/addons/stock_invoice_directly/i18n/tr.po b/addons/stock_invoice_directly/i18n/tr.po
index 5eb970a42ba..7361f92773c 100644
--- a/addons/stock_invoice_directly/i18n/tr.po
+++ b/addons/stock_invoice_directly/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-11 05:32+0000\n"
+"PO-Revision-Date: 2010-08-29 10:28+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 04:07+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_invoice_directly
diff --git a/addons/stock_location/i18n/ca.po b/addons/stock_location/i18n/ca.po
index a00fb98d4de..0d7d3e60582 100644
--- a/addons/stock_location/i18n/ca.po
+++ b/addons/stock_location/i18n/ca.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-09-16 17:43+0000\n"
+"PO-Revision-Date: 2010-08-12 05:55+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-13 05:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
diff --git a/addons/stock_location/i18n/lt.po b/addons/stock_location/i18n/lt.po
index 0fb34ab74b7..60098682217 100644
--- a/addons/stock_location/i18n/lt.po
+++ b/addons/stock_location/i18n/lt.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-09-08 12:52+0000\n"
+"PO-Revision-Date: 2010-08-13 10:19+0000\n"
"Last-Translator: Andrius Vilciauskas \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 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
diff --git a/addons/stock_location/i18n/mn.po b/addons/stock_location/i18n/mn.po
index 273f91b47a2..d617471b978 100644
--- a/addons/stock_location/i18n/mn.po
+++ b/addons/stock_location/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-11 10:28+0000\n"
+"PO-Revision-Date: 2010-08-13 09:52+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
diff --git a/addons/stock_location/i18n/tr.po b/addons/stock_location/i18n/tr.po
index 9fd5ef0163b..c013aa75c66 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-11 04:37+0000\n"
+"PO-Revision-Date: 2010-08-29 10:42+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-12 04:05+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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 bd5b039356e..7ae4893047d 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-11 04:50+0000\n"
+"PO-Revision-Date: 2010-08-29 09:29+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-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+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..e750d2558d7
--- /dev/null
+++ b/addons/stock_planning/i18n/fr.po
@@ -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/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/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml
index 9b8b6afd506..704703cb13a 100644
--- a/addons/stock_planning/stock_planning_view.xml
+++ b/addons/stock_planning/stock_planning_view.xml
@@ -182,7 +182,7 @@
+ parent="base.menu_base_partner" sequence="6" groups="base.group_extended,base.group_system"/>
stock.sale.forecast.list.select
@@ -247,7 +247,6 @@
-
@@ -307,7 +306,7 @@
-
+
diff --git a/addons/stock_planning/wizard/stock_planning_create_periods.py b/addons/stock_planning/wizard/stock_planning_create_periods.py
index 9a860beb564..61e699c84f7 100644
--- a/addons/stock_planning/wizard/stock_planning_create_periods.py
+++ b/addons/stock_planning/wizard/stock_planning_create_periods.py
@@ -90,11 +90,11 @@ class stock_period_createlines(osv.osv_memory):
ds = ds + RelativeDateTime(months=interval)
lines.append(new_id)
return {
- 'domain': "[('id','in', ["+','.join(map(str, lines))+"])]",
- 'view_type': 'form',
- "view_mode": 'tree, form',
- 'res_model': 'stock.period',
- 'type': 'ir.actions.act_window',
+ 'domain': "[('id','in', ["+','.join(map(str, lines))+"])]",
+ 'view_type': 'form',
+ "view_mode": 'tree, form',
+ 'res_model': 'stock.period',
+ 'type': 'ir.actions.act_window',
}
stock_period_createlines()
diff --git a/addons/stock_planning/wizard/stock_planning_createlines.py b/addons/stock_planning/wizard/stock_planning_createlines.py
index 56697beaa32..7abb15b6e7d 100644
--- a/addons/stock_planning/wizard/stock_planning_createlines.py
+++ b/addons/stock_planning/wizard/stock_planning_createlines.py
@@ -129,14 +129,14 @@ class stock_planning_createlines(osv.osv_memory):
}))
result = mod_obj._get_id(cr, uid, 'stock_planning', 'view_stock_planning_filter')
id = mod_obj.read(cr, uid, result, ['res_id'], context=context)
-
+
return {
- 'domain': "[('id','in', ["+','.join(map(str, planning_lines))+"])]",
- 'view_type': 'form',
- "view_mode": 'tree, form',
- 'res_model': 'stock.planning',
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id'],
+ 'domain': "[('id','in', ["+','.join(map(str, planning_lines))+"])]",
+ 'view_type': 'form',
+ "view_mode": 'tree, form',
+ 'res_model': 'stock.planning',
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id'],
}
stock_planning_createlines()
diff --git a/addons/stock_planning/wizard/stock_planning_forecast.py b/addons/stock_planning/wizard/stock_planning_forecast.py
index 569d54c5663..d38173a665d 100644
--- a/addons/stock_planning/wizard/stock_planning_forecast.py
+++ b/addons/stock_planning/wizard/stock_planning_forecast.py
@@ -37,7 +37,7 @@ class stock_sale_forecast_createlines(osv.osv_memory):
'product_categ_id': fields.many2one('product.category' , 'Product Category', required=True, \
help ='Product Category of products which created forecasts will concern.'),
'copy_forecast': fields.boolean('Copy Last Forecast', help="Copy quantities from last Stock and Sale Forecast."),
- }
+ }
_defaults = {
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.sale.forecast.createlines', context=c),
@@ -99,13 +99,13 @@ class stock_sale_forecast_createlines(osv.osv_memory):
id = mod_obj.read(cr, uid, result, ['res_id'], context=context)
return {
- 'domain': "[('id','in', ["+','.join(map(str, forecast_lines))+"])]",
- 'view_type': 'form',
- "view_mode": 'tree, form',
- 'res_model': 'stock.sale.forecast',
- 'type': 'ir.actions.act_window',
- 'search_view_id': id['res_id'],
- }
+ 'domain': "[('id','in', ["+','.join(map(str, forecast_lines))+"])]",
+ 'view_type': 'form',
+ "view_mode": 'tree, form',
+ 'res_model': 'stock.sale.forecast',
+ 'type': 'ir.actions.act_window',
+ 'search_view_id': id['res_id'],
+ }
stock_sale_forecast_createlines()
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 d8435b08864..f89f2123690 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-11 05:47+0000\n"
+"PO-Revision-Date: 2010-08-29 09:58+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-12 03:43+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: subscription
diff --git a/addons/subscription/security/ir.model.access.csv b/addons/subscription/security/ir.model.access.csv
index 33ab0881c52..e19fdde993b 100644
--- a/addons/subscription/security/ir.model.access.csv
+++ b/addons/subscription/security/ir.model.access.csv
@@ -3,8 +3,8 @@ access_subscription_document,subscription.document,model_subscription_document,b
access_subscription_document_fields,subscription.document.fields,model_subscription_document_fields,base.group_system,1,1,1,1
access_subscription_subscription,subscription.subscription,model_subscription_subscription,base.group_user,1,1,1,1
access_subscription_subscription_history,subscription.subscription.history,model_subscription_subscription_history,base.group_user,1,1,1,1
-access_subscription_subscription_user,subscription.subscription user,model_subscription_subscription,base.group_survey_user,1,1,1,1
-access_subscription_subscription_manager,subscription.subscription manager,model_subscription_subscription,base.group_survey_manager,1,0,0,0
-access_subscription_subscription_history_user,subscription.subscription.history user,model_subscription_subscription_history,base.group_survey_user,1,1,1,1
+access_subscription_subscription_user,subscription.subscription user,model_subscription_subscription,base.group_tool_user,1,1,1,1
+access_subscription_subscription_manager,subscription.subscription manager,model_subscription_subscription,base.group_tool_manager,1,0,0,0
+access_subscription_subscription_history_user,subscription.subscription.history user,model_subscription_subscription_history,base.group_tool_user,1,1,1,1
access_subscription_subscription_system,subscription.subscription system,model_subscription_subscription,base.group_system,1,0,0,0
-access_subscription_document_user,subscription.document user,model_subscription_document,base.group_survey_user,1,1,1,1
+access_subscription_document_user,subscription.document user,model_subscription_document,base.group_tool_user,1,1,1,1
diff --git a/addons/subscription/security/subcription_security.xml b/addons/subscription/security/subcription_security.xml
index 86f0e2c6069..0014f38182b 100644
--- a/addons/subscription/security/subcription_security.xml
+++ b/addons/subscription/security/subcription_security.xml
@@ -2,10 +2,10 @@
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/survey/i18n/de.po b/addons/survey/i18n/de.po
index 1bbc2a85bf1..1ab4c507f68 100644
--- a/addons/survey/i18n/de.po
+++ b/addons/survey/i18n/de.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-11-26 06:01+0000\n"
-"PO-Revision-Date: 2010-03-31 21:32+0000\n"
-"Last-Translator: Ferdinand @ ChriCar \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-12 04:08+0000\n"
+"X-Launchpad-Export-Date: 2010-08-25 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: survey
@@ -263,7 +263,7 @@ msgstr "Fehlerhafter XML Code für diese Ansicht!"
#: model:ir.model,name:survey.model_survey_response_answer
#: view:survey.response.answer:0
msgid "Survey Response Answer"
-msgstr ""
+msgstr "Umfrage Anwort"
#. module: survey
#: rml:survey_analysis_report:0
@@ -403,6 +403,15 @@ msgid ""
"invitation of the survey\n"
" "
msgstr ""
+"\n"
+" Diese Mould wird für Umfragen verwendet. Es hängt von den Antorten und "
+"Überarbeitungen von verschiedenen Benutzern ab.\n"
+" Eine Umfrage kann mehrere Seiten haben. Jede Seite kann mehrere Fragen "
+"haben und jede Frage mehrere Antworten.\n"
+" Verschieden Benutzer können verschiedene Antworten geben.\n"
+" An Partner können Einladunge in Form von EMails mit Benutzername und "
+"Passwort gesandt werden.\n"
+" "
#. module: survey
#: view:survey:0
@@ -523,7 +532,7 @@ msgstr "Fertig"
#: code:addons/survey/survey.py:0
#, python-format
msgid "'\" + que_rec[0]['question'] + \"' This question requires an answer."
-msgstr ""
+msgstr "'\" + que_rec[0]['question'] + \"' Diese Frage bedarf einer Antwort"
#. module: survey
#: view:survey:0
@@ -639,7 +648,7 @@ msgstr "# Fragen"
#. module: survey
#: rml:survey_analysis_report:0
msgid "Que:"
-msgstr ""
+msgstr "Warteschlange"
#. module: survey
#: field:survey,page_ids:0
diff --git a/addons/survey/i18n/pl.po b/addons/survey/i18n/pl.po
new file mode 100644
index 00000000000..ed5d7e7828e
--- /dev/null
+++ b/addons/survey/i18n/pl.po
@@ -0,0 +1,697 @@
+# Polish 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-11-26 06:01+0000\n"
+"PO-Revision-Date: 2010-08-26 06:37+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Polish \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-27 03:41+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.menu_survey_form
+msgid "Surveys"
+msgstr "Sondaże"
+
+#. module: survey
+#: model:ir.actions.report.xml,name:survey.survey
+msgid "Survey Analysis Report"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_page_question
+#: model:ir.ui.menu,name:survey.menu_survey_question_form1
+msgid "Survey Questions"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.response:0
+msgid "Set to draft"
+msgstr "Ustaw na projekt"
+
+#. module: survey
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
+
+#. module: survey
+#: field:survey.history,date:0
+msgid "Date started"
+msgstr ""
+
+#. module: survey
+#: field:survey,history:0
+msgid "History Lines"
+msgstr "Pozycje historii"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail:0
+msgid "Body"
+msgstr "Treść"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_view_survey_name
+#: model:ir.ui.menu,name:survey.menu_run_survey_form
+msgid "Give Survey Response"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_question
+msgid "All Questions"
+msgstr ""
+
+#. module: survey
+#: field:survey,date_open:0
+msgid "Survey Open Date"
+msgstr ""
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_name_wiz
+msgid "survey.name.wiz"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+msgid "Users Details"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_view_survey_question_message
+#: model:ir.model,name:survey.model_survey_question
+#: view:survey:0
+#: view:survey.page:0
+#: view:survey.question:0
+msgid "Survey Question"
+msgstr ""
+
+#. module: survey
+#: help:survey,response_user:0
+msgid "Set to one if you require only one response per user"
+msgstr ""
+
+#. module: survey
+#: field:survey.page,title:0
+msgid "Page Title"
+msgstr "Tytuł strony"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_history
+msgid "Survey History"
+msgstr "Historia sondażu"
+
+#. module: survey
+#: field:survey.response,comment:0
+#: field:survey.response.answer,comment:0
+msgid "Notes"
+msgstr "Uwagi"
+
+#. module: survey
+#: field:survey.question,tot_resp:0
+msgid "Total Response"
+msgstr ""
+
+#. module: survey
+#: view:survey.question.wiz:0
+msgid "Your Messages"
+msgstr "Twoja wiadomość"
+
+#. module: survey
+#: selection:survey,state:0
+msgid "Cancelled"
+msgstr "Anulowano"
+
+#. module: survey
+#: field:survey.question,allow_comment:0
+msgid "Allow Comment Field"
+msgstr ""
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Ostrzeżenie !"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+#: wizard_field:wizard.send.invitation,init,send_mail_existing:0
+msgid "Send reminder for existing user"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_question_form
+#: model:ir.ui.menu,name:survey.menu_new_survey_question_form1
+msgid "New Survey Question"
+msgstr ""
+
+#. module: survey
+#: view:survey.response:0
+msgid "Skip"
+msgstr "Pomiń"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,partner_ids:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail_subject:0
+#: wizard_field:wizard.send.invitation,init,mail_subject_existing:0
+msgid "Subject"
+msgstr "Temat"
+
+#. module: survey
+#: field:survey,max_response_limit:0
+msgid "Maximum Response Limit"
+msgstr ""
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,init,mail_from:0
+msgid "From"
+msgstr "Od"
+
+#. module: survey
+#: field:survey.response,response_type:0
+msgid "Response Type"
+msgstr ""
+
+#. module: survey
+#: field:survey.name.wiz,transfer:0
+msgid "Page Transfer"
+msgstr ""
+
+#. module: survey
+#: field:survey.answer,question_id:0
+#: field:survey.page,question_ids:0
+#: field:survey.question,question:0
+#: field:survey.response,question_id:0
+msgid "Question"
+msgstr "Pytanie"
+
+#. module: survey
+#: wizard_button:wizard.send.invitation,init,send:0
+msgid "Send"
+msgstr "Wyślij"
+
+#. module: survey
+#: field:survey.answer,response:0
+msgid "#Response"
+msgstr ""
+
+#. module: survey
+#: field:survey.response,response_answer_ids:0
+msgid "Response Answer"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Summary"
+msgstr ""
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+#: wizard_field:wizard.send.invitation,init,send_mail:0
+msgid "Send mail for new user"
+msgstr ""
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "Error !"
+msgstr "Błąd !"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Skipped Question"
+msgstr ""
+
+#. module: survey
+#: wizard_button:wizard.send.invitation,send,end:0
+msgid "_Ok"
+msgstr ""
+
+#. module: survey
+#: selection:survey.response,response_type:0
+msgid "Link"
+msgstr "Odnośnik"
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.menu_survey_config
+msgid "Configuration"
+msgstr "Konfiguracja"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_question_wiz
+msgid "survey.question.wiz"
+msgstr ""
+
+#. module: survey
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Niewłaściwy XML dla architektury widoku!"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_response_answer
+#: view:survey.response.answer:0
+msgid "Survey Response Answer"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Page :-"
+msgstr ""
+
+#. module: survey
+#: field:survey,response_user:0
+msgid "Maximum Response per User"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Total Started Survey :-"
+msgstr ""
+
+#. module: survey
+#: view:survey.response:0
+msgid "Comment"
+msgstr "Komentarz"
+
+#. module: survey
+#: field:survey.response,date_modify:0
+msgid "Modify Date"
+msgstr "Data modyfikacji"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Answered Question"
+msgstr ""
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "You can not give response for this survey more than %s times"
+msgstr ""
+
+#. module: survey
+#: selection:survey.response,response_type:0
+msgid "Manually"
+msgstr "Ręcznie"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_form1
+msgid "All Surveys"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: field:survey,users:0
+msgid "Users"
+msgstr "Użytkownicy"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Message"
+msgstr "Wiadomość"
+
+#. module: survey
+#: field:survey.name.wiz,page_no:0
+msgid "Page Number"
+msgstr "Numer strony"
+
+#. module: survey
+#: wizard_field:wizard.send.invitation,send,note:0
+msgid "Log"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_question_form
+msgid "All Survey Questions"
+msgstr ""
+
+#. module: survey
+#: field:survey,date_close:0
+msgid "Survey Close Date"
+msgstr ""
+
+#. module: survey
+#: view:survey.name.wiz:0
+msgid "Start"
+msgstr ""
+
+#. module: survey
+#: selection:survey,state:0
+#: selection:survey.response,state:0
+msgid "Draft"
+msgstr "Projekt"
+
+#. module: survey
+#: selection:survey,state:0
+msgid "Closed"
+msgstr "Zamknięte"
+
+#. module: survey
+#: view:survey:0
+#: field:survey.answer,answer:0
+#: view:survey.page:0
+#: view:survey.question:0
+#: field:survey.question,answer_choice_ids:0
+#: field:survey.response.answer,answer_id:0
+msgid "Answer"
+msgstr "Odpowiedź"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_survey_page_form
+msgid "All Survey Pages"
+msgstr ""
+
+#. module: survey
+#: field:survey.name.wiz,store_ans:0
+msgid "Store Answer"
+msgstr ""
+
+#. module: survey
+#: field:survey,state:0
+#: field:survey.response,state:0
+msgid "Status"
+msgstr "Stan"
+
+#. module: survey
+#: model:ir.module.module,shortdesc:survey.module_meta_information
+msgid "Survey Module"
+msgstr ""
+
+#. module: survey
+#: model:ir.module.module,description:survey.module_meta_information
+msgid ""
+"\n"
+" This module is used for surveing. It depends on the answers or reviews "
+"of some questions by different users.\n"
+" A survey may have multiple pages. Each page may contain multiple "
+"questions and each question may have multiple answers.\n"
+" Different users may give different answers of question and according to "
+"that survey is done. \n"
+" Partners are also sent mails with user name and password for the "
+"invitation of the survey\n"
+" "
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.name.wiz:0
+msgid "Survey Details"
+msgstr ""
+
+#. module: survey
+#: field:survey.question,is_require_answer:0
+msgid "Required Answer"
+msgstr ""
+
+#. module: survey
+#: field:survey.history,user_id:0
+#: field:survey.response,response_id:0
+msgid "User"
+msgstr "Użytkownik"
+
+#. module: survey
+#: field:res.users,survey_id:0
+msgid "Groups"
+msgstr "Grupy"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.page:0
+#: view:survey.question:0
+#: field:survey.question,response_ids:0
+#: view:survey.response:0
+#: field:survey.response.answer,response_id:0
+msgid "Response"
+msgstr "Odpowiedź"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_form1
+#: model:ir.ui.menu,name:survey.menu_new_survey_form
+msgid "New Survey"
+msgstr ""
+
+#. module: survey
+#: model:ir.ui.menu,name:survey.main_menu_survey
+msgid "Survey Management"
+msgstr ""
+
+#. module: survey
+#: selection:survey.response,state:0
+msgid "Skiped"
+msgstr ""
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_answer
+#: view:survey.answer:0
+msgid "Survey Answer"
+msgstr ""
+
+#. module: survey
+#: code:addons/survey/wizard/wizard_survey.py:0
+#, python-format
+msgid "Attention!"
+msgstr "Uwaga!"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey
+#: view:res.users:0
+#: view:survey:0
+#: field:survey.history,survey_id:0
+#: view:survey.name.wiz:0
+#: field:survey.name.wiz,survey_id:0
+#: field:survey.page,survey_id:0
+#: field:survey.question,survey:0
+msgid "Survey"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Total Completed Survey :-"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+msgid "History"
+msgstr "Historia"
+
+#. module: survey
+#: view:survey:0
+#: view:survey.answer:0
+#: view:survey.page:0
+#: view:survey.question:0
+msgid "Seq"
+msgstr "Num."
+
+#. module: survey
+#: field:survey,tot_comp_survey:0
+msgid "Total Completed Survey"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Percentage"
+msgstr ""
+
+#. module: survey
+#: field:survey.question.wiz,name:0
+msgid "Number"
+msgstr "Numer"
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Survey Title :-"
+msgstr ""
+
+#. module: survey
+#: view:survey.response:0
+msgid "Done"
+msgstr "Wykonano"
+
+#. module: survey
+#: code:addons/survey/survey.py:0
+#, python-format
+msgid "'\" + que_rec[0]['question'] + \"' This question requires an answer."
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.name.wiz:0
+#: wizard_button:wizard.send.invitation,init,end:0
+msgid "Cancel"
+msgstr "Anuluj"
+
+#. module: survey
+#: view:survey:0
+msgid "Close"
+msgstr "Zamknij"
+
+#. module: survey
+#: view:survey:0
+#: selection:survey,state:0
+msgid "Open"
+msgstr "Otwórz"
+
+#. module: survey
+#: field:survey,tot_start_survey:0
+msgid "Total Started Survey"
+msgstr ""
+
+#. module: survey
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
+"specjalnych !"
+
+#. module: survey
+#: model:ir.model,name:survey.model_survey_response
+#: view:survey.response:0
+msgid "Survey Response"
+msgstr ""
+
+#. module: survey
+#: field:survey.answer,average:0
+msgid "#Avg"
+msgstr ""
+
+#. module: survey
+#: field:survey,responsible_id:0
+msgid "Responsible"
+msgstr "Odpowiedzialny"
+
+#. module: survey
+#: selection:survey.response,state:0
+msgid "Answered"
+msgstr "Z odpowiedzią"
+
+#. module: survey
+#: view:survey:0
+msgid "Other"
+msgstr "Inne"
+
+#. module: survey
+#: model:ir.actions.wizard,name:survey.wizard_send_invitation
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Send Invitation"
+msgstr "Wyślij zaproszenie"
+
+#. module: survey
+#: field:survey,title:0
+msgid "Survey Title"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "%"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: field:survey,note:0
+#: field:survey.name.wiz,note:0
+#: view:survey.page:0
+#: field:survey.page,note:0
+#: view:survey.response:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: survey
+#: view:survey.name.wiz:0
+msgid "Select Survey"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.action_new_survey_page_form
+#: model:ir.ui.menu,name:survey.menu_new_survey_page_form1
+msgid "New Survey Page"
+msgstr ""
+
+#. module: survey
+#: view:survey:0
+#: view:survey.page:0
+#: field:survey.question,page_id:0
+msgid "Survey Page"
+msgstr ""
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_answer
+msgid "Survey Answers"
+msgstr ""
+
+#. module: survey
+#: view:survey.page:0
+msgid "#Questions"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Que:"
+msgstr ""
+
+#. module: survey
+#: field:survey,page_ids:0
+msgid "Page"
+msgstr "Strona"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,send:0
+msgid "User creation"
+msgstr ""
+
+#. module: survey
+#: field:survey.answer,sequence:0
+#: field:survey.page,sequence:0
+#: field:survey.question,sequence:0
+msgid "Sequence"
+msgstr "Numeracja"
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,send:0
+msgid "Results :"
+msgstr ""
+
+#. module: survey
+#: code:addons/survey/wizard/wizard_survey.py:0
+#, python-format
+msgid "%sSurvey is not in open state"
+msgstr ""
+
+#. module: survey
+#: wizard_view:wizard.send.invitation,init:0
+msgid "Select Partner"
+msgstr ""
+
+#. module: survey
+#: field:survey.response,date_create:0
+msgid "Create Date"
+msgstr "Data utworzenia"
+
+#. module: survey
+#: model:ir.actions.act_window,name:survey.act_survey_pages
+#: model:ir.model,name:survey.model_survey_page
+#: model:ir.ui.menu,name:survey.menu_survey_page_form1
+msgid "Survey Pages"
+msgstr ""
+
+#. module: survey
+#: rml:survey_analysis_report:0
+msgid "Response Count"
+msgstr ""
+
+#. module: survey
+#: field:survey.name.wiz,page:0
+msgid "Page Position"
+msgstr ""
diff --git a/addons/survey/security/ir.model.access.csv b/addons/survey/security/ir.model.access.csv
index 9944a84996d..8d50471fd03 100644
--- a/addons/survey/security/ir.model.access.csv
+++ b/addons/survey/security/ir.model.access.csv
@@ -1,30 +1,30 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_survey_type_manager","survey.type manager","model_survey_type","base.group_survey_manager",1,1,1,1
-"access_survey_type_user","survey.type user","model_survey_type","base.group_survey_user",1,1,1,1
-"access_survey_manager","survey","model_survey","base.group_survey_manager",1,0,0,0
+"access_survey_type_manager","survey.type manager","model_survey_type","base.group_tool_manager",1,1,1,1
+"access_survey_type_user","survey.type user","model_survey_type","base.group_tool_user",1,1,1,1
+"access_survey_manager","survey","model_survey","base.group_tool_manager",1,0,0,0
"access_survey_system","survey","model_survey","base.group_system",1,0,0,0
-"access_survey_user","survey","model_survey","base.group_survey_user",1,1,1,1
-"access_survey_page_manager","survey.page manager","model_survey_page","base.group_survey_manager",1,0,0,0
+"access_survey_user","survey","model_survey","base.group_tool_user",1,1,1,1
+"access_survey_page_manager","survey.page manager","model_survey_page","base.group_tool_manager",1,0,0,0
"access_survey_page_system","survey.page system","model_survey_page","base.group_system",1,0,0,0
-"access_survey_page_user","survey.page user","model_survey_page","base.group_survey_user",1,1,1,1
-"access_survey_question_manager","survey.question manager","model_survey_question","base.group_survey_manager",1,1,1,1
-"access_survey_question_user","survey.question user","model_survey_question","base.group_survey_user",1,1,1,1
-"access_survey_answer_manager","survey.answer manager","model_survey_answer","base.group_survey_manager",1,1,1,1
-"access_survey_answer_user","survey.answer user","model_survey_answer","base.group_survey_user",1,1,1,1
-"access_survey_response_manager","survey.response manager","model_survey_response","base.group_survey_manager",1,1,1,1
-"access_survey_response_user","survey.response user","model_survey_response","base.group_survey_user",1,1,1,1
-"access_survey_response_answer_manager","survey.response.answer manager","model_survey_response_answer","base.group_survey_manager",1,1,1,1
-"access_survey_response_answer_user","survey.response.answer user","model_survey_response_answer","base.group_survey_user",1,1,1,1
-"access_survey_history_user","survey.history.user","model_survey_history","base.group_survey_user",1,1,1,1
-"access_survey_question_column_heading_manager","survey.question.column.heading manager","model_survey_question_column_heading","base.group_survey_manager",1,1,1,1
-"access_survey_question_column_heading_user","survey.question.column.heading user","model_survey_question_column_heading","base.group_survey_user",1,0,0,0
-"access_survey_request_manager","survey.request manager","model_survey_request","base.group_survey_manager",1,0,0,0
-"access_survey_request_user","survey.request user","model_survey_request","base.group_survey_user",1,1,1,1
+"access_survey_page_user","survey.page user","model_survey_page","base.group_tool_user",1,1,1,1
+"access_survey_question_manager","survey.question manager","model_survey_question","base.group_tool_manager",1,1,1,1
+"access_survey_question_user","survey.question user","model_survey_question","base.group_tool_user",1,1,1,1
+"access_survey_answer_manager","survey.answer manager","model_survey_answer","base.group_tool_manager",1,1,1,1
+"access_survey_answer_user","survey.answer user","model_survey_answer","base.group_tool_user",1,1,1,1
+"access_survey_response_manager","survey.response manager","model_survey_response","base.group_tool_manager",1,1,1,1
+"access_survey_response_user","survey.response user","model_survey_response","base.group_tool_user",1,1,1,1
+"access_survey_response_answer_manager","survey.response.answer manager","model_survey_response_answer","base.group_tool_manager",1,1,1,1
+"access_survey_response_answer_user","survey.response.answer user","model_survey_response_answer","base.group_tool_user",1,1,1,1
+"access_survey_history_user","survey.history.user","model_survey_history","base.group_tool_user",1,1,1,1
+"access_survey_question_column_heading_manager","survey.question.column.heading manager","model_survey_question_column_heading","base.group_tool_manager",1,1,1,1
+"access_survey_question_column_heading_user","survey.question.column.heading user","model_survey_question_column_heading","base.group_tool_user",1,0,0,0
+"access_survey_request_manager","survey.request manager","model_survey_request","base.group_tool_manager",1,0,0,0
+"access_survey_request_user","survey.request user","model_survey_request","base.group_tool_user",1,1,1,1
"access_survey_request_system","survey.request system","model_survey_request","base.group_system",1,0,0,0
-"access_survey_tbl_column_heading_manager","survey.tbl.column.heading manager","model_survey_tbl_column_heading","base.group_survey_manager",1,1,1,1
-"access_survey_tbl_column_heading_user","survey.tbl.column.heading user","model_survey_tbl_column_heading","base.group_survey_user",1,1,1,1
-"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_survey_manager",1,1,1,1
-"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_survey_user",1,1,1,1
+"access_survey_tbl_column_heading_manager","survey.tbl.column.heading manager","model_survey_tbl_column_heading","base.group_tool_manager",1,1,1,1
+"access_survey_tbl_column_heading_user","survey.tbl.column.heading user","model_survey_tbl_column_heading","base.group_tool_user",1,1,1,1
+"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_tool_manager",1,1,1,1
+"access_survey_response_line_manager","survey.response.line manager","model_survey_response_line","base.group_tool_user",1,1,1,1
"access_survey_type","survey.type","model_survey_type","base.group_hr_manager",1,1,1,1
"access_survey","survey","model_survey","base.group_hr_manager",1,1,1,1
"access_survey_history_manager","survey.history","model_survey_history","base.group_hr_manager",1,1,1,1
@@ -38,7 +38,7 @@
"access_survey_response_answer","survey.response.answer","model_survey_response_answer","base.group_hr_manager",1,1,1,1
"access_survey_res_users","res.users","base.model_res_users","base.group_hr_manager",1,1,1,1
"access_survey_request","survey.request","model_survey_request","base.group_hr_manager",1,1,1,1
-"access_survey_history_survey_manager","survey.history manager","model_survey_history","base.group_survey_manager",1,0,0,0
+"access_survey_history_survey_manager","survey.history manager","model_survey_history","base.group_tool_manager",1,0,0,0
"access_survey_type_system","survey.type system","model_survey_type","base.group_system",1,0,0,0
"access_survey_question_system","survey.question system","model_survey_question","base.group_system",1,0,0,0
"access_survey_history_system","survey.history.system","model_survey_history","base.group_system",1,0,0,0
diff --git a/addons/survey/security/survey_security.xml b/addons/survey/security/survey_security.xml
index 8c50d72496c..7172fdf615e 100644
--- a/addons/survey/security/survey_security.xml
+++ b/addons/survey/security/survey_security.xml
@@ -11,10 +11,10 @@
Human Resources / User
-
+
Tools / Manager
-
+
Tools / User
diff --git a/addons/survey/survey_data.xml b/addons/survey/survey_data.xml
index dfc63a51294..c057868d6de 100644
--- a/addons/survey/survey_data.xml
+++ b/addons/survey/survey_data.xml
@@ -1,11 +1,6 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/addons/survey/survey_demo.xml b/addons/survey/survey_demo.xml
index 43db63e982b..855cb2b7ce7 100644
--- a/addons/survey/survey_demo.xml
+++ b/addons/survey/survey_demo.xml
@@ -17,7 +17,7 @@
- Open ERP Partner Feedback
+ OpenERP Partner Feedback
20
@@ -1306,20 +1306,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index f45eab0bf9d..166c46dca93 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -2,15 +2,15 @@
-
+
+ groups="base.group_tool_manager,base.group_tool_user,base.group_system" sequence="2"/>
-
+
+ id="base.menu_lunch_reporting" sequence="6"/>
-
-
-
survey_question_wizard_test
survey.question
@@ -1057,7 +1053,6 @@
-
@@ -1116,7 +1111,7 @@
+ groups="base.group_tool_manager,base.group_tool_user,base.group_system"/>
-
-
-
+ groups="base.group_tool_manager,base.group_tool_user,base.group_system" icon="STOCK_INDEX"/>
diff --git a/addons/survey/wizard/survey_browse_answer.xml b/addons/survey/wizard/survey_browse_answer.xml
index 1a0da339483..7e02e067f2c 100644
--- a/addons/survey/wizard/survey_browse_answer.xml
+++ b/addons/survey/wizard/survey_browse_answer.xml
@@ -35,7 +35,7 @@
+ groups="base.group_tool_manager" icon="STOCK_PRINT_PREVIEW"/>
diff --git a/addons/survey/wizard/survey_print.xml b/addons/survey/wizard/survey_print.xml
index 719eaa309e8..d9f3ae6fe1e 100644
--- a/addons/survey/wizard/survey_print.xml
+++ b/addons/survey/wizard/survey_print.xml
@@ -37,7 +37,7 @@
+ groups="base.group_tool_manager" icon="STOCK_PRINT"/>
diff --git a/addons/survey/wizard/survey_print_answer.py b/addons/survey/wizard/survey_print_answer.py
index a0775fe5f2d..f041e2f2ada 100644
--- a/addons/survey/wizard/survey_print_answer.py
+++ b/addons/survey/wizard/survey_print_answer.py
@@ -39,10 +39,10 @@ class survey_print_answer(osv.osv_memory):
}
_defaults = {
- 'orientation': lambda *a:'vertical',
- 'paper_size': lambda *a:'letter',
- 'page_number': lambda *a: 0,
- 'without_pagebreak': lambda *a: 0
+ 'orientation': lambda *a:'vertical',
+ 'paper_size': lambda *a:'letter',
+ 'page_number': lambda *a: 0,
+ 'without_pagebreak': lambda *a: 0
}
def action_next(self, cr, uid, ids, context=None):
diff --git a/addons/survey/wizard/survey_print_answer.xml b/addons/survey/wizard/survey_print_answer.xml
index e7a05dff6c4..9a0ea6dd83f 100644
--- a/addons/survey/wizard/survey_print_answer.xml
+++ b/addons/survey/wizard/survey_print_answer.xml
@@ -37,7 +37,7 @@
+ parent="menu_reporting" icon="STOCK_PRINT" groups="base.group_tool_manager"/>
diff --git a/addons/survey/wizard/survey_print_statistics.xml b/addons/survey/wizard/survey_print_statistics.xml
index abb11336b90..9bd729db010 100644
--- a/addons/survey/wizard/survey_print_statistics.xml
+++ b/addons/survey/wizard/survey_print_statistics.xml
@@ -31,7 +31,7 @@
+ parent="menu_reporting" icon="STOCK_PRINT" groups="base.group_tool_manager"/>
diff --git a/addons/survey/wizard/survey_selection.py b/addons/survey/wizard/survey_selection.py
index 29eaddff164..2a9438594b2 100644
--- a/addons/survey/wizard/survey_selection.py
+++ b/addons/survey/wizard/survey_selection.py
@@ -136,7 +136,7 @@ class survey_name_wiz(osv.osv_memory):
'target': 'new',
'search_view_id': search_id[0],
'context': context
- }
+ }
def on_change_survey(self, cr, uid, ids, survey_id, context=None):
"""
diff --git a/addons/survey/wizard/survey_send_invitation.py b/addons/survey/wizard/survey_send_invitation.py
index 1e5a0e01831..b34d97c6b03 100644
--- a/addons/survey/wizard/survey_send_invitation.py
+++ b/addons/survey/wizard/survey_send_invitation.py
@@ -100,7 +100,7 @@ class survey_send_invitation(osv.osv_memory):
survey_ref= self.pool.get('survey')
model_data_obj = self.pool.get('ir.model.data')
- group_id = model_data_obj._get_id(cr, uid, 'survey', 'group_survey_user')
+ group_id = model_data_obj._get_id(cr, uid, 'survey', 'base.group_tool_user')
group_id = model_data_obj.browse(cr, uid, group_id, context=context).res_id
act_id = self.pool.get('ir.actions.act_window')
diff --git a/addons/thunderbird/__init__.py b/addons/thunderbird/__init__.py
index 4ab5861f126..68afc0cccf9 100644
--- a/addons/thunderbird/__init__.py
+++ b/addons/thunderbird/__init__.py
@@ -1,50 +1,23 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
+# 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 General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# 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 General Public License for more details.
+# GNU Affero General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
#
##############################################################################
-##############################################################################
-#
-# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
import partner
import installer
diff --git a/addons/thunderbird/__openerp__.py b/addons/thunderbird/__openerp__.py
index 4c2820c78e2..ed16b4909a9 100644
--- a/addons/thunderbird/__openerp__.py
+++ b/addons/thunderbird/__openerp__.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
+# Copyright (C) 2004-2010 Tiny SPRL (). All Rights Reserved
# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
#
# This program is free software: you can redistribute it and/or modify
@@ -22,11 +22,11 @@
{
"name" : "Thunderbird Interface",
"version" : "1.0",
- "author" : "Axelor",
- "website" : "http://www.axelor.com/",
- "depends" : ["base"],
+ "author" : "OpenERP SA & Axelor",
+ "website" : "http://www.openerp.com/",
+ "depends" : ["base","mail_gateway"],
"category" : "Generic Modules/Thunderbird interface",
- "description": '''
+ "description": """
This module is required for the thuderbird plug-in to work
properly.
@@ -35,8 +35,7 @@
a project, an analytical account, or any other object and attach selected
mail as .eml file in attachment of selected record.
- You can create new case in crm using Create Case button.
- Select a section for which you want to create case.''',
+ """,
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ['thunderbird_installer.xml',
diff --git a/addons/thunderbird/i18n/pl.po b/addons/thunderbird/i18n/pl.po
new file mode 100644
index 00000000000..3d765bd002f
--- /dev/null
+++ b/addons/thunderbird/i18n/pl.po
@@ -0,0 +1,87 @@
+# Polish 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-11-26 06:05+0000\n"
+"PO-Revision-Date: 2010-08-22 05:50+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: Polish \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: thunderbird
+#: field:tinythunderbird.partner,copy_to:0
+msgid "Copy To"
+msgstr "Kopia do"
+
+#. module: thunderbird
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
+"specjalnych !"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,description:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,reference:0
+msgid "Reference"
+msgstr "Odniesienie"
+
+#. module: thunderbird
+#: model:ir.model,name:thunderbird.model_tinythunderbird_partner
+msgid "Thunderbid mails"
+msgstr ""
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,attachments:0
+msgid "Attached Files"
+msgstr "Załączone pliki"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,res_user_id:0
+msgid "User"
+msgstr "Użytkownik"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,receiver:0
+msgid "Receiver"
+msgstr "Odbiorca"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,date:0
+msgid "Date"
+msgstr "Data"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,title:0
+msgid "Subject"
+msgstr "Temat"
+
+#. module: thunderbird
+#: code:addons/thunderbird/partner/partner.py:0
+#, python-format
+msgid "Archive"
+msgstr "Archiwum"
+
+#. module: thunderbird
+#: model:ir.module.module,shortdesc:thunderbird.module_meta_information
+msgid "Thunderbird Interface"
+msgstr "Interfejs Thunderbird"
+
+#. module: thunderbird
+#: field:tinythunderbird.partner,sender:0
+msgid "Sender"
+msgstr "Nadawca"
diff --git a/addons/thunderbird/installer.py b/addons/thunderbird/installer.py
index 82ea1c3042f..8f852e9ebff 100644
--- a/addons/thunderbird/installer.py
+++ b/addons/thunderbird/installer.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
+# 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
@@ -24,6 +24,7 @@ from osv import osv
from tools import config
import base64
+import addons
class thunderbird_installer(osv.osv_memory):
_name = 'thunderbird.installer'
@@ -31,9 +32,9 @@ class thunderbird_installer(osv.osv_memory):
def default_get(self, cr, uid, fields, context={}):
data = super(thunderbird_installer, self).default_get(cr, uid, fields, context)
- pdf_file = open(config['addons_path'] + "/thunderbird/doc/Installation Guide to OpenERP Thunderbid Plug-in.pdf", 'r')
+ pdf_file = open(addons.get_module_resource('thunderbird','doc', 'Installation Guide to OpenERP Thunderbid Plug-in.pdf'),'rb')
data['pdf_file'] = base64.encodestring(pdf_file.read())
- file = open(config['addons_path'] + "/thunderbird/plugin/tiny_plugin-2.0.xpi", 'r')
+ file = open(addons.get_module_resource('thunderbird','plugin', 'openerp_plugin.xpi'),'rb')
data['plugin_file'] = base64.encodestring(file.read())
return data
@@ -44,13 +45,27 @@ class thunderbird_installer(osv.osv_memory):
'plugin_file':fields.binary('Thunderbird Plug-in', readonly=True, help="Thunderbird plug-in file. Save as this file and install this plug-in in thunderbird."),
'pdf_file':fields.binary('Installation Manual', help="The documentation file :- how to install Thunderbird Plug-in.", readonly=True),
'description':fields.text('Description', readonly=True)
- }
+ }
_defaults = {
'thunderbird' : True,
- 'name' : 'OpenERP_plugin-2.0.xpi',
+ 'name' : 'openerp_plugin.xpi',
'pdf_name' : 'Installation Guide to OpenERP Thunderbid Plug-in.pdf',
- 'description' : """ * Save the Thunderbird plugin. \n * Follows the step to install Thunderbird plugin. \n -> 1.From Menu Bar of Thunderbird, open Tools > Add ons. \n -> 2. Click on install button and a browser window appears. \n -> 3. Select the plug-in(.xpi file) and click Ok. \n -> 4. Software installation window appears and within a short time “Install Now” button will be enabled \n -> 5. Click "Install Now". \n -> 6. Restart Thunderbird. \n Follow the steps to configure OpenERP in Thunderbird. \n -> 1. Go to Tools > OpenERP Synchronization. \n -> 2. Check data (configured by default) \n -> 3. Click Test Connection. \n -> 4. A message appears with state of your connection. \n -> 5. If your connection failed, check if your database is open, and check your data. \n -> 6. If you have a good connection, click Ok and start to archive mail in OpenERP. """
- }
+ 'description' : """* Save the Thunderbird plug-in.
+* Follow the following steps to install Thunderbird plug-in.
+ 1. From Menu Bar of Thunderbird, open Tools > Add-ons.
+ 2. Click install button and a browser window appears.
+ 3. Select the plug-in(openerp_plugin.xpi file) and click Ok.
+ 4. A software installation window appears and within a short time “Install Now” button will be enabled.
+ 5. Click "Install Now".
+ 6. Restart Thunderbird.
+* Follow the steps to configure OpenERP in Thunderbird.
+ 1. Go to Tools > OpenERP Configuration.
+ 2. Check data (configured by default).
+ 3. Click "Connect".
+ 4. A message appears with state of your connection.
+ 5. If your connection failed, check if your database is open, and check your data again.
+ 6. If your database is connected successfully, you can start to archive your e-mail in OpenERP. """
+ }
thunderbird_installer()
diff --git a/addons/thunderbird/partner/__init__.py b/addons/thunderbird/partner/__init__.py
index 5b7582a98f0..8eee7a82e06 100644
--- a/addons/thunderbird/partner/__init__.py
+++ b/addons/thunderbird/partner/__init__.py
@@ -1,50 +1,23 @@
-# -*- encoding: utf-8 -*-
+# -*- coding: utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
+# 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 General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# 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 General Public License for more details.
+# GNU Affero General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
#
##############################################################################
-##############################################################################
-#
-# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
import partner
diff --git a/addons/thunderbird/partner/partner.py b/addons/thunderbird/partner/partner.py
index 08ed6dd5262..a7795d1a602 100644
--- a/addons/thunderbird/partner/partner.py
+++ b/addons/thunderbird/partner/partner.py
@@ -1,219 +1,309 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
-# $Id$
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-##############################################################################
-#
-# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-##############################################################################
-
-import time
-import ir
-from osv import osv,fields
-import base64
-import netsvc
-from tools.translate import _
-
-class tinythunderbird_partner(osv.osv):
-
- def _links_get(self, cr, uid, context={}):
- obj = self.pool.get('res.request.link')
- ids = obj.search(cr, uid, [])
- res = obj.read(cr, uid, ids, ['object', 'name'], context)
-
- return [(r['object'], r['name']) for r in res]
-
- _name = "tinythunderbird.partner"
- _description="Thunderbid mails"
- _rec_name="sender"
- _columns = {
- 'sender':fields.char("Sender",size=128,required=True,select=True),
- 'receiver':fields.text("Receiver"),
- "copy_to":fields.text("Copy To"),
- "date":fields.date("Date",select=True),
- "title":fields.char("Subject",size=128,select=True),
- "description":fields.text("Description"),
- "reference":fields.reference("Reference", selection=_links_get, size=128),
- "res_user_id":fields.many2one("res.users","User"),
- "attachments":fields.text("Attached Files",readonly=True),
- }
- _defaults = {
- 'res_user_id':lambda obj,cr,uid,context: uid,
- 'date': lambda *a: time.strftime('%Y-%m-%d')
- }
-
- def thunderbird_mailcreate(self,cr,user,vals):
- dictcreate = dict(vals)
- import email
- header_name = email.Header.decode_header(dictcreate['name'])
- dictcreate['name'] = header_name and header_name[0] and header_name[0][0]
- add_obj=self.pool.get('res.partner.address')
- case_pool=self.pool.get(dictcreate.get('object','crm.case'))
- partner_ids=add_obj.search(cr,user,[('email','=',dictcreate['email_from'])])
- partner=add_obj.read(cr,user,partner_ids,['partner_id'])
- if partner and partner[0] and partner[0]['partner_id']:
- dictcreate.update({'partner_id':partner[0]['partner_id'][0]})
- create_id = case_pool.create(cr, user, dictcreate)
- cases=case_pool.browse(cr,user,[create_id])
- case_pool._history(cr, user, cases, _('Archive'), history=True, email=False)
- return create_id
-
- def thunderbird_createcontact(self,cr,user,vals):
- dictcreate = dict(vals)
- create_id = self.pool.get('res.partner.address').create(cr, user, dictcreate)
- return create_id
-
- def thunderbird_createpartner(self,cr,user,vals):
- dictcreate = dict(vals)
- address_obj = self.pool.get('res.partner')
- search_id = address_obj.search(cr, user,[('name','=',dictcreate['name'])])
- if search_id:
- return 0
- create_id = address_obj.create(cr, user, dictcreate)
- return create_id
-
- def thunderbird_searchobject(self,cr,user,vals):
- dictcreate = dict(vals)
- search_id = self.pool.get('ir.model').search(cr, user,[('model','=',dictcreate['model'])])
- return (search_id and search_id[0]) or 0
-
- def thunderbird_searchcontact(self,cr,user,vals):
- address_obj = self.pool.get('res.partner.address')
- search_id1 = address_obj.search(cr,user,[('name','ilike',vals)])
- search_id2 = address_obj.search(cr,user,[('email','=',vals)])
- if search_id1:
- return address_obj.name_get(cr, user, search_id1)
- elif search_id2:
- return address_obj.name_get(cr, user, search_id2)
- return []
-
- def thunderbird_tempsearch(self,cr,user,vals):
- if vals[0]:
- value = vals[0][0]
- if vals[1]:
- obj = vals[1];
- name_get=[]
- er_val=[]
- for object in obj:
- dyn_object = self.pool.get(object)
- if object == 'res.partner.address':
- search_id1 = dyn_object.search(cr,user,[('name','ilike',value)])
- search_id2 = dyn_object.search(cr,user,[('email','=',value)])
- if search_id1:
- name_get.append(object)
- name_get.append(dyn_object.name_get(cr, user, search_id1))
- elif search_id2:
- name_get.append(object)
- name_get.append(dyn_object.name_get(cr, user, search_id2))
- else:
- try:
- search_id1 = dyn_object.search(cr,user,[('name','ilike',value)])
- if search_id1:
- name_get.append(object)
- name_get.append(dyn_object.name_get(cr, user, search_id1))
- except:
- er_val.append(object)
- continue
- if len(er_val) > 0:
- name_get.append('error')
- name_get.append(er_val)
- return name_get
-
- def thunderbird_attachment(self,cr,user,vals):
- dictcreate = dict(vals)
- datas = [dictcreate['datas']]
- name = [dictcreate['name']]
- f_name = [dictcreate['datas_fname']]
- if(dictcreate['datas'].__contains__(',')):
- name = dictcreate['name'].split(',')
- datas = dictcreate['datas'].split(',')
- f_name = dictcreate['datas_fname'].split(',')
- for i in range(0,datas.__len__()):
- dictcreate['name'] = name[i]
- dictcreate['datas'] = datas[i]
- dictcreate['datas_fname'] = f_name[i]
- create_id = self.pool.get('ir.attachment').create(cr,user,dictcreate)
- return 0
-
- def thunderbird_login(self,cr,user,vals):
- dictcreate = dict(vals)
- service = netsvc.LocalService('common')
- res = service.login(dictcreate['db'],dictcreate['login'],dictcreate['passwd'])
- return res or 0
-
- def read(self, cr, user, ids, fields=None, context={}, load='_classic_read'):
- ret_read = super(tinythunderbird_partner, self).read(cr, user, ids,fields,context,load)
- attach_obj = self.pool.get('ir.attachment')
- for read_data in ret_read:
- attachments = attach_obj.search(cr,user,[('res_model','=',self._name),('res_id','=',read_data['id'])])
- attechments_data = sattach_obj.read(cr,user,attachments,['name'])
- file_names = [a['name'] for a in attechments_data]
- text_atteched = '\n'.join(file_names)
- read_data['attachments'] = text_atteched
- return ret_read
-
- def unlink(self, cr, uid, ids, context={}):
- attach_obj = self.pool.get('ir.attachment')
- attachments = attach_obj.search(cr,uid,[('res_model','=',self._name),('res_id','in',ids)])
- attach_obj.unlink(cr,uid,attachments)
- return super(tinythunderbird_partner, self).unlink(cr, uid, ids,context)
-
- def thunderbird_objectsearch(self,cr,user,vals):
- obj_list= [('crm.claim', 'Claim'), ('crm.lead','Lead'), ('crm.meeting','Metting'), ('crm.opportunity','Opportunity'), ('crm.phonecall','Phonecall'), ('crm.fundraising','Fund raising'), ('crm.helpdesk','Helpdesk')]
- object=[]
- model_obj = self.pool.get('ir.model')
- for obj in obj_list:
- if model_obj.search(cr, user, [('model', '=', obj[0])]):
- object.append(obj)
- return object
-
- def thunderbird_list_search_object(self,cr,user,vals):
- model_obj = self.pool.get('ir.model')
- object=''
- for obj in vals[0][1].split(','):
- if model_obj.search(cr, user, [('model', '=', obj)]):
- object += obj + ","
- else:
- object += "null,"
- return object
-
-tinythunderbird_partner()
+# -*- 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
+import ir
+from osv import osv,fields
+import base64
+import netsvc
+from tools.translate import _
+import email
+import tools
+import binascii
+class email_server_tools(osv.osv_memory):
+ _inherit = "email.server.tools"
+ def history_message(self, cr, uid, model, res_id, message):
+ #@param message: string of mail which is read from EML File
+ attachment_pool = self.pool.get('ir.attachment')
+ msg = self.parse_message(message)
+ attachments = msg.get('attachments', [])
+ att_ids = []
+ for attachment in attachments:
+ data_attach = {
+ 'name': attachment,
+ 'datas': binascii.b2a_base64(str(attachments.get(attachment))),
+ 'datas_fname': attachment,
+ 'description': 'Mail attachment From Thunderbird msg_id: %s' %(msg.get('message_id', '')),
+ 'res_model': model,
+ 'res_id': res_id,
+ }
+ att_ids.append(attachment_pool.create(cr, uid, data_attach))
+ return self.history(cr, uid, model, res_id, msg, att_ids)
+
+ def parse_message(self, message):
+ #TOCHECK: put this function in mailgateway
+ msg_txt = email.message_from_string(message)
+ message_id = msg_txt.get('message-id', False)
+ msg = {}
+ msg_txt = email.message_from_string(message)
+ fields = msg_txt.keys()
+ msg['id'] = message_id
+ msg['message-id'] = message_id
+
+ if 'Subject' in fields:
+ msg['subject'] = self._decode_header(msg_txt.get('Subject'))
+
+ if 'Content-Type' in fields:
+ msg['content-type'] = msg_txt.get('Content-Type')
+
+ if 'From' in fields:
+ msg['from'] = self._decode_header(msg_txt.get('From'))
+
+ if 'Delivered-To' in fields:
+ msg['to'] = self._decode_header(msg_txt.get('Delivered-To'))
+
+ if 'CC' in fields:
+ msg['cc'] = self._decode_header(msg_txt.get('CC'))
+
+ if 'Reply-to' in fields:
+ msg['reply'] = self._decode_header(msg_txt.get('Reply-To'))
+
+ if 'Date' in fields:
+ msg['date'] = self._decode_header(msg_txt.get('Date'))
+
+ if 'Content-Transfer-Encoding' in fields:
+ msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')
+
+ if 'References' in fields:
+ msg['references'] = msg_txt.get('References')
+
+ if 'In-Reply-To' in fields:
+ msg['in-reply-to'] = msg_txt.get('In-Reply-To')
+
+ if 'X-Priority' in fields:
+ msg['priority'] = msg_txt.get('X-Priority', '3 (Normal)').split(' ')[0]
+
+ if not msg_txt.is_multipart() or 'text/plain' in msg.get('Content-Type', ''):
+ encoding = msg_txt.get_content_charset()
+ body = msg_txt.get_payload(decode=True)
+ msg['body'] = tools.ustr(body, encoding)
+
+ attachments = {}
+ has_plain_text = False
+ if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''):
+ body = ""
+ for part in msg_txt.walk():
+ if part.get_content_maintype() == 'multipart':
+ continue
+
+ encoding = part.get_content_charset()
+ filename = part.get_filename()
+ if part.get_content_maintype()=='text':
+ content = part.get_payload(decode=True)
+ if filename:
+ attachments[filename] = content
+ elif not has_plain_text:
+ # main content parts should have 'text' maintype
+ # and no filename. we ignore the html part if
+ # there is already a plaintext part without filename,
+ # because presumably these are alternatives.
+ content = tools.ustr(content, encoding)
+ if part.get_content_subtype() == 'html':
+ body = tools.ustr(tools.html2plaintext(content))
+ elif part.get_content_subtype() == 'plain':
+ body = content
+ has_plain_text = True
+ elif part.get_content_maintype() in ('application', 'image'):
+ if filename :
+ attachments[filename] = part.get_payload(decode=True)
+ else:
+ res = part.get_payload(decode=True)
+ body += tools.ustr(res, encoding)
+
+ msg['body'] = body
+ msg['attachments'] = attachments
+ return msg
+email_server_tools()
+
+class thunderbird_partner(osv.osv_memory):
+ _name = "thunderbird.partner"
+ _description="Thunderbid mails"
+
+ def create_contact(self,cr,user,vals):
+ dictcreate = dict(vals)
+ # Set False value if 'undefined'. Thunerbird set 'undefined' if user did not set any value.
+ for key in dictcreate:
+ if dictcreate[key] == 'undefined':
+ dictcreate[key] = False
+ if not eval(dictcreate.get('partner_id')):
+ dictcreate.update({'partner_id': False})
+ create_id = self.pool.get('res.partner.address').create(cr, user, dictcreate)
+ return create_id
+
+ def history_message(self, cr, uid, vals):
+ dictcreate = dict(vals)
+ ref_ids = str(dictcreate.get('ref_ids')).split(';')
+ msg = dictcreate.get('message')
+ server_tools_pool = self.pool.get('email.server.tools')
+ for ref_id in ref_ids:
+ ref = ref_id.split(',')
+ model = ref[0]
+ res_id = int(ref[1])
+ server_tools_pool.history_message(cr, uid, model, res_id, msg)
+ return True
+
+ def process_email(self,cr,uid,vals):
+ dictcreate = dict(vals)
+ model = str(dictcreate.get('model'))
+ message = dictcreate.get('message')
+ return self.pool.get('email.server.tools').process_email(cr, uid, model, message, attach=True, context=None)
+
+ def search_contact(self, cr, user, vals):
+ address_obj = self.pool.get('res.partner.address')
+ partner = address_obj.search(cr, user,[('email','=',vals)])
+ res = {}
+ res1 = {}
+
+ if not partner:
+ res1 = {
+ 'email': '',
+ }
+ return res1.items()
+
+ if partner:
+ partner=partner[0]
+ data = address_obj.read(cr,user, partner)
+ res = {
+ 'partner_name': data['partner_id'] and data['partner_id'][1] or '',
+ 'contactname': data['name'] or '',
+ 'street': data['street'] or '',
+ 'street2': data['street2'] or '',
+ 'zip': data['zip'] or '',
+ 'city': data['city'] or '',
+ 'country': data['country_id'] and data['country_id'][1] or '',
+ 'state': data['state_id'] and data['state_id'][1] or '',
+ 'email': data['email'] or '',
+ 'phone': data['phone'] or '',
+ 'mobile': data['mobile'] or '',
+ 'fax': data['fax'] or '',
+ 'res_id': str(partner),
+ }
+ return res.items()
+
+ def update_contact(self,cr,user,vals):
+ dictcreate = dict(vals)
+ res_id = dictcreate.get('res_id',False)
+ result={}
+
+ if not (dictcreate.get('partner_id')):
+ dictcreate.update({'partner_id': False})
+ create_id = self.pool.get('res.partner.address').create(cr, user, dictcreate)
+ return create_id
+
+ if res_id:
+ address_obj = self.pool.get('res.partner.address')
+ address_data = address_obj.read(cr, user, int(res_id), [])
+ result = {
+ 'partner_id': address_data['partner_id'] and address_data['partner_id'][0] or False,
+ 'country_id': dictcreate['country_id'] and int(dictcreate['country_id'][0]) or False,
+ 'state_id': dictcreate['state_id'] and int(dictcreate['state_id'][0]) or False,
+ 'name': dictcreate['name'],
+ 'street': dictcreate['street'],
+ 'street2': dictcreate['street2'],
+ 'zip': dictcreate['zip'],
+ 'city': dictcreate['city'],
+ 'phone': dictcreate['phone'],
+ 'fax': dictcreate['fax'],
+ 'mobile': dictcreate['mobile'],
+ 'email': dictcreate['email'],
+ }
+ address_obj.write(cr, user,int(res_id),result )
+ return True
+
+ def create_partner(self,cr,user,vals):
+ dictcreate = dict(vals)
+ partner_obj = self.pool.get('res.partner')
+ search_id = partner_obj.search(cr, user,[('name','=',dictcreate['name'])])
+ if search_id:
+ return 0
+ create_id = partner_obj.create(cr, user, dictcreate)
+ return create_id
+
+ def search_document(self,cr,user,vals):
+ dictcreate = dict(vals)
+ search_id = self.pool.get('ir.model').search(cr, user,[('model','=',dictcreate['model'])])
+ return (search_id and search_id[0]) or 0
+
+ def search_checkbox(self,cr,user,vals):
+ if vals[0]:
+ value = vals[0][0]
+ if vals[1]:
+ obj = vals[1];
+ name_get=[]
+ er_val=[]
+ for object in obj:
+ dyn_object = self.pool.get(object)
+ if object == 'res.partner.address':
+ search_id1 = dyn_object.search(cr,user,[('name','ilike',value)])
+ search_id2 = dyn_object.search(cr,user,[('email','=',value)])
+ if search_id1:
+ name_get.append(object)
+ name_get.append(dyn_object.name_get(cr, user, search_id1))
+ elif search_id2:
+ name_get.append(object)
+ name_get.append(dyn_object.name_get(cr, user, search_id2))
+ else:
+ try:
+ search_id1 = dyn_object.search(cr,user,[('name','ilike',value)])
+ if search_id1:
+ name_get.append(object)
+ name_get.append(dyn_object.name_get(cr, user, search_id1))
+ except:
+ er_val.append(object)
+ continue
+ if len(er_val) > 0:
+ name_get.append('error')
+ name_get.append(er_val)
+ return name_get
+
+
+
+ def list_alldocument(self,cr,user,vals):
+ obj_list= [('crm.lead','Lead'),('project.issue','Project Issue'), ('hr.applicant','HR Recruitment')]
+ object=[]
+ model_obj = self.pool.get('ir.model')
+ for obj in obj_list:
+ if model_obj.search(cr, user, [('model', '=', obj[0])]):
+ object.append(obj)
+ return object
+
+ def list_allcountry(self,cr,user,vals):
+ country_list = []
+ cr.execute("SELECT id, name from res_country")
+ country_list = cr.fetchall()
+ return country_list
+
+ def list_allstate(self,cr,user,vals):
+ cr.execute("SELECT id, name from res_country_state")
+ state_country_list = cr.fetchall()
+ return state_country_list
+
+ def search_document_attachment(self,cr,user,vals):
+ model_obj = self.pool.get('ir.model')
+ object=''
+ for obj in vals[0][1].split(','):
+ if model_obj.search(cr, user, [('model', '=', obj)]):
+ object += obj + ","
+ else:
+ object += "null,"
+ return object
+
+thunderbird_partner()
diff --git a/addons/thunderbird/plugin/openerp_plugin.xpi b/addons/thunderbird/plugin/openerp_plugin.xpi
new file mode 100644
index 00000000000..c911856cd3d
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin.xpi differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome.manifest b/addons/thunderbird/plugin/openerp_plugin/chrome.manifest
new file mode 100755
index 00000000000..5fa9c2f5754
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome.manifest
@@ -0,0 +1,5 @@
+content openerp_plugin jar:chrome/openerp_plugin.jar!/content/
+overlay chrome://messenger/content/messenger.xul chrome://openerp_plugin/content/overlay.xul
+locale openerp_plugin en-US jar:chrome/openerp_plugin.jar!/locale/en-US/
+skin openerp_plugin classic/1.0 jar:chrome/openerp_plugin.jar!/skin/
+#style chrome://global/content/customizeToolbar.xul chrome://openerp_plugin/skin/overlay.css
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin.jar b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin.jar
new file mode 100644
index 00000000000..b48a4be3827
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin.jar differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/address.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/address.xul
new file mode 100644
index 00000000000..c6caf6e63c5
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/address.xul
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config.js b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config.js
new file mode 100755
index 00000000000..a9afa70e10c
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config.js
@@ -0,0 +1,158 @@
+
+function config_close()
+{
+ window.close("chrome://openerp_plugin/content/config_change.xul", "", "chrome");
+ window.open("chrome://openerp_plugin/content/config.xul", "", "chrome");
+}
+
+//set the value of the configuration fields
+function config_change_load()
+{
+ var s = getServer();
+ var a =s.split(':');
+ if (String(a)=="" || String(a)=="undefined"){
+ document.getElementById('txtcurl').value = "localhost"
+ document.getElementById('txtcport').value = "8069"
+ }
+ else
+ {
+ len = a[1];
+ var url = "";
+ for (i=0;i0){
+ var objectcharpref = '';
+ var imagecharpref = '';
+ var objcharpref = '';
+ var nodelist = document.getElementById("listObjectListBox").selectedItem.childNodes
+ var childnode = document.getElementById("listObjectListBox").childNodes
+ for(i=2;i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &develop.value;
+
+
+ &information.value;
+ &openerp.value;
+ &axelor.value;
+ &tinyerp.value;
+
+
+ Copyright © 2006-TODAY OpenERP SA All Rights Reserved.
+ OpenERP is a trademark of the OpenERP SA Company. OpenERP Web is jointly developed by OpenERP SA and Axelor.
+ Licenced under the terms of OpenERP Public License (OEPL) v1.1 (https://tiny.odoo.com/LICENSE.txt)
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config_change.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config_change.xul
new file mode 100644
index 00000000000..574fe244f2a
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/config_change.xul
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/create.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/create.xul
new file mode 100644
index 00000000000..5aa53566dfd
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/create.xul
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/createpartner.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/createpartner.xul
new file mode 100644
index 00000000000..abc23a5b430
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/createpartner.xul
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+ &name.value;
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/exportTools.js b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/exportTools.js
new file mode 100644
index 00000000000..7da3701b1f3
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/exportTools.js
@@ -0,0 +1,248 @@
+
+var MBstrBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].
+ getService(Components.interfaces.nsIStringBundleService);
+var mboximportbundle = MBstrBundleService.createBundle("chrome://openerp_plugin/locale/mboximport.properties");
+
+
+function saveMsgAsEML(msguri,file,append,uriArray,hdrArray,fileArray) {
+
+ var myEMLlistner = {
+
+ scriptStream : null,
+ emailtext : "",
+
+ QueryInterface : function(iid) {
+ if (iid.equals(Components.interfaces.nsIStreamListener) ||
+ iid.equals(Components.interfaces.nsIMsgHeaderSink) ||
+ iid.equals(Components.interfaces.nsISupports))
+ return this;
+
+ throw Components.results.NS_NOINTERFACE;
+ return 0;
+ },
+
+ onStartRequest : function (aRequest, aContext) {
+ this.scriptStream = Components.classes['@mozilla.org/binaryinputstream;1'].createInstance(Components.interfaces.nsIBinaryInputStream);
+ },
+
+ onStopRequest : function (aRequest, aContext, aStatusCode) {
+ this.scriptStream = null;
+
+ if (append) {
+ if (this.emailtext != "") {
+ var data = this.emailtext + "\n";
+ // Some Imap servers don't add to the message the "From" prologue
+ if (data && ! data.match(/^From/)) {
+ var now = new Date;
+ var prologue = "From - " + now.toString() + "\n";
+ data = prologue+data;
+ }
+ data = IETescapeBeginningFrom(data);
+ }
+ var fileClone = file.clone();
+ IETwriteDataOnDisk(fileClone,data,true,this.sub,null);
+ }
+ else {
+ if (! hdrArray)
+ var sub = getSubjectForHdr(hdr);
+ else {
+ var parts = hdrArray[IETexported].split("§][§^^§");
+ var sub = parts[4];
+ }
+
+ var data = this.emailtext.replace(/^From.+\r?\n]/, "");
+ data = IETescapeBeginningFrom(data);
+ var clone = file.clone();
+ // The name is taken from the subject "corrected"
+ clone.append(sub+".eml");
+ clone.createUnique(0,0644);
+ var time = (hdr.dateInSeconds)*1000;
+ IETwriteDataOnDisk(clone,data,false,null,time);
+ }
+ IETexported = IETexported + 1;
+ IETwritestatus(mboximportbundle.GetStringFromName("exported")+" "+IETexported+" "+mboximportbundle.GetStringFromName("msgs")+" "+IETtotal);
+
+ if (IETexported < IETtotal) {
+ if (fileArray) {
+ var nextUri = uriArray[IETexported];
+ var nextFile = fileArray[IETexported];
+ }
+ else if (! hdrArray) {
+ var nextUri = uriArray[IETexported];
+ var nextFile = file;
+ }
+ else {
+ parts = hdrArray[IETexported].split("§][§^^§");
+ var nextUri = parts[5];
+ var nextFile = file;
+ }
+ saveMsgAsEML(nextUri,nextFile,append,uriArray,hdrArray,fileArray);
+ }
+ else {
+ IETexported = 0;
+ IETtotal = 0;
+ }
+ },
+
+ onDataAvailable : function (aRequest, aContext, aInputStream, aOffset, aCount) {
+ this.scriptStream.setInputStream(aInputStream);
+ var chunk = this.scriptStream.readBytes(aCount);
+ this.emailtext += chunk;
+ }
+ };
+ var mms = messenger.messageServiceFromURI(msguri).QueryInterface(Components.interfaces.nsIMsgMessageService);
+ var hdr = mms.messageURIToMsgHdr(msguri);
+ mms.streamMessage(msguri, myEMLlistner, msgWindow, null, false, null);
+}
+
+
+function nametoascii(str) {
+ if (! gPrefBranch.getBoolPref("mboximport.export.filenames_toascii")) {
+ str = str.replace(/[\x00-\x19]/g,"_");
+ return str.replace(/[\/\\:,<>*\?\"\|]/g,"_");
+ }
+ if (str)
+ str = str.replace(/[^a-zA-Z0-9]/g,"_");
+ else
+ str = "Undefinied_or_empty";
+ return str;
+}
+
+
+function IETwriteDataOnDisk(file,data,append,name,time) {
+ var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
+ .createInstance(Components.interfaces.nsIFileOutputStream);
+ if (append) {
+ file.append(name);
+ foStream.init(file, 0x02 | 0x08 | 0x10, 0664, 0); // write, create, append
+ }
+ else
+ foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); // write, create, truncate
+ if (data)
+ foStream.write(data,data.length);
+ foStream.close();
+ var prefs = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ if (time && prefs.getBoolPref("mboximport.export.set_filetime"))
+ file.lastModifiedTime = time;
+}
+
+
+
+function IETescapeBeginningFrom(data) {
+ // Workaround to fix the "From " in beginning line problem in body messages
+ // See https://bugzilla.mozilla.org/show_bug.cgi?id=119441 and
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=194382
+ // TB2 has uncorrect beahviour with html messages
+ // This is not very fine, but I didnt' find anything better...
+ var datacorrected = data.replace(/\nFrom /g, "\n From ");
+ return datacorrected;
+}
+
+
+function getPredefinedFolder(type) {
+ var prefs = Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefBranch);
+ // type 0 = folder
+ // type 1 = all messages
+ // type 2 = selected messages
+
+ var use_dir = "mboximport.exportMSG.use_dir";
+
+ var dir_path="";
+ if(navigator.userAgent.indexOf('Linux')!= -1){
+ dir_path ="/tmp"
+ }
+ else if(navigator.userAgent.indexOf('Win')!= -1){
+ dir_path ="C:\\"
+ }
+ else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
+ dir_path ="/tmp"
+ }
+ try {
+ var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
+ localFile.initWithPath(dir_path);
+ return localFile;
+
+ }
+ catch(e) {
+ return null;
+ }
+}
+
+function getSubjectForHdr(hdr) {
+ var emlNameType = gPrefBranch.getIntPref("mboximport.exportEML.filename_format");
+ var mustcorrectname = gPrefBranch.getBoolPref("mboximport.export.filenames_toascii");
+ var subMaxLen = gPrefBranch.getIntPref("mboximport.subject.max_length")-1;
+ if (hdr.mime2DecodedSubject)
+
+ var subj = hdr.mime2DecodedSubject.substring(0, subMaxLen);
+ else
+ var subj =IETnosub;
+ subj = nametoascii(subj);
+ var dateInSec = hdr.dateInSeconds;
+ var msgDate8601string = dateInSecondsTo8601(dateInSec);
+ var key = hdr.messageKey;
+ if (emlNameType == 2) {
+ var pattern = gPrefBranch.getCharPref("mboximport.export.filename_pattern");
+ pattern = pattern.replace("%s",subj);
+ pattern = pattern.replace("%k",key);
+ pattern = pattern.replace("%d", msgDate8601string);
+ pattern = pattern.replace(/-%e/g, "");
+ pattern = pattern.replace(/[\x00-\x19]/g,"_");
+ var fname = pattern;
+ }
+ else {
+
+ var fname = msgDate8601string+"-"+subj+"-"+hdr.messageKey;
+ }
+ setFileName(fname)
+ fname = fname.replace(/[\x00-\x19]/g,"_");
+ if (mustcorrectname)
+ fname = nametoascii(fname);
+ else
+ fname = fname.replace(/[\/\\:,<>*\?\"\|]/g,"_");
+ return fname;
+}
+
+function dateInSecondsTo8601(secs) {
+ var addTime = gPrefBranch.getBoolPref("mboximport.export.filenames_addtime");
+ var msgDate = new Date(secs*1000);
+ var msgDate8601 = msgDate.getFullYear();
+ if (msgDate.getMonth() < 9)
+ var month = "0"+(msgDate.getMonth()+1);
+ else
+ var month = msgDate.getMonth()+1;
+ if (msgDate.getDate() < 10)
+ var day = "0"+ msgDate.getDate();
+ else
+ var day = msgDate.getDate();
+ var msgDate8601string = msgDate8601.toString()+month.toString()+day.toString();
+ if (addTime && gPrefBranch.getIntPref("mboximport.exportEML.filename_format") == 2) {
+ if (msgDate.getHours() < 10)
+ var hours = "0"+msgDate.getHours();
+ else
+ var hours = msgDate.getHours();
+ if (msgDate.getMinutes() < 10)
+ var min = "0"+msgDate.getMinutes();
+ else
+ var min = msgDate.getMinutes();
+ msgDate8601string += "-"+ hours.toString() + min.toString();
+ }
+ return msgDate8601string;
+}
+
+function IETwritestatus(text) {
+ document.getElementById("statusText").setAttribute("label", text);
+ var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+ var delay = prefs.getIntPref("mboximport.delay.clean_statusbar");
+ if (delay > 0)
+ window.setTimeout(function(){IETdeletestatus(text);}, delay);
+}
+
+function IETdeletestatus(text) {
+ if (document.getElementById("statusText").getAttribute("label") == text)
+ document.getElementById("statusText").setAttribute("label", "");
+}
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/loaddata.js b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/loaddata.js
new file mode 100755
index 00000000000..93d21f56f5c
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/loaddata.js
@@ -0,0 +1,134 @@
+//gives the preference branch instance
+var preferenceBranch = getPref();
+
+//returns the selected checkbox for searching
+function getnamesearch()
+{
+ var checkboxlist = [];
+ var j=0;
+ var objectlist = preferenceBranch.getCharPref("object").split(',');
+ if (objectlist[0]!=''){
+ for (var i=1;i<=objectlist.length;i++)
+ {
+ if(document.getElementById('cbx'+i) && document.getElementById('cbx'+i).checked == true)
+ {
+ checkboxlist[j] = objectlist[i-1] //document.getElementById('cbx'+i).label;
+ j++;
+ }
+ }
+ }
+ return checkboxlist;
+}
+//function to set the text value for the selected partner for contact creation
+function selectPartner(){
+ if(document.getElementById('listPartnerBox').selectedItem){
+ var listselectedItem = document.getElementById('listPartnerBox').selectedItem;
+ var value = listselectedItem.firstChild.getAttribute('label');
+ setPartnerId(listselectedItem.value);
+ document.getElementById('txtselectpartner').setAttribute('value',value);
+ window.opener.document.getElementById('txtselectpartner').setAttribute('value',value);
+ }
+ else{
+ window.opener.document.getElementById('txtselectpartner').setAttribute('value','');
+ }
+}
+
+//function for the intialization procedure //used while loading and unloading of the window
+var myPrefObserver =
+{
+ //set the intial value of the email for the text field in plugin window and also loads the listbox of objects with image
+ loaddata: function()
+ {
+ setTimeout("listSearchDocumentAttachment()", 0)
+ },
+
+ //set the initial value of name and email field of create contact window
+ createContact: function()
+ {
+ document.getElementById("txtname").value = getSenderName();
+ document.getElementById("txtemail").value = getSenderEmail();
+ document.getElementById("country").value = getAllCountry();
+ document.getElementById("state").value = getAllState();
+ setPartnerId(0);
+ },
+
+ //sets the value of email information in preferences and adds observer for the window
+ register: function()
+ {
+ appendDbList()
+ preferenceBranch.addObserver("", myPrefObserver, false);
+ document.getElementById("txturl").value = getServer();
+ var s = document.getElementById('txturl').value;
+ var a =s.split(':');
+ setPort(a[a.length-1]);
+ document.getElementById("txtusername").value = getUsername();
+ document.getElementById("txtpassword").value = getPassword();
+ document.getElementById("DBlist_text").value = getDbName();
+ if(getPref().getCharPref("object") != ''){
+ var objectlist = getPref().getCharPref("object").split(',');
+ var imagelist = getPref().getCharPref("imagename").split(',');
+ var obj = getPref().getCharPref("listobject").split(',');
+ if(objectlist.length>0){
+ for(i=0;i 2)
+ {
+ var emlsArray = gFolderDisplay.selectedMessages;
+ }
+ else
+ {
+ var emlsArray = GetSelectedMessages();
+ }
+
+ IETtotal = emlsArray.length;
+ IETexported = 0;
+ var msguri = emlsArray[0];
+
+ if(GetNumSelectedMessages() < 1 || GetNumSelectedMessages() > 1){
+ alert("You must select only one mail to archive");
+ return false
+ }
+
+ //gives the selected email uri
+ var messageUri= gDBView.URIForFirstSelectedMessage;
+
+ var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
+
+ //gives the selected email object
+ var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
+
+
+ if (version > 2)
+ {
+ m_uri = message.folder.getUriForMsg(message);
+ saveMsgAsEML(m_uri,file,false,emlsArray,null);
+ }
+ else
+ {
+ saveMsgAsEML(msguri,file,false,emlsArray,null);
+ }
+
+ //gives the received email date
+ var stdate = new Date(message.date / 1000);
+
+ //functionality to split the author name and email
+ if(message.author.charAt(0) == '"'){
+ sendername = message.author.split('"')[1].split('"')[0];
+ }
+ else if(message.author.indexOf('<')!=-1){
+ sendername = message.author.split('<')[0];
+ }
+ else{
+ sendername = message.author;
+ }
+ if(message.author.indexOf('<')!=-1){
+ senderemail = message.author.split('<')[1].split('>')[0];
+ }
+ else{
+ senderemail = message.author
+ }
+
+ //gives the receiver email address
+ receiveremail = message.mime2DecodedRecipients;
+
+ //parsing the received date in the particular format
+ receivedDate = stdate.getFullYear()+'/'+(stdate.getMonth()+1)+'/'+stdate.getDate();
+
+ //gives the selected email subject
+ subject = message.subject;
+
+ //gives the selected email cclist
+ cclist = message.ccList;
+
+ //gives the selected email message body in text format
+ if (version > 2)
+ {
+ var listener = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance(Components.interfaces.nsISyncStreamListener);
+ var uri = message.folder.getUriForMsg(message);
+ messenger.messageServiceFromURI(uri)
+ .streamMessage(uri, listener, null, null, false, "");
+ var folder = message.folder;
+ messagebody = folder.getMsgTextFromStream(listener.inputStream,message.Charset,65536,32768,false,true,{})
+ }
+ else
+ {
+ messagebody = getMessageBrowser().docShell.contentViewer.DOMDocument.body.textContent;
+ }
+ //gives the selected email message body in html format
+ msghtmlbody = ""// getMessageBrowser().docShell.contentViewer.DOMDocument.body.innerHTML;
+
+ //set the initial information for the selected email
+ setSenderEmail(senderemail);
+ setSenderName(sendername);
+ setReceiverEmail(receiveremail);
+ setSubject(subject);
+ setReceivedDate(receivedDate);
+ setCCList(cclist);
+ setMessageBody(messagebody);
+ getPref().setCharPref('displayName','');
+ getPref().setCharPref('attachmentdata','');
+ name = [];
+ test = [];
+ getPref().setCharPref('attachmentlength',currentAttachments.length);
+ //retrieving the information for the selected email's attachment
+ if(currentAttachments.length > 0){
+ for(i=0;i 1){
+ alert("You must select only one mail For Open Contact Detail");
+ return false
+ }
+
+ //gives the selected email uri
+ var messageUri= gDBView.URIForFirstSelectedMessage;
+
+ var messenger = Components.classes['@mozilla.org/messenger;1'].createInstance(Components.interfaces.nsIMessenger);
+
+ //gives the selected email object
+ var message = messenger.messageServiceFromURI(messageUri).messageURIToMsgHdr(messageUri);
+
+ //functionality to split the author name and email
+ if(message.author.charAt(0) == '"'){
+ sendername = message.author.split('"')[1].split('"')[0];
+ }
+ else if(message.author.indexOf('<')!=-1){
+ sendername = message.author.split('<')[0];
+ }
+ else{
+ sendername = message.author;
+ }
+ if(message.author.indexOf('<')!=-1){
+ senderemail = message.author.split('<')[1].split('>')[0];
+ }
+ else{
+ senderemail = message.author
+ }
+
+ //set the initial information for the selected email
+ setSenderEmail(senderemail);
+ setSenderName(sendername);
+ setPartnerName("");
+ setStreet("");
+ setStreet2("");
+ setZipCode("");
+ setCity("");
+ setOfficenumber("");
+ setFax("");
+ setMobilenumber("");
+
+ if (getmodule_install() == "no")
+ {
+ alert("Please install the thunderbird module on your '" + getDbName() +"' database and try again !");
+ return false
+ }
+ window.open("chrome://openerp_plugin/content/address.xul", "", "chrome, resizable=yes");
+
+}
+
+//function to open the configuration window
+var Config = {
+ onLoad: function() {
+ // initialization code
+ this.initialized = true;
+ },
+
+ onMenuItemCommand: function() {
+ window.open("chrome://openerp_plugin/content/config.xul", "", "chrome");
+ }
+};
+window.addEventListener("load", function(e) { Config.onLoad(e); }, false);
+
+//function to open the plugin window for searching the records for a particular object
+var Plugin = {
+ onLoad: function() {
+ this.initialized = true;
+ },
+
+ onMenuItemCommand: function() {
+ window.open("chrome://openerp_plugin/content/plugin.xul", "", "chrome, resizable=yes");
+ }
+};
+window.addEventListener("load", function(e) { Plugin.onLoad(e); }, false);
+
+//function to open the window for creating a new partner contact
+var Create = {
+ onLoad: function(){
+ this.initialized=true;
+ },
+
+ onMenuItemCommand: function(){
+ window.open("chrome://openerp_plugin/content/create.xul", "", "chrome");
+ }
+};
+window.addEventListener("load", function(e) { Create.onLoad(e); }, false);
+
+var Address = {
+ onLoad: function(){
+ this.initialized=true;
+ },
+
+ onMenuItemCommand: function(){
+ open_contact();
+ searchContact();
+ }
+};
+
+
+//function to open the window for selecting the partner for a new contact creation
+var Select = {
+ onLoad: function(){
+ this.initialized=true;
+ },
+
+ onMenuItemCommand: function(){
+ window.open("chrome://openerp_plugin/content/selectpartner.xul", "", "chrome");
+ }
+};
+
+var CreatePartner = {
+ onLoad: function(){
+ this.initialized=true;
+ },
+
+ onMenuItemCommand: function(){
+ window.open("chrome://openerp_plugin/content/createpartner.xul", "", "chrome");
+ }
+};
+window.addEventListener("load", function(e) { CreatePartner.onLoad(e); }, false);
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/overlay.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/overlay.xul
new file mode 100755
index 00000000000..c48dc0d70b9
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/overlay.xul
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/plugin.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/plugin.xul
new file mode 100644
index 00000000000..227c69802e6
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/plugin.xul
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Documents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/selectpartner.xul b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/selectpartner.xul
new file mode 100644
index 00000000000..f0c44cd6555
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/selectpartner.xul
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/static.js b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/static.js
new file mode 100644
index 00000000000..c44c5bf7bb4
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/static.js
@@ -0,0 +1,19 @@
+
+//function to check all the checkbox
+function selectAllCheckbox()
+{
+ var objectlist = preferenceBranch.getCharPref("object").split(',');
+ if(objectlist.length == 1 && objectlist[0]==''){
+ return false;
+ }
+ for (var i=1;i<=objectlist.length;i++)
+ {
+ var checkboxobj = document.getElementById('cbx'+i);
+ if (!checkboxobj)
+ continue
+ if(document.getElementById('cbxselectall').checked == true)
+ checkboxobj.checked = true;
+ else
+ checkboxobj.checked = false;
+ }
+}
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/tiny_xmlrpc.js b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/tiny_xmlrpc.js
new file mode 100755
index 00000000000..0ff795c1f3f
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/content/tiny_xmlrpc.js
@@ -0,0 +1,2064 @@
+/************************************************************
+* 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 .
+***************************************************************/
+
+var xmlRpcClient;
+
+//Service name on server like /common,/db etc...
+var strServerService;
+
+//temporary variables
+var strobject;
+
+//Array
+var arrDbList = new Array();
+var arrPartnerList = new Array();
+var arrFinalList = new Array();
+
+
+var contentType = new Array();
+var uri = new Array();
+var url = new Array();
+var name = new Array();
+var attach_eml ="no";
+var popup_display = "yes"
+var rpc= {
+ servers: {},
+ addserver: function(name,ip,port,path) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ this.servers[name]= {
+ ip: ip,
+ port: port,
+ path: path,
+ avaible: true,
+ sock: Components.classes['@mozilla.org/xml-rpc/client;1'].createInstance(Components.interfaces.nsIXmlRpcClient)};
+ },
+ getany: function(rpcval,n) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var t = ['PRUint8','PRUint16','PRInt16','PRInt32','PRBool','Char','CString','Float','Double','PRTime','InputStream','Array','Dictionary'];
+ for (var i=0; i0)
+ for (var i=0; i"+params[0];
+ msg+= "\n3. Your server may not be launched or connected to the network.";
+ }
+ func_out([false,'error '+status,msg]);
+ } };
+ var p = [];
+ for (var i=0; i 0)
+ {
+ setDBList("true")
+ var label = document.getElementById("database_option");
+ var vbox = document.createElement("vbox");
+ var hbox = document.createElement("hbox");
+ var label1 = document.createElement("label");
+ label1.setAttribute("width","80");
+ label1.setAttribute("value","Database:");
+ label1.setAttribute("id","label111");
+ var menu1 = document.createElement("menulist");
+ var menupopup1 = document.createElement("menupopup");
+ menu1.setAttribute("id","DBlist");
+ menu1.setAttribute("width","300");
+ var menuitem1 = document.createElement("menuitem");
+ database = arrDbList[0]
+ menuitem1.setAttribute("label", arrDbList[0]);
+ menuitem1.setAttribute("value", arrDbList[0]);
+ menupopup1.appendChild(menuitem1);
+ menu1.appendChild(menupopup1)
+ hbox.appendChild(label1);
+ hbox.appendChild(menu1);
+ vbox.appendChild(hbox);
+ label.appendChild(vbox);
+
+ var d = document.getElementById("first");
+ var d_nested = document.getElementById("lbldb_list1");
+ var throwawayNode = d.removeChild(d_nested);
+ var d_nested = document.getElementById("DBlist_text");
+ var throwawayNode = d.removeChild(d_nested);
+
+
+ }
+ else
+ {
+ setDBList("false")
+ }
+ // Loop through the results, adding items to the list
+ if (count)
+ {
+ const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+ var popup = document.getElementById("DBlist"); // a element
+ var arrsec=new Array()
+ for (var i=0;i element
+ for (i=0;i element
+ for (i=0;i element
+ for (i=0;i0){
+ temp.AppendElement(test1);
+ }
+ return temp;
+}
+
+//function to search and fillup section selection box
+function createMenuItem(aLabel) {
+ const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+ var item = document.createElementNS(XUL_NS, "menuitem"); // create a new XUL menuitem
+ item.setAttribute("label", aLabel[1]);
+ item.setAttribute("value", aLabel[0]);
+ return item;
+}
+
+
+function listinstallmodule( result ) {
+ if ( rpc.onfault( result ) )
+ {
+ setmodule_install('no')
+ }
+}
+
+function module_install()
+{
+ setmodule_install("yes")
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ strDbName = branchobj.getCharPref("serverdbname");
+ struid = branchobj.getIntPref('userid');
+ strpass = branchobj.getCharPref("password");
+ strmethod = 'search';
+ strobj = 'thunderbird.partner'; // TOFIX: Find module 'thunderbird' into 'module.module' model.
+ var temp = new Array()
+ server=getServer()
+ port=getPort()
+ basicList=getBasicList()
+ rpc.addserver('object',basicList[3] , basicList[4],'/xmlrpc/object');
+ srcids=rpc.ask( 'object', 'execute', [basicList[0],basicList[1],basicList[2],strobj,strmethod,[]],listinstallmodule)
+}
+
+
+var listSearchContactHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var sendername = getSenderEmail();
+ var arrIdList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ var count = arrIdList.Count();
+ for (i = 0; i < count; i++) {
+ var strlResult = arrIdList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ var strlSearchResult = strlResult.QueryElementAt(0, Components.interfaces.nsISupportsCString);
+ var strlSearchResultValue = strlResult.QueryElementAt(1, Components.interfaces.nsISupportsCString);
+ if(strlSearchResult=="partner_name"){
+ setPartnerName(strlSearchResultValue);
+ var t = getPartnerName();}
+
+ if(strlSearchResult=="contactname"){
+ setSenderName(strlSearchResultValue);
+ var t = getSenderName();}
+
+ if(strlSearchResult=="street"){
+ setStreet(strlSearchResultValue);
+ var t = getStreet();}
+
+ if(strlSearchResult=="street2"){
+ setStreet2(strlSearchResultValue);
+ var t = getStreet2();}
+
+ if(strlSearchResult=="zip"){
+ setZipCode(strlSearchResultValue);
+ var t = getZipCode();}
+
+ if(strlSearchResult=="city"){
+ setCity(strlSearchResultValue);
+ var t = getCity();}
+
+ if(strlSearchResult=="phone"){
+ setOfficenumber(strlSearchResultValue);
+ var t = getOfficenumber();}
+
+ if(strlSearchResult=="fax"){
+ setFax(strlSearchResultValue);
+ var t = getFax();}
+
+ if(strlSearchResult=="mobile"){
+ setMobilenumber(strlSearchResultValue);
+ var t = getMobilenumber();}
+
+ if(strlSearchResult=="email" && strlSearchResultValue!=''){
+ setSenderEmail(strlSearchResultValue);
+ var t = getSenderEmail();}
+
+ if(strlSearchResult=="res_id"){
+ setResourceId(strlSearchResultValue);
+ var t = getResourceId();}
+ }
+ },
+ onFault: function (client, ctxt, fault) {
+
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+
+ }
+
+}
+var listSearchContactdetailHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ // var sendername = getSenderEmail();
+ var sendername = document.getElementById("txtemail").value
+ var arrIdList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ var count = arrIdList.Count();
+ for (i = 0; i < count; i++) {
+ var strlResult = arrIdList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ var strlSearchResult = strlResult.QueryElementAt(0, Components.interfaces.nsISupportsCString);
+ var strlSearchResultValue = strlResult.QueryElementAt(1, Components.interfaces.nsISupportsCString);
+ if(strlSearchResult=="email" && strlSearchResultValue=='')
+ {
+ alert("Contact is not Available")
+ document.getElementById("txtemail").value = sendername;
+ }
+ if(strlSearchResult=="partner_name"){
+ document.getElementById("txtname").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="contactname"){
+ document.getElementById("txtcontactname").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="street"){
+ document.getElementById("txtstreet").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="street2"){
+ document.getElementById("txtstreet2").value =strlSearchResultValue;}
+ if(strlSearchResult=="zip"){
+ document.getElementById("txtzip").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="city"){
+ document.getElementById("txtcity").value =strlSearchResultValue;}
+ if(strlSearchResult=="phone"){
+ document.getElementById("txtoffice").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="fax"){
+ document.getElementById("txtfax").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="mobile"){
+ document.getElementById("txtmobile").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="email"&& strlSearchResultValue!=''){
+ document.getElementById("txtemail").value =strlSearchResultValue;}
+
+ if(strlSearchResult=="res_id"){
+ setResourceId(strlSearchResultValue);
+ var t = getResourceId();}
+
+ }
+ },
+ onFault: function (client, ctxt, fault) {
+
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+
+ }
+
+}
+
+function searchContactdetail()
+{
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ arrFinalList = [];
+ var xmlRpcClient = getXmlRpc();
+ var cmbSearchList = document.getElementById('listSearchBox');
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struid = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struid.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'search_contact';
+ var strname = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strname.data =document.getElementById("txtemail").value;
+ xmlRpcClient.asyncCall(listSearchContactdetailHandler,cmbSearchList,'execute',[ strDbName,struid,strpass,strobj,strmethod,strname ],6);
+}
+
+//xmlrpc request handler for getting the search results for the particular selected check box object
+var listSearchCheckboxHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var arrMethodList = result.QueryInterface(Components.interfaces.nsISupportsArray);
+ // Set the number of results
+ var count = arrMethodList.Count();
+ var close=0;
+ if(count == 0 && popup_display != "no"){
+ alert("No Records Found");
+ return false;
+ }
+ else if(count ==2 )
+ {
+ if (arrMethodList.QueryElementAt(0, Components.interfaces.nsISupportsCString)=="error")
+ {
+ close =1;
+ }
+ }
+ popup_display = "yes"
+ // Loop through the results, adding items to the list
+ var arr1 = new Array();
+ var arr2 = new Array();
+ var flag1 = 0;
+ var flag2 = 0;
+ var er ="";
+ var er_val =new Array();
+ for (i = 0; i < count; i++)
+ {
+ if(i%2==0){
+ if (arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsCString)=="error")
+ {
+ er = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsCString);
+ er_val[0] =arrMethodList.QueryElementAt(i+1, Components.interfaces.nsISupportsArray);
+ i +=1;
+ continue;
+ }
+ arr1[flag1] = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsCString);
+ flag1++;
+ }
+ else{
+ arr2[flag2] = arrMethodList.QueryElementAt(i, Components.interfaces.nsISupportsArray);
+ flag2++;
+ }
+ }
+ if (er)
+ {
+ var arrSearchList1 = new Array();
+ for(j=0;j element
+
+ if (String(popup) != "null"){
+ object=popup.value;
+ if (object == undefined) { alert("select At Least one Document !")}
+ else{
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struids.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'process_email';
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var eml_string = parse_eml()
+ var a = ['model', 'message'];
+ var b = [object, eml_string];
+ var arrofarr = dictcontact(a,b);
+ xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+ alert("Document Created Successfully.");
+ }
+ window.close();
+ }
+ else
+ {
+ alert(" select At Least one Document !")
+ }
+}
+
+
+//xmlrpc request handler for creating a new contact
+var listCreateContactHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var createId = result.QueryInterface(Components.interfaces.nsISupportsPRInt32);
+ setContactId(createId);
+ alert("Contact Created Successfully.");
+ window.close();
+ },
+ onFault: function (client, ctxt, fault) {
+
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+
+ }
+}
+
+var listUpdateContactHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ alert("Contact Update Successfully.");
+ window.close();
+ var partnerId = result.QueryInterface(Components.interfaces.nsISupportsPRInt32);
+ setResourceId(partnerId);
+ window.close();
+ },
+ onFault: function (client, ctxt, fault) {
+
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+
+ }
+}
+
+//function to create a new contact
+function createContact(){
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struids.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'create_contact';
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var a = ['partner_id','name','street','street2','zip','city','country_id','state_id','phone','fax','mobile','email'];
+ var b = [getPartnerId(),getSenderName(),document.getElementById("txtstreet").value,document.getElementById("txtstreet2").value,document.getElementById("txtzip").value, document.getElementById("txtcity").value,document.getElementById("country").value,document.getElementById("state").value,document.getElementById("txtoffice").value,document.getElementById("txtfax").value,document.getElementById("txtmobile").value,document.getElementById("txtemail").value];
+ var arrofarr = dictcontact(a,b);
+ xmlRpcClient.asyncCall(listCreateContactHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+}
+
+function UpdateContact(){
+ var branchobj = getPref();
+ setServerService('xmlrpc/object');
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var xmlRpcClient = getXmlRpc();
+ var strDbName = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strDbName.data = branchobj.getCharPref("serverdbname");
+ var struids = xmlRpcClient.createType(xmlRpcClient.INT,{});
+ struids.data = branchobj.getIntPref('userid');
+ var strpass = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strpass.data = branchobj.getCharPref("password");
+ var strmethod = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strmethod.data = 'update_contact';
+ var strobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
+ strobj.data = 'thunderbird.partner';
+ var a = ['res_id','partner_id','name','street','street2','zip','city','country_id','state_id','phone','fax','mobile','email'];
+ var b = [getResourceId(),getPartnerName(),document.getElementById("txtcontactname").value,document.getElementById("txtstreet").value,document.getElementById("txtstreet2").value,document.getElementById("txtzip").value, document.getElementById("txtcity").value,document.getElementById("country").value,document.getElementById("state").value,document.getElementById("txtoffice").value,document.getElementById("txtfax").value,document.getElementById("txtmobile").value,document.getElementById("txtemail").value];
+ var arrofarr = dictcontact(a,b);
+ xmlRpcClient.asyncCall(listUpdateContactHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+}
+
+//xmlrpc request handler for creating a attachment record
+var listAttachHandler = {
+ onResult: function(client, context, result) {
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
+ var createId = result.QueryInterface(Components.interfaces.nsISupportsPRInt32);
+
+ },
+ onFault: function (client, ctxt, fault) {
+
+ },
+
+ onError: function (client, ctxt, status, errorMsg) {
+
+ }
+}
+
+
+//function to encode the string into base64
+var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split("");
+function base64_encode (s)
+ {
+ // the result/encrypted string, the padding string, and the pad count
+ var r = ""; var p = ""; var c = s.length % 3;
+
+ // add a right zero pad to make this string a multiple of 3 characters
+ if (c > 0) { for (; c < 3; c++) { p += '='; s += "\0"; } }
+
+ // increment over the length of the string, three characters at a time
+ for (c = 0; c < s.length; c += 3) {
+
+ // we add newlines after every 76 output characters, according to the MIME specs
+ if (c > 0 && (c / 3 * 4) % 76 == 0) { r += "\r\n"; }
+
+ // these three 8-bit (ASCII) characters become one 24-bit number
+ var n = (s.charCodeAt(c) << 16) + (s.charCodeAt(c+1) << 8) + s.charCodeAt(c+2);
+
+ // this 24-bit number gets separated into four 6-bit numbers
+ n = [(n >>> 18) & 63, (n >>> 12) & 63, (n >>> 6) & 63, n & 63];
+
+ // those four 6-bit numbers are used as indices into the base64 character list
+ r += base64chars[n[0]] + base64chars[n[1]] + base64chars[n[2]] + base64chars[n[3]];
+
+ // add the actual padding string, after removing the zero pad
+ } return r.substring(0, r.length - p.length) + p;
+ }
+
+//function to encode the string into base64
+var keyStr = "ABCDEFGHIJKLMNOP" +
+ "QRSTUVWXYZabcdef" +
+ "ghijklmnopqrstuv" +
+ "wxyz0123456789+/" +
+ "="+"-_.!~*'()";
+
+function encode64(input) {
+var output = "";
+var chr1, chr2, chr3 = "";
+var enc1, enc2, enc3, enc4 = "";
+var i = 0;
+
+do {
+ chr1 = input.charCodeAt(i++);
+ chr2 = input.charCodeAt(i++);
+ chr3 = input.charCodeAt(i++);
+
+ enc1 = chr1 >> 2;
+ enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+ enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
+ enc4 = chr3 & 63;
+
+ if (isNaN(chr2)) {
+ enc3 = enc4 = 64;
+ } else if (isNaN(chr3)) {
+ enc4 = 64;
+ }
+
+ output = output +
+ keyStr.charAt(enc1) +
+ keyStr.charAt(enc2) +
+ keyStr.charAt(enc3) +
+ keyStr.charAt(enc4);
+ chr1 = chr2 = chr3 = "";
+ enc1 = enc2 = enc3 = enc4 = "";
+} while (i < input.length);
+
+return output;
+}
+
+
+//function to read the contents of the attachment files from the temp folder
+function createInstance(name,test){
+ var encoded_string = '';
+ var file_name = ''
+
+ for(i=0;i element
+ object=popup.value;
+ resobj.data = object;
+ var a = ['object'];
+ var b = [getPref().getCharPref("object")];
+ var arrofarr = dictcontact(a,b);
+ xmlRpcClient.asyncCall(listsearchAttachmentHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
+}
+
+
+//function to create a new attachment record
+
+function win_close()
+{
+ var fpath =""
+ if(navigator.userAgent.indexOf('Linux')!= -1){
+ fpath ="/tmp/"
+ }
+ else if(navigator.userAgent.indexOf('Win')!= -1){
+ fpath ="C:\\"
+ }
+ else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
+ fpath ="/tmp/"
+ }
+ try
+ {
+ name = fpath + getFileName() +".eml"
+
+ var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
+ file.initWithPath( name );
+ file.remove(true);
+ window.close();
+ }
+ catch(err)
+ {
+ window.close();
+ }
+}
+
+function attachmentWidnowOpen(msg)
+{
+
+ if (msg=="create")
+ {
+ var popup = document.getElementById("section").selectedItem; // a element
+ if (String(popup) != "null"){
+ object=popup.value;
+ if (object=="" || object == undefined) { alert("select at least one document !")}
+ else{
+ create_archivemail()
+ }
+ }
+ else
+ {
+ alert("select at least one Document !")
+ }
+ }
+ else if (msg=="upload")
+ {
+ if(document.getElementById('listSearchBox').selectedItem)
+ {
+ upload_archivemail()
+ }
+ else{
+ alert("Please select at least one record");
+ }
+ }
+}
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/address.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/address.dtd
new file mode 100644
index 00000000000..3b5b95e2a32
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/address.dtd
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config.dtd
new file mode 100755
index 00000000000..23cd94efa05
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config.dtd
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config_change.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config_change.dtd
new file mode 100644
index 00000000000..5ec72d0b250
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/config_change.dtd
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/create.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/create.dtd
new file mode 100644
index 00000000000..181d408a3e9
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/create.dtd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/createpartner.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/createpartner.dtd
new file mode 100644
index 00000000000..67b32b32907
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/createpartner.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/mboximport.properties b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/mboximport.properties
new file mode 100644
index 00000000000..33845423f7d
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/mboximport.properties
@@ -0,0 +1,31 @@
+nomboxfile=není mbox souborem
+folderexists=Není možné importovat: složka se stejným názvem již existuje
+fileexists=Není možné importovat: soubor se stejným názvem již existuje
+nowritable=Není možné importovat: nemáte právo zápisu do složky
+exportOK=Export byl úspěšně dokončen
+isNewsgroup=Tato funkce není dostupná: export složky z IMAP účtů nebo diskuzních \nskupin je možný, pouze pokud je nastavené čtení v režimu Offline
+nofolder=Nebyla vybrána žádná cílová složka
+badfolder=Není možné importovat do této složky (typ IMAP nebo diskuzní skupina)
+exportAccount=Export všech složek
+exportFolder=Export složky
+filePickerImport=Výběr souboru k importu
+filePickerExport=Výběr cílové složky
+extensions.{3ed8cc52-86fc-4613-9026-c1ef969da4c3}.description=Umožňuje import a export souborů ve formátu mbox a eml
+virtualfolder=Toto je virtuální složka. Pro export jejich\nzpráv musíte tyto zprávy nejdříve\nzkopírovat do normální složky.
+searchdir=Vyberte složku, ve které budou vyhledány mbox soubory
+confirmimport=Chcete importovat soubor?
+endscan=Konec prohledávání složek
+internalerror=Není možné provést import, protože nastala neznámá chyba
+exportstart=Probíhá export, čekejte prosím...
+exported=Exportovalo se
+msgs=zpráv z
+nosubjectmsg=bez_predmetu
+messsubdir=zprávy
+badfolder2=Není možné importovat do této složky (IMAP nebo diskuzní skupina nebo virtuální složka)
+temp_error=Není možné importovat: nastala chyba při vytváření dočasného souboru
+importEMLstart=Pobíhá import, čekejte prosím...
+numEML=Naimportovány eml soubory:
+CSVseparator=,
+noEML=No eml file found in this directory
+backupWarning=During this operation, the program could be\nunresponsive for some minutes.\nDo you want to go on?\n
+noWaring=Don't show again this warning
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/overlay.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/overlay.dtd
new file mode 100755
index 00000000000..a2345f0aaaf
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/overlay.dtd
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/plugin.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/plugin.dtd
new file mode 100644
index 00000000000..ed26728b0d0
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/plugin.dtd
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/selectpartner.dtd b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/selectpartner.dtd
new file mode 100644
index 00000000000..e6a62c16003
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/locale/en-US/selectpartner.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Account.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Account.png
new file mode 100644
index 00000000000..b13f2b0f523
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Account.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Archive.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Archive.png
new file mode 100644
index 00000000000..5aa6a958d37
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Archive.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Case.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Case.png
new file mode 100644
index 00000000000..9b950b8ea9d
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Case.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Contact.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Contact.png
new file mode 100644
index 00000000000..9bd6f9f6059
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Contact.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Create.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Create.png
new file mode 100644
index 00000000000..1ab240c32cb
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Create.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Error.gif b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Error.gif
new file mode 100644
index 00000000000..38c3523781b
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Error.gif differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Invoice.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Invoice.png
new file mode 100644
index 00000000000..4551107ec3b
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Invoice.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Move.gif b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Move.gif
new file mode 100644
index 00000000000..401bf861213
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Move.gif differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveDown.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveDown.png
new file mode 100644
index 00000000000..3761ff1e747
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveDown.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveLeft.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveLeft.png
new file mode 100644
index 00000000000..031d7532673
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/MoveLeft.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT.png
new file mode 100644
index 00000000000..373464bd53e
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT1.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT1.png
new file mode 100644
index 00000000000..2daac224a51
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/NEWT1.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Partner.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Partner.png
new file mode 100644
index 00000000000..c661339598e
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Partner.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Product.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Product.png
new file mode 100644
index 00000000000..51451e422ae
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Product.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Project.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Project.png
new file mode 100644
index 00000000000..0f8ea2af8f5
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Project.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Sale.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Sale.png
new file mode 100644
index 00000000000..1b0b44f890e
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Sale.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Search.gif b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Search.gif
new file mode 100644
index 00000000000..b29c3cf1054
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Search.gif differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Success.gif b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Success.gif
new file mode 100644
index 00000000000..fb3bff729c5
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Success.gif differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Task.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Task.png
new file mode 100644
index 00000000000..52056b1e713
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/Task.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/developped_by.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/developped_by.png
new file mode 100644
index 00000000000..54dc465b421
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/developped_by.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/document-new.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/document-new.png
new file mode 100755
index 00000000000..bdbe31c4bff
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/document-new.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/openerp-icon.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/openerp-icon.png
new file mode 100644
index 00000000000..e2b45b52211
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/openerp-icon.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/overlay.css b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/overlay.css
new file mode 100755
index 00000000000..1f71b8fdcbe
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/overlay.css
@@ -0,0 +1,3 @@
+menuitem#tiny-plugin {
+ color: red !important;
+}
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/partner.png b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/partner.png
new file mode 100644
index 00000000000..37b29e13382
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/partner.png differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/perform.gif b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/perform.gif
new file mode 100644
index 00000000000..16cc3873858
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/perform.gif differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/tinyerp-icon.ico b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/tinyerp-icon.ico
new file mode 100644
index 00000000000..b1e78c0047e
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/chrome/openerp_plugin/skin/tinyerp-icon.ico differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/components/nsXmlRpcClient.js b/addons/thunderbird/plugin/openerp_plugin/components/nsXmlRpcClient.js
new file mode 100755
index 00000000000..40347a9993d
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/components/nsXmlRpcClient.js
@@ -0,0 +1,1039 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla XML-RPC Client component.
+ *
+ * The Initial Developer of the Original Code is
+ * Digital Creations 2, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2000
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Martijn Pieters (original author)
+ * Samuel Sieb
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ * nsXmlRpcClient XPCOM component
+ * Version: $Revision: 1.39 $
+ *
+ * $Id: nsXmlRpcClient.js,v 1.39 2006/10/24 16:02:01 silver%warwickcompsoc.co.uk Exp $
+ */
+
+/*
+ * Constants
+ */
+const XMLRPCCLIENT_CONTRACTID = '@mozilla.org/xml-rpc/client;1';
+const XMLRPCCLIENT_CID =
+ Components.ID('{4d7d15c0-3747-4f7f-b6b3-792a5ea1a9aa}');
+const XMLRPCCLIENT_IID = Components.interfaces.nsIXmlRpcClient;
+
+const XMLRPCFAULT_CONTRACTID = '@mozilla.org/xml-rpc/fault;1';
+const XMLRPCFAULT_CID =
+ Components.ID('{691cb864-0a7e-448c-98ee-4a7f359cf145}');
+const XMLRPCFAULT_IID = Components.interfaces.nsIXmlRpcFault;
+
+const XMLHTTPREQUEST_CONTRACTID = '@mozilla.org/xmlextras/xmlhttprequest;1';
+
+const NSICHANNEL = Components.interfaces.nsIChannel;
+
+const DEBUG = false;
+const DEBUGPARSE = false;
+
+const DOMNode = Components.interfaces.nsIDOMNode;
+/*
+ * Class definitions
+ */
+
+/* The nsXmlRpcFault class constructor. */
+function nsXmlRpcFault() {}
+
+/* the nsXmlRpcFault class def */
+nsXmlRpcFault.prototype = {
+ faultCode: 0,
+ faultString: '',
+
+ init: function(faultCode, faultString) {
+ this.faultCode = faultCode;
+ this.faultString = faultString;
+ },
+
+ toString: function() {
+ return '';
+ },
+
+ // nsISupports interface
+ QueryInterface: function(iid) {
+ if (!iid.equals(Components.interfaces.nsISupports) &&
+ !iid.equals(XMLRPCFAULT_IID))
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+ return this;
+ }
+};
+
+/* The nsXmlRpcClient class constructor. */
+function nsXmlRpcClient() {}
+
+/* the nsXmlRpcClient class def */
+nsXmlRpcClient.prototype = {
+ _serverUrl: null,
+ _useAuth: false,
+
+ init: function(serverURL) {
+ this._serverUrl = serverURL;
+ this._encoding = "UTF-8";
+ },
+
+ setAuthentication: function(username, password){
+ if ((typeof username == "string") &&
+ (typeof password == "string")){
+ this._useAuth = true;
+ this._username = username;
+ this._password = password;
+ }
+ },
+
+ clearAuthentication: function(){
+ this._useAuth = false;
+ },
+
+ setEncoding: function(encoding){
+ this._encoding = encoding;
+ },
+
+ get serverUrl() { return this._serverUrl; },
+
+ // Internal copy of the status
+ _status: null,
+ _listener: null,
+
+ asyncCall: function(listener, context, methodName, methodArgs, count) {
+ debug('asyncCall');
+ // Check for call in progress.
+ if (this._inProgress)
+ return;
+ //throw Components.Exception('Call in progress!');
+
+ // Check for the server URL;
+ if (!this._serverUrl)
+ throw Components.Exception('Not initialized');
+
+ this._inProgress = true;
+
+ // Clear state.
+ this._foundFault = false;
+ this._passwordTried = false;
+ this._result = null;
+ this._fault = null;
+ this._status = null;
+ this._responseStatus = null;
+ this._responseString = null;
+ this._listener = listener;
+ this._seenStart = false;
+ this._context = context;
+
+ debug('Arguments: ' + methodArgs);
+
+ // Generate request body
+ var xmlWriter = new XMLWriter(this._encoding);
+ this._generateRequestBody(xmlWriter, methodName, methodArgs);
+
+ var requestBody = xmlWriter.data;
+
+ debug('Request: ' + requestBody);
+
+ this.xmlhttp = Components.classes[XMLHTTPREQUEST_CONTRACTID]
+ .createInstance(Components.interfaces.nsIXMLHttpRequest);
+ if (this._useAuth) {
+ this.xmlhttp.open('POST', this._serverUrl, true,
+ this._username, this._password);
+ } else {
+ this.xmlhttp.open('POST', this._serverUrl);
+ }
+ this.xmlhttp.onload = this._onload;
+ this.xmlhttp.onerror = this._onerror;
+ this.xmlhttp.parent = this;
+ this.xmlhttp.setRequestHeader('Content-Type','text/xml');
+ this.xmlhttp.send(requestBody);
+ var chan = this.xmlhttp.channel.QueryInterface(NSICHANNEL);
+ chan.notificationCallbacks = this;
+ },
+
+ _onload: function(e) {
+ var result;
+ var parent = e.target.parent;
+ parent._inProgress = false;
+ parent._responseStatus = e.target.status;
+ parent._responseString = e.target.statusText;
+ if (!e.target.responseXML) {
+ if (e.target.status) {
+ try {
+ parent._listener.onError(parent, parent._context,
+ Components.results.NS_ERROR_FAILURE,
+ 'Server returned status ' + e.target.status);
+ } catch (ex) {
+ debug('Exception in listener.onError: ' + ex);
+ }
+ } else {
+ try {
+ parent._listener.onError(parent, parent._context,
+ Components.results.NS_ERROR_FAILURE,
+ 'Unknown network error');
+ } catch (ex) {
+ debug('Exception in listener.onError: ' + ex);
+ }
+ }
+ return;
+ }
+ try {
+ e.target.responseXML.normalize();
+ result = parent.parse(e.target.responseXML);
+ } catch (ex) {
+ try {
+ parent._listener.onError(parent, parent._context,
+ ex.result, ex.message);
+ } catch (ex) {
+ debug('Exception in listener.onError: ' + ex);
+ }
+ return;
+ }
+ if (parent._foundFault) {
+ parent._fault = result;
+ try {
+ parent._listener.onFault(parent, parent._context, result);
+ } catch(ex) {
+ debug('Exception in listener.onFault: ' + ex);
+ }
+ } else {
+ parent._result = result.value;
+ try {
+ parent._listener.onResult(parent, parent._context,
+ result.value);
+ } catch (ex) {
+ debug('Exception in listener.onResult: ' + ex);
+ }
+ }
+ },
+
+ _onerror: function(e) {
+ var parent = e.target.parent;
+ parent._inProgress = false;
+ try {
+ parent._listener.onError(parent, parent._context,
+ Components.results.NS_ERROR_FAILURE,
+ 'Unknown network error');
+ } catch (ex) {
+ debug('Exception in listener.onError: ' + ex);
+ }
+ },
+
+ _foundFault: false,
+
+ _fault: null,
+ _result: null,
+ _responseStatus: null,
+ _responseString: null,
+
+ get fault() { return this._fault; },
+ get result() { return this._result; },
+ get responseStatus() { return this._responseStatus; },
+ get responseString() { return this._responseString; },
+
+ /* Convenience. Create an appropriate XPCOM object for a given type */
+ INT: 1,
+ BOOLEAN: 2,
+ STRING: 3,
+ DOUBLE: 4,
+ DATETIME: 5,
+ ARRAY: 6,
+ STRUCT: 7,
+ BASE64: 8, // Not part of nsIXmlRpcClient interface, internal use.
+ createType: function(type, uuid) {
+ const SUPPORTSID = '@mozilla.org/supports-';
+ switch(type) {
+ case this.INT:
+ uuid.value = Components.interfaces.nsISupportsPRInt32
+ return createInstance(SUPPORTSID + 'PRInt32;1',
+ 'nsISupportsPRInt32');
+
+ case this.BOOLEAN:
+ uuid.value = Components.interfaces.nsISupportsPRBool
+ return createInstance(SUPPORTSID + 'PRBool;1',
+ 'nsISupportsPRBool');
+
+ case this.STRING:
+ uuid.value = Components.interfaces.nsISupportsCString
+ return createInstance(SUPPORTSID + 'cstring;1',
+ 'nsISupportsCString');
+
+ case this.DOUBLE:
+ uuid.value = Components.interfaces.nsISupportsDouble
+ return createInstance(SUPPORTSID + 'double;1',
+ 'nsISupportsDouble');
+
+ case this.DATETIME:
+ uuid.value = Components.interfaces.nsISupportsPRTime
+ return createInstance(SUPPORTSID + 'PRTime;1',
+ 'nsISupportsPRTime');
+
+ case this.ARRAY:
+ uuid.value = Components.interfaces.nsISupportsArray
+ return createInstance(SUPPORTSID + 'array;1',
+ 'nsISupportsArray');
+
+ case this.STRUCT:
+ uuid.value = Components.interfaces.nsIDictionary
+ return createInstance('@mozilla.org/dictionary;1',
+ 'nsIDictionary');
+
+ default: throw Components.Exception('Unsupported type');
+ }
+ },
+
+ // nsISupports interface
+ QueryInterface: function(iid) {
+ if (!iid.equals(Components.interfaces.nsISupports) &&
+ !iid.equals(XMLRPCCLIENT_IID) &&
+ !iid.equals(Components.interfaces.nsIInterfaceRequestor))
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+ return this;
+ },
+
+ // nsIInterfaceRequester interface
+ getInterface: function(iid, result){
+ if (iid.equals(Components.interfaces.nsIAuthPrompt)){
+ return this;
+ }
+ Components.returnCode = Components.results.NS_ERROR_NO_INTERFACE;
+ return null;
+ },
+
+ // nsIAuthPrompt interface
+ _passwordTried: false,
+ promptUsernameAndPassword: function(dialogTitle, text, passwordRealm,
+ savePassword, user, pwd){
+
+ if (this._useAuth){
+ if (this._passwordTried){
+ return false;
+ }
+ user.value = this._username;
+ pwd.value = this._password;
+ this._passwordTried = true;
+ return true;
+ }
+ return false;
+ },
+
+ /* Generate the XML-RPC request body */
+ _generateRequestBody: function(writer, methodName, methodArgs) {
+ writer.startElement('methodCall');
+
+ writer.startElement('methodName');
+ writer.write(methodName);
+ writer.endElement('methodName');
+
+ writer.startElement('params');
+ for (var i = 0; i < methodArgs.length; i++) {
+ writer.startElement('param');
+ this._generateArgumentBody(writer, methodArgs[i]);
+ writer.endElement('param');
+ }
+ writer.endElement('params');
+
+ writer.endElement('methodCall');
+ },
+
+ /* Write out a XML-RPC parameter value */
+ _generateArgumentBody: function(writer, obj) {
+ writer.startElement('value');
+ var sType = this._typeOf(obj);
+ switch (sType) {
+ case 'PRUint8':
+ case 'PRUint16':
+ case 'PRInt16':
+ case 'PRInt32':
+ obj=obj.QueryInterface(Components.interfaces['nsISupports' +
+ sType]);
+ writer.startElement('i4');
+ writer.write(obj.toString());
+ writer.endElement('i4');
+ break;
+
+ case 'PRBool':
+ obj=obj.QueryInterface(Components.interfaces.nsISupportsPRBool);
+ writer.startElement('boolean');
+ writer.write(obj.data ? '1' : '0');
+ writer.endElement('boolean');
+ break;
+
+ case 'Char':
+ case 'CString':
+ obj=obj.QueryInterface(Components.interfaces['nsISupports' +
+ sType]);
+ writer.startElement('string');
+ writer.write(obj.toString());
+ writer.endElement('string');
+ break;
+
+ case 'Float':
+ case 'Double':
+ obj=obj.QueryInterface(Components.interfaces['nsISupports' +
+ sType]);
+ writer.startElement('double');
+ writer.write(obj.toString());
+ writer.endElement('double');
+ break;
+
+ case 'PRTime':
+ obj = obj.QueryInterface(
+ Components.interfaces.nsISupportsPRTime);
+ var date = new Date(obj.data)
+ writer.startElement('dateTime.iso8601');
+ writer.write(iso8601Format(date));
+ writer.endElement('dateTime.iso8601');
+ break;
+
+ case 'InputStream':
+ obj = obj.QueryInterface(Components.interfaces.nsIInputStream);
+ obj = toScriptableStream(obj);
+ writer.startElement('base64');
+ streamToBase64(obj, writer);
+ writer.endElement('base64');
+ break;
+
+ case 'Array':
+ obj = obj.QueryInterface(
+ Components.interfaces.nsISupportsArray);
+ writer.startElement('array');
+ writer.startElement('data');
+ for (var i = 0; i < obj.Count(); i++)
+ this._generateArgumentBody(writer, obj.GetElementAt(i));
+ writer.endElement('data');
+ writer.endElement('array');
+ break;
+
+ case 'Dictionary':
+ obj = obj.QueryInterface(Components.interfaces.nsIDictionary);
+ writer.startElement('struct');
+ var keys = obj.getKeys({});
+ for (var k = 0; k < keys.length; k++) {
+ writer.startElement('member');
+ writer.startElement('name');
+ writer.write(keys[k]);
+ writer.endElement('name');
+ this._generateArgumentBody(writer, obj.getValue(keys[k]));
+ writer.endElement('member');
+ }
+ writer.endElement('struct');
+ break;
+
+ default:
+ throw Components.Exception('Unsupported argument', null, null,
+ obj);
+ }
+
+ writer.endElement('value');
+ },
+
+ /* Determine type of a nsISupports primitive, array or dictionary. */
+ _typeOf: function(obj) {
+ // XPConnect alows JS to pass in anything, because we are a regular
+ // JS object to it. So we have to test rigorously.
+ if (typeof obj != 'object') return 'Unknown';
+
+ // Anything else not nsISupports is not allowed.
+ if (typeof obj.QueryInterface != 'function') return 'Unknown';
+
+ // Now we will have to eliminate by trying all possebilities.
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRUint8);
+ return 'PRUint8';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRUint16);
+ return 'PRUint16';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRInt16);
+ return 'PRInt16';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRInt32);
+ return 'PRInt32';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRBool);
+ return 'PRBool';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsChar);
+ return 'Char';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsCString);
+ return 'CString';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsFloat);
+ return 'Float';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsDouble);
+ return 'Double';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsPRTime);
+ return 'PRTime';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsIInputStream);
+ return 'InputStream';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsISupportsArray);
+ return 'Array';
+ } catch(e) {}
+
+ try {
+ obj.QueryInterface(Components.interfaces.nsIDictionary);
+ return 'Dictionary';
+ } catch(e) {}
+
+ // Not a supported type
+ return 'Unknown';
+ },
+
+ // Response parsing state
+ _valueStack: [],
+ _currValue: null,
+ _cdata: null,
+
+ parse: function(doc) {
+ var node = doc.firstChild;
+ var result;
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if ((node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'methodResponse')) {
+ throw Components.Exception('Expecting a methodResponse', null, null,
+ doc);
+ }
+ node = node.firstChild;
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if (node.nodeType != DOMNode.ELEMENT_NODE)
+ throw Components.Exception('Expecting a params or fault', null,
+ null, doc);
+ if (node.nodeName == 'params') {
+ node = node.firstChild;
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if ((node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'param')) {
+ throw Components.Exception('Expecting a param', null, null,
+ doc);
+ }
+ result = this.parseValue(node.firstChild);
+ } else if (node.nodeName == 'fault') {
+ this._foundFault = true;
+ result = this.parseFault(node.firstChild);
+ } else {
+ throw Components.Exception('Expecting a params or fault', null,
+ null, doc);
+ }
+ debug('Parse finished');
+ return result;
+ },
+
+ parseValue: function(node) {
+ var cValue = new Value();
+ if (node && (node.nodeType == DOMNode.TEXT_NODE))
+ node = node.nextSibling;
+ if (!node || (node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'value')) {
+ throw Components.Exception('Expecting a value', null, null, node);
+ }
+ node = node.firstChild;
+ if (!node)
+ return cValue;
+ if (node.nodeType == DOMNode.TEXT_NODE){
+ if (!node.nextSibling) {
+ cValue.value = node.nodeValue;
+ return cValue;
+ } else {
+ node = node.nextSibling;
+ }
+ }
+ if (node.nodeType != DOMNode.ELEMENT_NODE)
+ throw Components.Exception('Expecting a value type', null, null,
+ node);
+ switch (node.nodeName) {
+ case 'string':
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'i4':
+ case 'int':
+ cValue.type = this.INT;
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'boolean':
+ cValue.type = this.BOOLEAN;
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'double':
+ cValue.type = this.DOUBLE;
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'dateTime.iso8601':
+ cValue.type = this.DATETIME;
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'base64':
+ cValue.type = this.BASE64;
+ cValue.value = this.parseString(node.firstChild);
+ break;
+ case 'struct':
+ cValue.type = this.STRUCT;
+ this.parseStruct(cValue, node.firstChild);
+ break;
+ case 'array':
+ cValue.type = this.ARRAY;
+ this.parseArray(cValue, node.firstChild);
+ break;
+ default:
+ throw Components.Exception('Expecting a value type', null, null,
+ node);
+ }
+ return cValue;
+ },
+
+ parseString: function(node) {
+ value = '';
+ while (node) {
+ if (node.nodeType != DOMNode.TEXT_NODE)
+ throw Components.Exception('Expecting a text node', null, null,
+ node);
+ value += node.nodeValue;
+ node = node.nextSibling;
+ }
+ return value;
+ },
+
+ parseStruct: function(struct, node) {
+ while (node) {
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if (!node)
+ return;
+ if ((node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'member')) {
+ throw Components.Exception('Expecting a member', null, null,
+ node);
+ }
+ this.parseMember(struct, node.firstChild);
+ node = node.nextSibling;
+ }
+ },
+
+ parseMember: function(struct, node) {
+ var cValue;
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if (!node || (node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'name')) {
+ throw Components.Exception('Expecting a name', null, null, node);
+ }
+ struct.name = this.parseString(node.firstChild);
+ cValue = this.parseValue(node.nextSibling);
+ struct.appendValue(cValue.value);
+ },
+
+ parseArray: function(array, node) {
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ node = node.nextSibling;
+ if (!node || (node.nodeType != DOMNode.ELEMENT_NODE) ||
+ (node.nodeName != 'data')) {
+ throw Components.Exception('Expecting array data', null, null, node);
+ }
+ for (node = node.firstChild; node; node = node.nextSibling) {
+ if (node.nodeType == DOMNode.TEXT_NODE)
+ continue;
+ array.appendValue(this.parseValue(node).value);
+ }
+ },
+
+ parseFault: function(node) {
+ var fault = createInstance(XMLRPCFAULT_CONTRACTID, 'nsIXmlRpcFault');
+ var cValue = this.parseValue(node);
+ if ((cValue.type != this.STRUCT) ||
+ (!cValue.value.hasKey('faultCode')) ||
+ (!cValue.value.hasKey('faultString'))) {
+ throw Components.Exception('Invalid fault', null, null, node);
+ }
+ fault.init(cValue.value.getValue('faultCode').data,
+ cValue.value.getValue('faultString').data);
+ return fault;
+ }
+};
+
+/* The XMLWriter class constructor */
+function XMLWriter(encoding) {
+ if (!encoding)
+ encoding = "UTF-8";
+ this.data = '';
+}
+
+/* The XMLWriter class def */
+XMLWriter.prototype = {
+ data: '',
+
+ startElement: function(element) {
+ this.data += '<' + element + '>';
+ },
+
+ endElement: function(element) {
+ this.data += '' + element + '>';
+ },
+
+ write: function(text) {
+ for (var i = 0; i < text.length; i++) {
+ var c = text[i];
+ switch (c) {
+ case '<':
+ this.data += '<';
+ break;
+ case '&':
+ this.data += '&';
+ break;
+ default:
+ this.data += c;
+ }
+ }
+ },
+
+ markup: function(text) { this.data += text }
+};
+
+/* The Value class contructor */
+function Value() { this.type = this.STRING; };
+
+/* The Value class def */
+Value.prototype = {
+ INT: nsXmlRpcClient.prototype.INT,
+ BOOLEAN: nsXmlRpcClient.prototype.BOOLEAN,
+ STRING: nsXmlRpcClient.prototype.STRING,
+ DOUBLE: nsXmlRpcClient.prototype.DOUBLE,
+ DATETIME: nsXmlRpcClient.prototype.DATETIME,
+ ARRAY: nsXmlRpcClient.prototype.ARRAY,
+ STRUCT: nsXmlRpcClient.prototype.STRUCT,
+ BASE64: nsXmlRpcClient.prototype.BASE64,
+
+ _createType: nsXmlRpcClient.prototype.createType,
+
+ name: null,
+
+ _value: null,
+ get value() { return this._value; },
+ set value(val) {
+ // accepts [0-9]+ or x[0-9a-fA-F]+ and returns the character.
+ function entityTrans(substr, code) {
+ return String.fromCharCode("0" + code);
+ }
+
+ switch (this.type) {
+ case this.STRING:
+ val = val.replace(/([0-9]+);/g, entityTrans);
+ val = val.replace(/(x[0-9a-fA-F]+);/g, entityTrans);
+ val = val.replace(/</g, '<');
+ val = val.replace(/>/g, '>');
+ val = val.replace(/&/g, '&');
+ this._value.data = val;
+ break;
+
+ case this.BOOLEAN:
+ this._value.data = (val == 1);
+ break;
+
+ case this.DATETIME:
+ this._value.data = Date.UTC(val.slice(0, 4),
+ val.slice(4, 6) - 1, val.slice(6, 8), val.slice(9, 11),
+ val.slice(12, 14), val.slice(15));
+ break;
+
+ case this.BASE64:
+ this._value.data = base64ToString(val);
+ break;
+
+ default:
+ this._value.data = val;
+ }
+ },
+
+ _type: null,
+ get type() { return this._type; },
+ set type(type) {
+ this._type = type;
+ if (type == this.BASE64)
+ this._value = this._createType(this.STRING, {});
+ else this._value = this._createType(type, {});
+ },
+
+ appendValue: function(val) {
+ switch (this.type) {
+ case this.ARRAY:
+ this.value.AppendElement(val);
+ break;
+
+ case this.STRUCT:
+ this.value.setValue(this.name, val);
+ break;
+ }
+ }
+};
+
+/*
+ * Objects
+ */
+
+/* nsXmlRpcClient Module (for XPCOM registration) */
+var nsXmlRpcClientModule = {
+ registerSelf: function(compMgr, fileSpec, location, type) {
+ compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
+
+ compMgr.registerFactoryLocation(XMLRPCCLIENT_CID,
+ 'XML-RPC Client JS component',
+ XMLRPCCLIENT_CONTRACTID,
+ fileSpec,
+ location,
+ type);
+ compMgr.registerFactoryLocation(XMLRPCFAULT_CID,
+ 'XML-RPC Fault JS component',
+ XMLRPCFAULT_CONTRACTID,
+ fileSpec,
+ location,
+ type);
+ },
+
+ getClassObject: function(compMgr, cid, iid) {
+ if (!cid.equals(XMLRPCCLIENT_CID) && !cid.equals(XMLRPCFAULT_CID))
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+
+ if (!iid.equals(Components.interfaces.nsIFactory))
+ throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
+
+ if (cid.equals(XMLRPCCLIENT_CID))
+ return nsXmlRpcClientFactory
+ else return nsXmlRpcFaultFactory;
+ },
+
+ canUnload: function(compMgr) { return true; }
+};
+
+/* nsXmlRpcClient Class Factory */
+var nsXmlRpcClientFactory = {
+ createInstance: function(outer, iid) {
+ if (outer != null)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+
+ if (!iid.equals(XMLRPCCLIENT_IID) &&
+ !iid.equals(Components.interfaces.nsISupports))
+ throw Components.results.NS_ERROR_INVALID_ARG;
+
+ return new nsXmlRpcClient();
+ }
+}
+
+/* nsXmlRpcFault Class Factory */
+var nsXmlRpcFaultFactory = {
+ createInstance: function(outer, iid) {
+ if (outer != null)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+
+ if (!iid.equals(XMLRPCFAULT_IID) &&
+ !iid.equals(Components.interfaces.nsISupports))
+ throw Components.results.NS_ERROR_INVALID_ARG;
+
+ return new nsXmlRpcFault();
+ }
+}
+
+/*
+ * Functions
+ */
+
+/* module initialisation */
+function NSGetModule(comMgr, fileSpec) { return nsXmlRpcClientModule; }
+
+/* Create an instance of the given ContractID, with given interface */
+function createInstance(contractId, intf) {
+ return Components.classes[contractId]
+ .createInstance(Components.interfaces[intf]);
+}
+
+/* Get a pointer to a service indicated by the ContractID, with given interface */
+function getService(contractId, intf) {
+ return Components.classes[contractId]
+ .getService(Components.interfaces[intf]);
+}
+
+/* Convert an inputstream to a scriptable inputstream */
+function toScriptableStream(input) {
+ var SIStream = Components.Constructor(
+ '@mozilla.org/scriptableinputstream;1',
+ 'nsIScriptableInputStream', 'init');
+ return new SIStream(input);
+}
+
+/* format a Date object into a iso8601 datetime string, UTC time */
+function iso8601Format(date) {
+ var datetime = date.getUTCFullYear();
+ var month = String(date.getUTCMonth() + 1);
+ datetime += (month.length == 1 ? '0' + month : month);
+ var day = date.getUTCDate();
+ datetime += (day < 10 ? '0' + day : day);
+
+ datetime += 'T';
+
+ var hour = date.getUTCHours();
+ datetime += (hour < 10 ? '0' + hour : hour) + ':';
+ var minutes = date.getUTCMinutes();
+ datetime += (minutes < 10 ? '0' + minutes : minutes) + ':';
+ var seconds = date.getUTCSeconds();
+ datetime += (seconds < 10 ? '0' + seconds : seconds);
+
+ return datetime;
+}
+
+/* Convert a stream to Base64, writing it away to a string writer */
+const BASE64CHUNK = 255; // Has to be dividable by 3!!
+function streamToBase64(stream, writer) {
+ while (stream.available()) {
+ var data = [];
+ while (data.length < BASE64CHUNK && stream.available()) {
+ var d = stream.read(1).charCodeAt(0);
+ // reading a 0 results in NaN, compensate.
+ data = data.concat(isNaN(d) ? 0 : d);
+ }
+ writer.write(toBase64(data));
+ }
+}
+
+/* Convert data (an array of integers) to a Base64 string. */
+const toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' +
+ '0123456789+/';
+const base64Pad = '=';
+function toBase64(data) {
+ var result = '';
+ var length = data.length;
+ var i;
+ // Convert every three bytes to 4 ascii characters.
+ for (i = 0; i < (length - 2); i += 3) {
+ result += toBase64Table[data[i] >> 2];
+ result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
+ result += toBase64Table[((data[i+1] & 0x0f) << 2) + (data[i+2] >> 6)];
+ result += toBase64Table[data[i+2] & 0x3f];
+ }
+
+ // Convert the remaining 1 or 2 bytes, pad out to 4 characters.
+ if (length%3) {
+ i = length - (length%3);
+ result += toBase64Table[data[i] >> 2];
+ if ((length%3) == 2) {
+ result += toBase64Table[((data[i] & 0x03) << 4) + (data[i+1] >> 4)];
+ result += toBase64Table[(data[i+1] & 0x0f) << 2];
+ result += base64Pad;
+ } else {
+ result += toBase64Table[(data[i] & 0x03) << 4];
+ result += base64Pad + base64Pad;
+ }
+ }
+
+ return result;
+}
+
+/* Convert Base64 data to a string */
+const toBinaryTable = [
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
+ -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
+ 52,53,54,55, 56,57,58,59, 60,61,-1,-1, -1, 0,-1,-1,
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11,12,13,14,
+ 15,16,17,18, 19,20,21,22, 23,24,25,-1, -1,-1,-1,-1,
+ -1,26,27,28, 29,30,31,32, 33,34,35,36, 37,38,39,40,
+ 41,42,43,44, 45,46,47,48, 49,50,51,-1, -1,-1,-1,-1
+];
+function base64ToString(data) {
+ var result = '';
+ var leftbits = 0; // number of bits decoded, but yet to be appended
+ var leftdata = 0; // bits decoded, but yet to be appended
+
+ // Convert one by one.
+ for (var i = 0; i < data.length; i++) {
+ var c = toBinaryTable[data.charCodeAt(i) & 0x7f];
+ var padding = (data[i] == base64Pad);
+ // Skip illegal characters and whitespace
+ if (c == -1) continue;
+
+ // Collect data into leftdata, update bitcount
+ leftdata = (leftdata << 6) | c;
+ leftbits += 6;
+
+ // If we have 8 or more bits, append 8 bits to the result
+ if (leftbits >= 8) {
+ leftbits -= 8;
+ // Append if not padding.
+ if (!padding)
+ result += String.fromCharCode((leftdata >> leftbits) & 0xff);
+ leftdata &= (1 << leftbits) - 1;
+ }
+ }
+
+ // If there are any bits left, the base64 string was corrupted
+ if (leftbits)
+ throw Components.Exception('Corrupted base64 string');
+
+ return result;
+}
+
+if (DEBUG) debug = function(msg) {
+ dump(' -- XML-RPC client -- : ' + msg + '\n');
+};
+else debug = function() {}
+
+// vim:sw=4:sr:sta:et:sts:
diff --git a/addons/thunderbird/plugin/openerp_plugin/components/xml-rpc.xpt b/addons/thunderbird/plugin/openerp_plugin/components/xml-rpc.xpt
new file mode 100755
index 00000000000..8e59aa20c85
Binary files /dev/null and b/addons/thunderbird/plugin/openerp_plugin/components/xml-rpc.xpt differ
diff --git a/addons/thunderbird/plugin/openerp_plugin/defaults/preferences/tiny.js b/addons/thunderbird/plugin/openerp_plugin/defaults/preferences/tiny.js
new file mode 100755
index 00000000000..ca8332c868e
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/defaults/preferences/tiny.js
@@ -0,0 +1,56 @@
+
+pref("extensions.tiny.serverurl", "http://localhost");
+pref("extensions.tiny.serverport", "8069");
+pref("extensions.tiny.serverdbname", "terp");
+pref("extensions.tiny.username","admin");
+pref("extensions.tiny.password","admin");
+pref("extensions.tiny.senderemail","");
+pref("extensions.tiny.sendername","");
+pref("extensions.tiny.receiveremail","");
+pref("extensions.tiny.subject","");
+pref("extensions.tiny.receiveddate","");
+pref("extensions.tiny.partnerid","");
+pref("extensions.tiny.contactid","");
+pref("extensions.tiny.attachvalue","");
+pref("extensions.tiny.cclist","");
+pref("extensions.tiny.messagebody","");
+pref("extensions.tiny.displayName","");
+pref("extensions.tiny.attachmentdata","");
+pref("extensions.tiny.userid",3);
+pref("extensions.tiny.partnername","");
+pref("extensions.tiny.officeno","");
+pref("extensions.tiny.phoneno","");
+pref("extensions.tiny.address","");
+pref("extensions.tiny.listobject","Partner,Partner Address,Accout Invoice,Project,Product,Account,Sale Order,Project Task");
+pref("extensions.tiny.object","res.partner,res.partner.address,account.invoice,project.project,product.product,account.account,sale.order,project.task");
+pref("extensions.tiny.imagename","chrome://openerp_plugin/skin/Partner.png,chrome://openerp_plugin/skin/Contact.png,chrome://openerp_plugin/skin/Invoice.png,chrome://openerp_plugin/skin/Project.png,chrome://openerp_plugin/skin/Product.png,chrome://openerp_plugin/skin/Account.png,chrome://openerp_plugin/skin/Sale.png,chrome://openerp_plugin/skin/Case.png,chrome://openerp_plugin/skin/Task.png");
+pref("extensions.tiny.attachmentlength","");
+pref("extensions.tiny.attachment","");
+pref("extensions.tiny.db_list","false");
+pref("extensions.tiny.connect_server","false");
+pref("extensions.tiny.module_install","yes");
+pref("extensions.tiny.serverprotocol", "false");
+
+
+
+pref("mboximport.export.filenames_toascii", false);
+pref("mboximport.export.overwrite", false);
+pref("mboximport.confirm.before_mbox_import", true);
+pref("mboximport.clipboard.always_just_text", false);
+pref("mboximport.export.HTML_as_displayed", false);
+pref("mboximport.exportEML.filename_format", 0);
+pref("mboximport.delay.clean_statusbar", 5000);
+pref("mboximport.subject.max_length", 50);
+pref("mboximport.author.max_length", 50);
+pref("mboximport.recipients.max_length", 50);
+pref("extensions.{3ed8cc52-86fc-4613-9026-c1ef969da4c3}.description", "chrome://mboximport/locale/mboximport.properties");
+pref("mboximport.export.set_filetime", false);
+pref("mboximport.exportEML.use_dir", false);
+pref("mboximport.exportMBOX.use_dir", false);
+pref("mboximport.exportMSG.use_dir", false);
+pref("mboximport.export.filenames_addtime", false);
+pref("mboximport.export_all.warning1", true);
+pref("mboximport.export_all.warning2", true);
+
+pref("mboximport.exportMSG.dir", "/tmp");
+
diff --git a/addons/thunderbird/plugin/openerp_plugin/install.js b/addons/thunderbird/plugin/openerp_plugin/install.js
new file mode 100755
index 00000000000..50e4b301e32
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/install.js
@@ -0,0 +1,105 @@
+// constants
+const APP_DISPLAY_NAME = "OpenERP Thunderbird Plugins";
+const APP_NAME = "OpenERP";
+const APP_VERSION = "1.0";
+const WARNING = "WARNING: You need administrator privileges to install OpenERP Thunderbird Plugin. It will be installed in the application directory for all users.";
+const VERSION_ERROR = "This extension can only be installed in a version higher than 2.0";
+const NOT_WRITABLE_ERROR = "This extension requires write access to the application directory to install properly."
+const locales = [
+ "en-US",
+ null
+];
+
+// Gecko 1.7 doesn't support custom button labels
+var incompatible = (typeof Install.BUTTON_POS_0 == "undefined");
+if (incompatible)
+ alert(VERSION_ERROR);
+
+if (!incompatible) {
+ // Check whether all directories can be accessed
+ var dirList = [
+ getFolder("Components"),
+ getFolder(getFolder("Program", "defaults"), "pref")
+ ];
+ for (var i = 0; i < dirList.length; i++)
+ if (!File.isWritable(dirList[i]))
+ incompatible = true;
+
+ if (incompatible)
+ alert(NOT_WRITABLE_ERROR);
+}
+
+if (!incompatible && confirm(WARNING, APP_DISPLAY_NAME)) {
+ /* Pre-Install Cleanup (for prior versions) */
+
+ // List of files to be checked
+ var checkFiles = [
+ [getFolder("Components"), "nsXmlRpcClient.js"], // Root component
+ [getFolder("Components"), "xml-rpc.xpt"], // Component interface
+ ];
+
+ // Remove any existing files
+ initInstall("pre-install", "/rename", "0.0"); // open dummy-install
+ for (var i = 0 ; i < checkFiles.length ; i++) {
+ var currentDir = checkFiles[i][0];
+ var name = checkFiles[i][1];
+ var oldFile = getFolder(currentDir, name);
+
+ // Find a name to rename the file into
+ var newName = name + "-uninstalled";
+ for (var n = 1; File.exists(oldFile) && File.exists(getFolder(currentDir, newName)); n++)
+ newName = name + n + "-uninstalled";
+
+ if (File.exists(oldFile))
+ File.rename(oldFile, newName);
+ }
+ performInstall(); // commit renamed files
+
+ /* Main part of the installation */
+
+ var chromeType = DELAYED_CHROME;
+
+ var files = [
+ ["components/nsXmlRpcClient.js", getFolder("Components")],
+ ["components/xml-rpc.xpt", getFolder("Components")],
+ ["defaults/preferences/tiny.js", getFolder(getFolder("Program", "defaults"), "pref")],
+ ];
+
+ // initialize our install
+ initInstall(APP_NAME, APP_PACKAGE, APP_VERSION);
+
+ // Add files
+ for (var i = 0; i < files.length; i++)
+ addFile(APP_NAME, APP_VERSION, files[i][0], files[i][1], null);
+
+ try {
+ var err = registerChrome(CONTENT | chromeType, jar, "content/");
+ if (err != SUCCESS)
+ throw "Chrome registration for content failed (error code " + err + ").";
+
+ err = registerChrome(SKIN | chromeType, jar, "skin/classic/");
+ if (err != SUCCESS)
+ throw "Chrome registration for skin failed (error code " + err + ").";
+
+ for (i = 0; i < locales.length; i++) {
+ if (!locales[i])
+ continue;
+
+ err = registerChrome(LOCALE | chromeType, jar, "locale/" + locales[i] + "/");
+ if (err != SUCCESS)
+ throw "Chrome registration for " + locales[i] + " locale failed (error code " + err + ").";
+ }
+
+ var err = performInstall();
+ if (err != SUCCESS && err != 999)
+ throw "Committing installation failed (error code " + err + ").";
+
+ alert("OpenERP Thunderbird Plugin " + APP_VERSION + " is now installed.\n" +
+ "It will become active after you restart your browser.");
+ }
+ catch (ex) {
+ alert("Installation failed: " + ex + "\n" +
+ "You probably don't have the necessary permissions (log in as system administrator).");
+ cancelInstall(err);
+ }
+}
diff --git a/addons/thunderbird/plugin/openerp_plugin/install.rdf b/addons/thunderbird/plugin/openerp_plugin/install.rdf
new file mode 100755
index 00000000000..b46c10c433b
--- /dev/null
+++ b/addons/thunderbird/plugin/openerp_plugin/install.rdf
@@ -0,0 +1,22 @@
+
+
+
+ {d57f315a-9f5d-4366-a530-a769a4a8c949}
+ chrome://openerp_plugin/skin/tinyerp-icon.ico
+ OpenERP Plugin
+ 1.0
+ OpenERP Thunderbird Integration
+ OpenERP SA
+
+ http://openerp.com
+
+
+
+ {3550f703-e582-4d05-9a08-453d09bdfdc6}
+ 2.0
+ 3.1.*
+
+
+
+
diff --git a/addons/thunderbird/plugin/tiny_plugin-2.0.xpi b/addons/thunderbird/plugin/tiny_plugin-2.0.xpi
deleted file mode 100644
index e39b655a0fb..00000000000
Binary files a/addons/thunderbird/plugin/tiny_plugin-2.0.xpi and /dev/null differ
diff --git a/addons/thunderbird/security/ir.model.access.csv b/addons/thunderbird/security/ir.model.access.csv
index f5b3247103c..0a6c192eb56 100644
--- a/addons/thunderbird/security/ir.model.access.csv
+++ b/addons/thunderbird/security/ir.model.access.csv
@@ -1,2 +1,2 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_tinythunderbird_partner","tinythunderbird.partner","model_tinythunderbird_partner",,1,1,1,1
+
diff --git a/addons/thunderbird/thunderbird_installer.xml b/addons/thunderbird/thunderbird_installer.xml
index 8b9f8fabf6a..b12656ba08b 100644
--- a/addons/thunderbird/thunderbird_installer.xml
+++ b/addons/thunderbird/thunderbird_installer.xml
@@ -9,13 +9,13 @@
- Thunderbird Plug-In Installation
+ Thunderbird Module Installation
Thunderbird
- This module allows you to archive an e-mail on one or more objects of OpenERP. You can attach an email to a partner, a task, an analytic account or any other object. You can also create a new document like a lead, a phone call, claim and many more.
+ This module allows you to archive an e-mail on one or more objects of OpenERP. You can attach an email to a partner, a task, an analytic account or any other object. You can also create a new object like a lead, a phone call, claim and many more.
Configure
@@ -92,7 +92,7 @@
-
+
@@ -109,8 +109,8 @@
-
-
+
+
diff --git a/addons/warning/i18n/nl.po b/addons/warning/i18n/nl.po
index ba3cfcf5340..cf88232b020 100644
--- a/addons/warning/i18n/nl.po
+++ b/addons/warning/i18n/nl.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 14:54+0000\n"
-"Last-Translator: mga (Open ERP) \n"
+"PO-Revision-Date: 2010-08-13 14:27+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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: warning
diff --git a/addons/warning/i18n/tr.po b/addons/warning/i18n/tr.po
index da307354d5d..1072fa659e0 100644
--- a/addons/warning/i18n/tr.po
+++ b/addons/warning/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-11 05:31+0000\n"
+"PO-Revision-Date: 2010-08-29 10:32+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-12 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: warning
diff --git a/addons/warning/i18n/zh_TW.po b/addons/warning/i18n/zh_TW.po
index 4e9db6ad3c9..afa93addf0f 100644
--- a/addons/warning/i18n/zh_TW.po
+++ b/addons/warning/i18n/zh_TW.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-01-23 17:18+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-08-13 11:33+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 04:06+0000\n"
+"X-Launchpad-Export-Date: 2010-08-15 06:21+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: warning
diff --git a/addons/warning/warning.py b/addons/warning/warning.py
index 4f7b7fcc8d2..0ef75eb4be6 100644
--- a/addons/warning/warning.py
+++ b/addons/warning/warning.py
@@ -219,9 +219,6 @@ class sale_order_line(osv.osv):
result = super(sale_order_line, self).product_id_change( cr, uid, ids, pricelist, product, qty,
uom, qty_uos, uos, name, partner_id,
lang, update_tax, date_order, packaging, fiscal_position, flag)
-# if title and message:
-# warning['title'] = title
-# warning['message']= message
if result.get('warning',False):
warning['title'] = title and title +' & '+result['warning']['title'] or result['warning']['title']
diff --git a/addons/wiki/data/wiki_main.xml b/addons/wiki/data/wiki_main.xml
index 772528f0949..223274ea826 100644
--- a/addons/wiki/data/wiki_main.xml
+++ b/addons/wiki/data/wiki_main.xml
@@ -2,14 +2,14 @@
- The Open ERP wiki
+ The OpenERP wiki
help, quick start, wiki, formatting
0
1
0
Initial Page
- =The Open ERP wiki=
-The Open ERP wiki allows you to manage your enterprise's contents using wiki
+ =The OpenERP wiki=
+The OpenERP wiki allows you to manage your enterprise's contents using wiki
restructured texts. This module provides a collaborative way to manage internal
FAQs, quality manuals, technical references, etc.
@@ -19,9 +19,9 @@ FAQs, quality manuals, technical references, etc.
* Detailed history on all pages,
* Integrated with the document management system.
-==Why you should use the Open ERP integrated wiki than a separate wiki system ?==
+==Why you should use the OpenERP integrated wiki than a separate wiki system ?==
* Allows links to any document of the system,
-* Uses the access controls of Open ERP for uniq access rights management,
+* Uses the access controls of OpenERP for uniq access rights management,
* Use it to describe projects, tasks, products,
* Integrated with customer portal to provide restricted external accesses,
* Linked to users processes for quality manuals.
@@ -29,7 +29,7 @@ FAQs, quality manuals, technical references, etc.
==To get more information==
* [[Basic Wiki Editing]]
* [[Wiki Documentation]]
-* [http://openerp.com The Open ERP website]
+* [http://openerp.com The OpenERP website]
diff --git a/addons/wiki/data/wiki_quickstart.xml b/addons/wiki/data/wiki_quickstart.xml
index 665179114ce..7324fa6f18f 100644
--- a/addons/wiki/data/wiki_quickstart.xml
+++ b/addons/wiki/data/wiki_quickstart.xml
@@ -36,7 +36,7 @@ apostrophes on each side.
===Internal===
You give the link as same as the wiki Page Title
-Go back to Main Page : [[The Open ERP wiki]]
+Go back to Main Page : [[The OpenERP wiki]]
===External===
You can give link to the other Web page over the Internet easily [http://google.com Visit Google]
==Attachments==
@@ -45,7 +45,7 @@ You can get the External links easily
img:http://images.google.co.in/intl/en_ALL/images/images_hp.gif
-==Play with Open ERP Records==
+==Play with OpenERP Records==
* edit:res.partner|False|Create New Partner
* edit:res.partner|China Export|Edit China Export
* edit:res.country|India|Edit Country - India
@@ -85,7 +85,7 @@ A newline starts a new paragraph.
! Link
! Contact Email
|-
-| '''Open ERP''' - ''Belgium''
+| '''OpenERP''' - ''Belgium''
| [http://openerp.com]
| [mailto:sales AT tiny.be]
|}
@@ -96,7 +96,7 @@ A newline starts a new paragraph.
! Link
! Contact Email
|-
-| '''Open ERP''' - ''Belgium''
+| '''OpenERP''' - ''Belgium''
| [http://openerp.com]
| [mailto:sales AT tiny.be]
|}
diff --git a/addons/wiki/i18n/tr.po b/addons/wiki/i18n/tr.po
index 76678427663..b1efd0fca01 100644
--- a/addons/wiki/i18n/tr.po
+++ b/addons/wiki/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-11 05:26+0000\n"
+"PO-Revision-Date: 2010-08-29 10:37+0000\n"
"Last-Translator: adsiz_1029@hotmail.com \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-08-12 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: wiki
diff --git a/addons/wiki/wiki.py b/addons/wiki/wiki.py
index 1f85f04afd2..d82ae8e41b6 100644
--- a/addons/wiki/wiki.py
+++ b/addons/wiki/wiki.py
@@ -210,13 +210,13 @@ class History(osv.osv):
_order = 'id DESC'
_columns = {
- 'create_date': fields.datetime("Date", select=True),
- 'text_area': fields.text("Text area"),
- 'minor_edit': fields.boolean('This is a major edit ?', select=True),
- 'summary': fields.char('Summary', size=256, select=True),
- 'write_uid': fields.many2one('res.users', "Modify By", select=True),
- 'wiki_id': fields.many2one('wiki.wiki', 'Wiki Id', select=True)
- }
+ 'create_date': fields.datetime("Date", select=True),
+ 'text_area': fields.text("Text area"),
+ 'minor_edit': fields.boolean('This is a major edit ?', select=True),
+ 'summary': fields.char('Summary', size=256, select=True),
+ 'write_uid': fields.many2one('res.users', "Modify By", select=True),
+ 'wiki_id': fields.many2one('wiki.wiki', 'Wiki Id', select=True)
+ }
_defaults = {
'write_uid': lambda obj, cr, uid, context: uid,
diff --git a/addons/wiki/wiki_view.xml b/addons/wiki/wiki_view.xml
index d21b8f9e9cd..a22267bd52a 100644
--- a/addons/wiki/wiki_view.xml
+++ b/addons/wiki/wiki_view.xml
@@ -185,6 +185,7 @@
tree,form
+ Wiki Pages allows you to share ideas and questions with your coworkers. You can create a new document that can be link to one or several applications (CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. There is a basic wiki editing for text format.
\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: wiki_faq
+#: model:ir.module.module,description:wiki_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr "This module provides a wiki FAQ Template\n"
+" "
+
+#. module: wiki_faq
+#: model:ir.module.module,shortdesc:wiki_faq.module_meta_information
+msgid "Document Management - Wiki - FAQ"
+msgstr "Document Management - Wiki - FAQ"
+
diff --git a/addons/wiki_faq/i18n/fr.po b/addons/wiki_faq/i18n/fr.po
new file mode 100644
index 00000000000..ca86acd948f
--- /dev/null
+++ b/addons/wiki_faq/i18n/fr.po
@@ -0,0 +1,28 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_faq
+#
+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:42:18+0000\n"
+"PO-Revision-Date: 2010-08-20 11:42:18+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: wiki_faq
+#: model:ir.module.module,description:wiki_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr ""
+
+#. module: wiki_faq
+#: model:ir.module.module,shortdesc:wiki_faq.module_meta_information
+msgid "Document Management - Wiki - FAQ"
+msgstr ""
+
diff --git a/addons/wiki_faq/i18n/wiki_faq.pot b/addons/wiki_faq/i18n/wiki_faq.pot
new file mode 100644
index 00000000000..ca86acd948f
--- /dev/null
+++ b/addons/wiki_faq/i18n/wiki_faq.pot
@@ -0,0 +1,28 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_faq
+#
+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:42:18+0000\n"
+"PO-Revision-Date: 2010-08-20 11:42:18+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: wiki_faq
+#: model:ir.module.module,description:wiki_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr ""
+
+#. module: wiki_faq
+#: model:ir.module.module,shortdesc:wiki_faq.module_meta_information
+msgid "Document Management - Wiki - FAQ"
+msgstr ""
+
diff --git a/addons/wiki_faq/wiki_faq.xml b/addons/wiki_faq/wiki_faq.xml
index 1926efd33f7..046451eec93 100644
--- a/addons/wiki_faq/wiki_faq.xml
+++ b/addons/wiki_faq/wiki_faq.xml
@@ -30,7 +30,7 @@ What's the Bug Tracker ?
== Answer ==
-The Open ERP bugtracker allows to manage bugs. Stop using a separated bugtracker. Using Open ERP
+The OpenERP bugtracker allows to manage bugs. Stop using a separated bugtracker. Using OpenERP
will allow you to track time on bugs, to integrate it with the mail gateway, to
link bugs with timesheets, to invoice bugs, etc.
@@ -48,7 +48,7 @@ Integration Benefits:
== External Links ==
-* The Open ERP Website: [http://openerp.com]
+* The OpenERP Website: [http://openerp.com]
* The DMS Documentation: [http://openerp.com]
@@ -87,7 +87,7 @@ Integration Benefits:
== External Links ==
-* The Open ERP Website : [http://openerp.com]
+* The OpenERP Website : [http://openerp.com]
* The DMS Documentation : [http://openerp.com]
diff --git a/addons/wiki_quality_manual/i18n/en_US.po b/addons/wiki_quality_manual/i18n/en_US.po
new file mode 100644
index 00000000000..85a0bd45127
--- /dev/null
+++ b/addons/wiki_quality_manual/i18n/en_US.po
@@ -0,0 +1,29 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_quality_manual
+#
+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:52:06+0000\n"
+"PO-Revision-Date: 2010-08-20 11:52:06+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: wiki_quality_manual
+#: model:ir.module.module,description:wiki_quality_manual.module_meta_information
+msgid "Quality Manual Template\n"
+" "
+msgstr "Quality Manual Template\n"
+" "
+
+#. module: wiki_quality_manual
+#: model:ir.module.module,shortdesc:wiki_quality_manual.module_meta_information
+msgid "Document Management - Wiki - Quality Manual"
+msgstr "Document Management - Wiki - Quality Manual"
+
diff --git a/addons/wiki_quality_manual/i18n/fr.po b/addons/wiki_quality_manual/i18n/fr.po
new file mode 100644
index 00000000000..e26c8ee3eb3
--- /dev/null
+++ b/addons/wiki_quality_manual/i18n/fr.po
@@ -0,0 +1,28 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_quality_manual
+#
+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:48:08+0000\n"
+"PO-Revision-Date: 2010-08-20 11:48: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: wiki_quality_manual
+#: model:ir.module.module,description:wiki_quality_manual.module_meta_information
+msgid "Quality Manual Template\n"
+" "
+msgstr ""
+
+#. module: wiki_quality_manual
+#: model:ir.module.module,shortdesc:wiki_quality_manual.module_meta_information
+msgid "Document Management - Wiki - Quality Manual"
+msgstr ""
+
diff --git a/addons/wiki_quality_manual/i18n/wiki_quality_manual.pot b/addons/wiki_quality_manual/i18n/wiki_quality_manual.pot
new file mode 100644
index 00000000000..e26c8ee3eb3
--- /dev/null
+++ b/addons/wiki_quality_manual/i18n/wiki_quality_manual.pot
@@ -0,0 +1,28 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_quality_manual
+#
+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:48:08+0000\n"
+"PO-Revision-Date: 2010-08-20 11:48: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: wiki_quality_manual
+#: model:ir.module.module,description:wiki_quality_manual.module_meta_information
+msgid "Quality Manual Template\n"
+" "
+msgstr ""
+
+#. module: wiki_quality_manual
+#: model:ir.module.module,shortdesc:wiki_quality_manual.module_meta_information
+msgid "Document Management - Wiki - Quality Manual"
+msgstr ""
+
diff --git a/addons/wiki_sale_faq/i18n/en_US.po b/addons/wiki_sale_faq/i18n/en_US.po
new file mode 100644
index 00000000000..eb52ca35117
--- /dev/null
+++ b/addons/wiki_sale_faq/i18n/en_US.po
@@ -0,0 +1,61 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_sale_faq
+#
+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:57:10+0000\n"
+"PO-Revision-Date: 2010-08-20 11:57:10+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: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_document_form
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_document_files
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_sales
+msgid "Documents"
+msgstr "Documents"
+
+#. module: wiki_sale_faq
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr "Error ! You can not create recursive Menu."
+
+#. module: wiki_sale_faq
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr "Error! You can not create recursive Directories."
+
+#. module: wiki_sale_faq
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_action_wiki_wiki
+msgid "FAQ"
+msgstr "FAQ"
+
+#. module: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_wiki_test
+msgid "Wiki Pages"
+msgstr "Wiki Pages"
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,description:wiki_sale_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr "This module provides a wiki FAQ Template\n"
+" "
+
+#. module: wiki_sale_faq
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,shortdesc:wiki_sale_faq.module_meta_information
+msgid "Wiki -Sale - FAQ"
+msgstr "Wiki -Sale - FAQ"
+
diff --git a/addons/wiki_sale_faq/i18n/fr.po b/addons/wiki_sale_faq/i18n/fr.po
new file mode 100644
index 00000000000..8bcab01242e
--- /dev/null
+++ b/addons/wiki_sale_faq/i18n/fr.po
@@ -0,0 +1,60 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_sale_faq
+#
+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:54:15+0000\n"
+"PO-Revision-Date: 2010-08-20 11:54: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: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_document_form
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_document_files
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_sales
+msgid "Documents"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_action_wiki_wiki
+msgid "FAQ"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_wiki_test
+msgid "Wiki Pages"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,description:wiki_sale_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,shortdesc:wiki_sale_faq.module_meta_information
+msgid "Wiki -Sale - FAQ"
+msgstr ""
+
diff --git a/addons/wiki_sale_faq/i18n/wiki_sale_faq.pot b/addons/wiki_sale_faq/i18n/wiki_sale_faq.pot
new file mode 100644
index 00000000000..8bcab01242e
--- /dev/null
+++ b/addons/wiki_sale_faq/i18n/wiki_sale_faq.pot
@@ -0,0 +1,60 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * wiki_sale_faq
+#
+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:54:15+0000\n"
+"PO-Revision-Date: 2010-08-20 11:54: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: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_document_form
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_document_files
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_sales
+msgid "Documents"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:ir.ui.menu:0
+msgid "Error ! You can not create recursive Menu."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.ui.menu,name:wiki_sale_faq.menu_action_wiki_wiki
+msgid "FAQ"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.actions.act_window,name:wiki_sale_faq.action_wiki_test
+msgid "Wiki Pages"
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,description:wiki_sale_faq.module_meta_information
+msgid "This module provides a wiki FAQ Template\n"
+" "
+msgstr ""
+
+#. module: wiki_sale_faq
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: wiki_sale_faq
+#: model:ir.module.module,shortdesc:wiki_sale_faq.module_meta_information
+msgid "Wiki -Sale - FAQ"
+msgstr ""
+