[MERGE]: Merge with lp:openobject-addons
bzr revid: rpa@tinyerp.com-20100416050540-9s0mmz9fmx4t23eu
This commit is contained in:
@@ -11,8 +11,8 @@
|
||||
<page string="Accounting">
|
||||
<separator string="Sales Properties" colspan="2"/>
|
||||
<separator string="Purchase Properties" colspan="2"/>
|
||||
<field name="property_account_income" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('sale_ok','=',0)]}" />
|
||||
<field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" />
|
||||
<field name="property_account_income" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('sale_ok','=',0)]}" groups="base.group_extended"/>
|
||||
<field name="property_account_expense" domain="[('type','<>','view'),('type','<>','consolidation')]" attrs="{'readonly':[('purchase_ok','=',0)]}" groups="base.group_extended"/>
|
||||
|
||||
<separator string="Sale Taxes" colspan="2"/>
|
||||
<separator string="Purchase Taxes" colspan="2"/>
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 14:29+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 00:46+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
@@ -106,7 +106,7 @@ msgstr "배분 코드"
|
||||
#. module: account_analytic_plans
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "액션 정의에서 유효하지 않은 모델 이름"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: field:account.analytic.plan.line,name:0
|
||||
@@ -116,7 +116,7 @@ msgstr "플랜 이름"
|
||||
#. module: account_analytic_plans
|
||||
#: rml:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Printing date"
|
||||
msgstr ""
|
||||
msgstr "인쇄 날짜"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: rml:account.analytic.account.crossovered.analytic:0
|
||||
@@ -147,7 +147,7 @@ msgstr "분석 저널"
|
||||
#. module: account_analytic_plans
|
||||
#: rml:account.analytic.account.crossovered.analytic:0
|
||||
msgid "100.00%"
|
||||
msgstr ""
|
||||
msgstr "100.00%"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: wizard_field:wizard.crossovered.analytic,init,ref:0
|
||||
@@ -157,7 +157,7 @@ msgstr "분석 계정 참조"
|
||||
#. module: account_analytic_plans
|
||||
#: rml:account.analytic.account.crossovered.analytic:0
|
||||
msgid "Analytic Account :"
|
||||
msgstr ""
|
||||
msgstr "분석 계정:"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
#: view:account.analytic.plan.line:0
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:01+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 01:01+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: analytic_user_function
|
||||
@@ -35,7 +35,7 @@ msgstr "상품"
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic_user_funct_grid,account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
msgstr "분석 계정"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:0
|
||||
@@ -57,7 +57,7 @@ msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
|
||||
msgid "Analytic User Function"
|
||||
msgstr ""
|
||||
msgstr "사용자 함수 분석"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:analytic_user_funct_grid:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-16 13:34+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-04-13 07:22+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:59+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base_contact
|
||||
@@ -266,7 +266,7 @@ msgstr ""
|
||||
#. module: base_contact
|
||||
#: field:res.partner.contact,partner_id:0
|
||||
msgid "Main Employer"
|
||||
msgstr ""
|
||||
msgstr "Основной работодатель"
|
||||
|
||||
#. module: base_contact
|
||||
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
|
||||
@@ -286,7 +286,7 @@ msgstr "Контакт партнера"
|
||||
#. module: base_contact
|
||||
#: model:process.node,name:base_contact.process_node_partners0
|
||||
msgid "Partners"
|
||||
msgstr ""
|
||||
msgstr "Контрагенты"
|
||||
|
||||
#. module: base_contact
|
||||
#: model:process.node,name:base_contact.process_node_addresses0
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<child1>
|
||||
<action colspan="4" height="200" name="%(mrp.mrp_production_action2)d" string="Next production orders" width="510"/>
|
||||
<action colspan="4" name="%(stock.action_picking_all)d" string="Deliveries (Out picking)" domain="[('state','=','assigned'),('type','=','out')]"/>
|
||||
<action colspan="4" name="%(mrp.mrp_procurement_action4)d" string=" Requisition in Exception"/>
|
||||
<action colspan="4" name="%(mrp.mrp_procurement_action4)d" string="Procurements in Exception"/>
|
||||
</child1>
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<field name="view_id" ref="board_mrp_manager_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>
|
||||
<menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>
|
||||
<menuitem
|
||||
id="next_id_87"
|
||||
name="Production"
|
||||
|
||||
+16
-33
@@ -507,28 +507,8 @@ class crm_case(osv.osv):
|
||||
self.write(cr, uid, [case.id], {'stage_id': s[section][st]})
|
||||
return True
|
||||
|
||||
def history(self, cr, uid, ids, keyword, history=False, email=False, details=None, context=None):
|
||||
"""This function is used to make entry in case history according to action performed
|
||||
@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 ids: List of Case ids
|
||||
@param keyword: Case action keyword e.g.: If case is closed "Close" keyword is used
|
||||
@param history: Value True/False, If True it makes entry in case History otherwise in Case Log
|
||||
@param email: Email address if any
|
||||
@param details: Details of case history if any
|
||||
@param context: A standard dictionary for contextual values"""
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
return self.__history(cr, uid, cases, keyword=keyword, \
|
||||
history=history, email=email, details=details, \
|
||||
context=context)
|
||||
|
||||
|
||||
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, context=None):
|
||||
"""This function is used to make entry in case history according to action performed
|
||||
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, context={}):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@@ -545,12 +525,13 @@ class crm_case(osv.osv):
|
||||
for case in cases:
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', case._name)])
|
||||
data = {
|
||||
'name': keyword,
|
||||
'user_id': uid,
|
||||
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'model_id' : model_ids and model_ids[0] or False,
|
||||
'res_id': case.id,
|
||||
'section_id': case.section_id.id
|
||||
'name': keyword,
|
||||
'user_id': uid,
|
||||
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'model_id' : model_ids and model_ids[0] or False,
|
||||
'res_id': case.id,
|
||||
'section_id': case.section_id.id,
|
||||
'message_id':message_id
|
||||
}
|
||||
|
||||
if history:
|
||||
@@ -568,6 +549,7 @@ class crm_case(osv.osv):
|
||||
return True
|
||||
|
||||
_history = __history
|
||||
history = __history
|
||||
|
||||
def create(self, cr, uid, *args, **argv):
|
||||
"""Overrides orm create method
|
||||
@@ -784,11 +766,12 @@ class crm_case_history(osv.osv):
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'description': fields.text('Description'),
|
||||
'note': fields.function(_note_get, method=True, string="Description", type="text"),
|
||||
'email_to': fields.char('Email TO', size=84),
|
||||
'email_from' : fields.char('Email From', size=84),
|
||||
'log_id': fields.many2one('crm.case.log', 'Log', ondelete='cascade'),
|
||||
'description': fields.text('Description'),
|
||||
'note': fields.function(_note_get, method=True, string="Description", type="text"),
|
||||
'email_to': fields.char('Email TO', size=84),
|
||||
'email_from' : fields.char('Email From', size=84),
|
||||
'log_id': fields.many2one('crm.case.log','Log',ondelete='cascade'),
|
||||
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email Server.", select=True),
|
||||
}
|
||||
|
||||
crm_case_history()
|
||||
|
||||
+61
-58
@@ -38,81 +38,84 @@ class crm_cases(osv.osv):
|
||||
_name = "crm.case"
|
||||
_inherit = "crm.case"
|
||||
|
||||
def msg_new(self, cr, uid, msg):
|
||||
|
||||
""" @param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks
|
||||
def message_new(self, cr, uid, msg, context):
|
||||
"""
|
||||
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('mail.gateway')
|
||||
msg_body = mailgate_obj.msg_body_get(msg)
|
||||
msg_subject = mailgate_obj._decode_header(msg['Subject'])
|
||||
msg_from = mailgate_obj._decode_header(msg['From'])
|
||||
msg_cc = mailgate_obj._decode_header(msg['Cc'])
|
||||
body = self.format_body(msg_body['body'])
|
||||
data = {
|
||||
'name': msg_subject,
|
||||
mailgate_pool = self.pool.get('email.server.tools')
|
||||
|
||||
subject = msg.get('subject')
|
||||
body = msg.get('body')
|
||||
msg_from = msg.get('from')
|
||||
priority = msg.get('priority')
|
||||
|
||||
vals = {
|
||||
'name': subject,
|
||||
'email_from': msg_from,
|
||||
'email_cc': msg_cc,
|
||||
'email_cc': msg.get('cc'),
|
||||
'description': body,
|
||||
'user_id': False,
|
||||
'description': body,
|
||||
}
|
||||
res = mailgate_obj.partner_get(cr, uid, msg_from)
|
||||
if msg.get('priority', False):
|
||||
vals['priority'] = priority
|
||||
|
||||
res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
|
||||
if res:
|
||||
data.update(res)
|
||||
res = self.create(cr, uid, data)
|
||||
cases = self.browse(cr, uid, [res])
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from)
|
||||
vals.update(res)
|
||||
res = self.create(cr, uid, vals, context)
|
||||
cases = self.browse(cr, uid, [res])
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from, message_id=msg.get('id'))
|
||||
return res
|
||||
|
||||
def msg_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
|
||||
|
||||
""" @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 ids: List of update mail’s IDs """
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, default_act='pending', context={}):
|
||||
"""
|
||||
@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 ids: List of update mail’s IDs
|
||||
"""
|
||||
|
||||
vals = { }
|
||||
if isinstance(ids, (str, int, long)):
|
||||
select = [ids]
|
||||
else:
|
||||
select = ids
|
||||
mailgate_obj = self.pool.get('mail.gateway')
|
||||
msg_actions, body_data = mailgate_obj.msg_act_get(msg)
|
||||
data.update({
|
||||
'description': body_data,
|
||||
ids = [ids]
|
||||
|
||||
msg_from = msg['from']
|
||||
vals.update({
|
||||
'description': msg['body']
|
||||
})
|
||||
act = 'case_'+default_act
|
||||
if 'state' in msg_actions:
|
||||
if msg_actions['state'] in ['draft','close','cancel','open','pending']:
|
||||
act = 'case_' + msg_actions['state']
|
||||
if msg.get('priority', False):
|
||||
vals['priority'] = msg.get('priority')
|
||||
|
||||
for k1,k2 in [('cost','planned_cost'),('revenue','planned_revenue'),('probability','probability')]:
|
||||
if k1 in msg_actions:
|
||||
data[k2] = float(msg_actions[k1])
|
||||
# act = 'case_'+default_act
|
||||
# if 'state' in msg_actions:
|
||||
# if msg_actions['state'] in ['draft','close','cancel','open','pending']:
|
||||
# act = 'case_' + msg_actions['state']
|
||||
|
||||
if 'priority' in msg_actions:
|
||||
if msg_actions['priority'] in ('1','2','3','4','5'):
|
||||
data['priority'] = msg_actions['priority']
|
||||
# for k1,k2 in [('cost','planned_cost'),('revenue','planned_revenue'),('probability','probability')]:
|
||||
# if k1 in msg_actions:
|
||||
# data[k2] = float(msg_actions[k1])
|
||||
|
||||
if 'partner' in msg_actions:
|
||||
data['email_from'] = msg_actions['partner'][:128]
|
||||
msg_from = self._decode_header(msg['From'])
|
||||
res = self.write(cr, uid, select, data)
|
||||
cases = self.browse(cr, uid, select)
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=body_data, email_from=msg['From'])
|
||||
getattr(self,act)(cr, uid, select)
|
||||
res = self.write(cr, uid, ids, vals)
|
||||
cases = self.browse(cr, uid, ids)
|
||||
message_id = context.get('message_id', False)
|
||||
self._history(cr, uid, cases, _('Receive'), history=True, details=msg['body'], email_from=msg_from, message_id=message_id)
|
||||
#getattr(self, act)(cr, uid, select)
|
||||
return res
|
||||
|
||||
def emails_get(self, cr, uid, ids, context={}):
|
||||
|
||||
""" Get Emails
|
||||
@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 ids: List of email’s IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
"""
|
||||
Get Emails
|
||||
@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 ids: List of email’s IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
res = []
|
||||
if isinstance(ids, (str, int, long)):
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-02-09 23:36+0000\n"
|
||||
"Last-Translator: Sebastien LANGE - http://www.Syleam.fr <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-04-14 15:48+0000\n"
|
||||
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:58+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -1753,7 +1753,7 @@ msgstr "Planifier un appel téléphonique"
|
||||
#. module: crm
|
||||
#: field:crm.case,ref:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "Référence"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,exrule:0
|
||||
@@ -2408,6 +2408,8 @@ msgstr "Historique"
|
||||
msgid ""
|
||||
"This may help associations in their fund raising process and tracking."
|
||||
msgstr ""
|
||||
"Ceci peut aider les associations dans leur procédure de collecte de fonds et "
|
||||
"de suivi."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
|
||||
+12
-11
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-04-11 11:53+0000\n"
|
||||
"PO-Revision-Date: 2010-04-12 19:39+0000\n"
|
||||
"Last-Translator: drygal <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:34+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -113,7 +113,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_hr
|
||||
msgid "Human Resources"
|
||||
msgstr ""
|
||||
msgstr "Zasoby ludzkie"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
|
||||
@@ -237,7 +237,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Proposed Salary"
|
||||
msgstr ""
|
||||
msgstr "Proponowane wynagrodzenie"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.section,sequence:0
|
||||
@@ -250,7 +250,7 @@ msgstr ""
|
||||
#: model:crm.case.categ,name:crm.categ_meet3
|
||||
#, python-format
|
||||
msgid "Phone Call"
|
||||
msgstr ""
|
||||
msgstr "Rozmowa telefoniczna"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_report_crm_case_section_stage
|
||||
@@ -280,7 +280,7 @@ msgstr "Specjalne słowa kluczowe do zastosowania w treści"
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Send New Email"
|
||||
msgstr ""
|
||||
msgstr "Wyślij nową wiadomość"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.history:0
|
||||
@@ -302,6 +302,7 @@ msgstr "Sekcje"
|
||||
#: help:crm.menu.config_wizard,opportunity:0
|
||||
msgid "Tracks identified business opportunities for your sales pipeline."
|
||||
msgstr ""
|
||||
"Ścieżki zidentyfikowanych okazji biznesowych dla twoich kanałów sprzedaży."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
@@ -321,12 +322,12 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job3
|
||||
msgid "Second Interview"
|
||||
msgstr ""
|
||||
msgstr "Druga rozmowa kwalifikacyjna"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
|
||||
msgid "Subscribe to a Remote calendar"
|
||||
msgstr ""
|
||||
msgstr "Zapisz się do zdalnego kalendarza"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_categ-act
|
||||
@@ -353,12 +354,12 @@ msgstr "Daty"
|
||||
#. module: crm
|
||||
#: view:crm.segmentation:0
|
||||
msgid "Segmentation Test"
|
||||
msgstr ""
|
||||
msgstr "Test Segmentacji"
|
||||
|
||||
#. module: crm
|
||||
#: model:process.transition,name:crm.process_transition_leadpartner0
|
||||
msgid "Prospect Partner"
|
||||
msgstr ""
|
||||
msgstr "Potencjalny partner"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.fundraising:0
|
||||
@@ -375,7 +376,7 @@ msgstr ""
|
||||
#: 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 ""
|
||||
msgstr "Połączenie do istniejącego partnera"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,trg_date_range_type:0
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2009-12-16 08:44+0000\n"
|
||||
"Last-Translator: Casufi <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-04-14 03:53+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:58+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -107,7 +107,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_hr
|
||||
msgid "Human Resources"
|
||||
msgstr ""
|
||||
msgstr "Кадры"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
|
||||
@@ -129,7 +129,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
|
||||
msgid "Normal or phone meeting for opportunity"
|
||||
msgstr ""
|
||||
msgstr "Обычное или селекторное совещание по поводу"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_claim2
|
||||
@@ -144,7 +144,7 @@ msgstr ""
|
||||
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr ""
|
||||
msgstr "Внимание!"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
@@ -172,7 +172,7 @@ msgstr ""
|
||||
#: wizard_field:crm.job.meeting_set,init,duration:0
|
||||
#: wizard_field:crm.phonecall.meeting_set,init,duration:0
|
||||
msgid "Duration (Hours)"
|
||||
msgstr ""
|
||||
msgstr "Длительность(в часах)"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,transparent:0
|
||||
|
||||
@@ -67,9 +67,9 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
|
||||
|
||||
soup = BeautifulSoup(html, parseOnlyThese=strainer, fromEncoding=encoding)
|
||||
for link in soup.findAll('a'):
|
||||
title = link.renderContents()
|
||||
title = unicode(link)
|
||||
for url in [x[1] for x in link.attrs if x[0]=='href']:
|
||||
urls.append(dict(url=url, tag=str(link), title=title))
|
||||
urls.append(dict(url=url, tag=unicode(link), title=title))
|
||||
|
||||
html = unicode(soup)
|
||||
|
||||
@@ -162,12 +162,9 @@ class email_parser(object):
|
||||
if charset:
|
||||
try:
|
||||
return s.decode(charset)
|
||||
except UnicodeError:
|
||||
pass
|
||||
try:
|
||||
return s.decode('ascii')
|
||||
except UnicodeError:
|
||||
return s
|
||||
except UnicodeError:
|
||||
pass
|
||||
return s.decode('latin1')
|
||||
|
||||
def _decode_header(self, s):
|
||||
from email.Header import decode_header
|
||||
|
||||
@@ -71,10 +71,14 @@ class crm_send_new_email(osv.osv_memory):
|
||||
attach = filter(lambda x: x, [data['doc1'], data['doc2'], data['doc3']])
|
||||
attach = map(lambda x: x and ('Attachment'+str(attach.index(x)+1), base64.decodestring(x)), attach)
|
||||
|
||||
message_id = None
|
||||
|
||||
if context.get('mail', 'new') == 'new':
|
||||
case = case_pool.browse(cr, uid, res_id)
|
||||
message_id = case.history_line[0].message_id
|
||||
else:
|
||||
hist = hist_obj.browse(cr, uid, res_id)
|
||||
message_id = hist.message_id
|
||||
model = hist.log_id.model_id.model
|
||||
model_pool = self.pool.get(model)
|
||||
case = model_pool.browse(cr, uid, hist.log_id.res_id)
|
||||
@@ -84,7 +88,11 @@ class crm_send_new_email(osv.osv_memory):
|
||||
|
||||
body = case_pool.format_body(body)
|
||||
email_from = data.get('email_from', False)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from, message_id=message_id)
|
||||
|
||||
x_headers = {
|
||||
'References':"%s" % (message_id)
|
||||
}
|
||||
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
@@ -94,6 +102,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
attach=attach,
|
||||
reply_to=case.section_id.reply_to,
|
||||
openobject_id=str(case.id),
|
||||
x_headers=x_headers
|
||||
)
|
||||
if flag:
|
||||
if data['state'] == 'unchanged':
|
||||
@@ -111,7 +120,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
# raise osv.except_osv(_('Email!'), ("Email Successfully Sent"))
|
||||
# else:
|
||||
# raise osv.except_osv(_('Warning!'), _("Email not sent !"))
|
||||
|
||||
|
||||
return {}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
|
||||
@@ -8,20 +8,20 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:32+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 00:44+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:13+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포함하면 안 됩니다 !"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: field:crm_profiling.answer,question_id:0
|
||||
@@ -43,12 +43,12 @@ msgstr "자식 프로파일"
|
||||
#. module: crm_profiling
|
||||
#: model:ir.module.module,shortdesc:crm_profiling.module_meta_information
|
||||
msgid "crm_profiling management"
|
||||
msgstr ""
|
||||
msgstr "crm 프로파일링 관리자(_P)"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "액션 정의에서 유효하지 않은 모델 이름"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: field:crm_profiling.answer,name:0
|
||||
@@ -91,7 +91,7 @@ msgstr "질의서 이용"
|
||||
#. module: crm_profiling
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "유효하지 않은 아키텍처를 위한 XML 보기!"
|
||||
|
||||
#. module: crm_profiling
|
||||
#: view:crm_profiling.questionnaire:0
|
||||
|
||||
@@ -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-04 06:28+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-04-13 05:32+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory,create_date:0
|
||||
msgid "Date Created"
|
||||
msgstr ""
|
||||
msgstr "Дата создания"
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory,ressource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr ""
|
||||
msgstr "ID объекта"
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory.content,include_name:0
|
||||
@@ -47,7 +47,7 @@ msgstr ""
|
||||
#. module: document
|
||||
#: constraint:document.directory:0
|
||||
msgid "Error! You can not create recursive Directories."
|
||||
msgstr ""
|
||||
msgstr "Ошибка! Вы не можете созадавать вложенные друг в друга директории."
|
||||
|
||||
#. module: document
|
||||
#: model:ir.ui.menu,name:document.menu_document_configuration
|
||||
@@ -57,7 +57,7 @@ msgstr ""
|
||||
#. module: document
|
||||
#: view:ir.attachment:0
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
msgstr "Предпросмотр"
|
||||
|
||||
#. module: document
|
||||
#: field:ir.attachment,store_method:0
|
||||
@@ -72,7 +72,7 @@ msgstr ""
|
||||
#. module: document
|
||||
#: field:ir.attachment,file_size:0
|
||||
msgid "File Size"
|
||||
msgstr ""
|
||||
msgstr "Размер файла"
|
||||
|
||||
#. module: document
|
||||
#: help:document.directory.content,include_name:0
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python
|
||||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# mga@tinyerp.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import fetchmail
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python
|
||||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# mga@tinyerp.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "Fetchmail Server",
|
||||
"version" : "1.0",
|
||||
"depends" : ["base", "smtpclient"],
|
||||
"author" : "Tiny",
|
||||
"description": """Fetchail:
|
||||
* Fetch email from Pop / IMAP server
|
||||
* Support SSL
|
||||
* Integrated with all Modules
|
||||
* Automatic Email Receive
|
||||
* Email based Records (Add, Update)
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
"fetchmail_view.xml",
|
||||
"fetchmail_data.xml"
|
||||
],
|
||||
'demo_xml': [
|
||||
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
}
|
||||
@@ -0,0 +1,405 @@
|
||||
#!/usr/bin/env python
|
||||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# mga@tinyerp.com
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
|
||||
import email
|
||||
import binascii
|
||||
import mimetypes
|
||||
|
||||
from imaplib import IMAP4
|
||||
from imaplib import IMAP4_SSL
|
||||
|
||||
from email.header import Header
|
||||
from email.header import decode_header
|
||||
|
||||
import netsvc
|
||||
from osv import osv
|
||||
from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE)
|
||||
|
||||
logger = netsvc.Logger()
|
||||
|
||||
def html2plaintext(html, body_id=None, encoding='utf-8'):
|
||||
## (c) Fry-IT, www.fry-it.com, 2007
|
||||
## <peter@fry-it.com>
|
||||
## download here: http://www.peterbe.com/plog/html2plaintext
|
||||
|
||||
""" from an HTML text, convert the HTML to plain text.
|
||||
If @body_id is provided then this is the tag where the
|
||||
body (not necessarily <body>) starts.
|
||||
"""
|
||||
try:
|
||||
from BeautifulSoup import BeautifulSoup, SoupStrainer, Comment
|
||||
except:
|
||||
return html
|
||||
|
||||
urls = []
|
||||
if body_id is not None:
|
||||
strainer = SoupStrainer(id=body_id)
|
||||
else:
|
||||
strainer = SoupStrainer('body')
|
||||
|
||||
soup = BeautifulSoup(html, parseOnlyThese=strainer, fromEncoding=encoding)
|
||||
for link in soup.findAll('a'):
|
||||
title = link.renderContents()
|
||||
for url in [x[1] for x in link.attrs if x[0]=='href']:
|
||||
urls.append(dict(url=url, tag=str(link), title=title))
|
||||
|
||||
html = soup.__str__()
|
||||
|
||||
url_index = []
|
||||
i = 0
|
||||
for d in urls:
|
||||
if d['title'] == d['url'] or 'http://'+d['title'] == d['url']:
|
||||
html = html.replace(d['tag'], d['url'])
|
||||
else:
|
||||
i += 1
|
||||
html = html.replace(d['tag'], '%s [%s]' % (d['title'], i))
|
||||
url_index.append(d['url'])
|
||||
|
||||
html = html.replace('<strong>','*').replace('</strong>','*')
|
||||
html = html.replace('<b>','*').replace('</b>','*')
|
||||
html = html.replace('<h3>','*').replace('</h3>','*')
|
||||
html = html.replace('<h2>','**').replace('</h2>','**')
|
||||
html = html.replace('<h1>','**').replace('</h1>','**')
|
||||
html = html.replace('<em>','/').replace('</em>','/')
|
||||
|
||||
# the only line breaks we respect is those of ending tags and
|
||||
# breaks
|
||||
|
||||
html = html.replace('\n',' ')
|
||||
html = html.replace('<br>', '\n')
|
||||
html = html.replace('<tr>', '\n')
|
||||
html = html.replace('</p>', '\n\n')
|
||||
html = re.sub('<br\s*/>', '\n', html)
|
||||
html = html.replace(' ' * 2, ' ')
|
||||
|
||||
# for all other tags we failed to clean up, just remove then and
|
||||
# complain about them on the stderr
|
||||
def desperate_fixer(g):
|
||||
#print >>sys.stderr, "failed to clean up %s" % str(g.group())
|
||||
return ' '
|
||||
|
||||
html = re.sub('<.*?>', desperate_fixer, html)
|
||||
|
||||
# lstrip all lines
|
||||
html = '\n'.join([x.lstrip() for x in html.splitlines()])
|
||||
|
||||
for i, url in enumerate(url_index):
|
||||
if i == 0:
|
||||
html += '\n\n'
|
||||
html += '[%s] %s\n' % (i+1, url)
|
||||
return html
|
||||
|
||||
class mail_server(osv.osv):
|
||||
|
||||
_name = 'email.server'
|
||||
_description = "POP/IMAP Server"
|
||||
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=256, required=True, readonly=False),
|
||||
'active':fields.boolean('Active', required=False),
|
||||
'state':fields.selection([
|
||||
('draft','Not Confirme'),
|
||||
('wating','Waiting for Verification'),
|
||||
('done','Confirmed'),
|
||||
],'State', select=True, readonly=True),
|
||||
'server' : fields.char('SMTP Server', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'port' : fields.integer('SMTP Port', required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'type':fields.selection([
|
||||
('pop','POP Server'),
|
||||
('imap','IMAP Server'),
|
||||
],'State', select=True, readonly=True),
|
||||
'is_ssl':fields.boolean('SSL ?', required=False),
|
||||
'date': fields.date('Date'),
|
||||
'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"),
|
||||
}
|
||||
_defaults = {
|
||||
'type': lambda *a: "imap",
|
||||
'state': lambda *a: "draft",
|
||||
'active': lambda *a: True,
|
||||
'priority': lambda *a: 5,
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
def check_duplicate(self, cr, uid, ids):
|
||||
vals = self.read(cr, uid, ids, ['user', 'password'])[0]
|
||||
cr.execute("select count(id) from email_server where user='%s' and password='%s'" % (vals['user'], vals['password']))
|
||||
res = cr.fetchone()
|
||||
if res:
|
||||
if res[0] > 1:
|
||||
return False
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
(check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['user', 'password'])
|
||||
]
|
||||
|
||||
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):
|
||||
port = 0
|
||||
if server_type == 'pop':
|
||||
port = ssl and 995 or 110
|
||||
elif server_type == 'imap':
|
||||
port = ssl and 993 or 143
|
||||
|
||||
return {'value':{'port':port}}
|
||||
|
||||
def _process_email(self, cr, uid, server, message, context={}):
|
||||
history_pool = self.pool.get('mail.server.history')
|
||||
msg_txt = email.message_from_string(message)
|
||||
message_id = msg_txt.get('Message-ID', False)
|
||||
|
||||
msg = {}
|
||||
if not message_id:
|
||||
return False
|
||||
|
||||
fields = msg_txt.keys()
|
||||
|
||||
msg['id'] = message_id
|
||||
msg['message-id'] = message_id
|
||||
|
||||
if 'Subject' in fields:
|
||||
msg['subject'] = msg_txt.get('Subject')
|
||||
|
||||
if 'Content-Type' in fields:
|
||||
msg['content-type'] = msg_txt.get('Content-Type')
|
||||
|
||||
if 'From' in fields:
|
||||
msg['from'] = msg_txt.get('From')
|
||||
|
||||
if 'Delivered-To' in fields:
|
||||
msg['to'] = msg_txt.get('Delivered-To')
|
||||
|
||||
if 'Cc' in fields:
|
||||
msg['cc'] = msg_txt.get('Cc')
|
||||
|
||||
if 'Reply-To' in fields:
|
||||
msg['reply'] = msg_txt.get('Reply-To')
|
||||
|
||||
if 'Date' in fields:
|
||||
msg['date'] = 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 'X-openerp-caseid' in fields:
|
||||
msg['caseid'] = msg_txt.get('X-openerp-caseid')
|
||||
|
||||
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', None):
|
||||
msg['body'] = msg_txt.get_payload(decode=True)
|
||||
|
||||
attachents = {}
|
||||
if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', None):
|
||||
body = ""
|
||||
counter = 1
|
||||
for part in msg_txt.walk():
|
||||
if part.get_content_maintype() == 'multipart':
|
||||
continue
|
||||
|
||||
if part.get_content_maintype()=='text':
|
||||
content = part.get_payload(decode=True)
|
||||
if part.get_content_subtype() == 'html':
|
||||
body = html2plaintext(content)
|
||||
elif part.get_content_subtype() == 'plain':
|
||||
body = content
|
||||
|
||||
filename = part.get_filename()
|
||||
if filename :
|
||||
attachents[filename] = part.get_payload(decode=True)
|
||||
|
||||
elif part.get_content_maintype()=='application' or part.get_content_maintype()=='image' or part.get_content_maintype()=='text':
|
||||
filename = part.get_filename();
|
||||
if filename :
|
||||
attachents[filename] = part.get_payload(decode=True)
|
||||
else:
|
||||
body += part.get_payload(decode=True)
|
||||
|
||||
msg['body'] = body
|
||||
msg['attachments'] = attachents
|
||||
|
||||
if msg.get('references', False):
|
||||
id = False
|
||||
ref = msg.get('references').split('\r\n')
|
||||
if ref:
|
||||
hids = history_pool.search(cr, uid, [('name','=',ref[0])])
|
||||
if hids:
|
||||
id = hids[0]
|
||||
history = history_pool.browse(cr, uid, id)
|
||||
model_pool = self.pool.get(server.object_id.model)
|
||||
context.update({
|
||||
'message_id':ref[0]
|
||||
})
|
||||
model_pool.message_update(cr, uid, [history.res_id], msg, context=context)
|
||||
res_id = id
|
||||
else:
|
||||
model_pool = self.pool.get(server.object_id.model)
|
||||
res_id = model_pool.message_new(cr, uid, msg, context)
|
||||
|
||||
for attactment in attachents or []:
|
||||
data_attach = {
|
||||
'name': attactment,
|
||||
'datas':binascii.b2a_base64(str(attachents.get(attactment))),
|
||||
'datas_fname': attactment,
|
||||
'description': 'Mail attachment',
|
||||
'res_model': server.object_id.model,
|
||||
'res_id': res_id,
|
||||
}
|
||||
self.pool.get('ir.attachment').create(cr, uid, data_attach)
|
||||
|
||||
if server.action_id:
|
||||
action_pool = self.pool.get('ir.actions.server')
|
||||
action_pool.run(cr, uid, [server.action_id.id], {'active_id':res_id, 'active_ids':[res_id]})
|
||||
|
||||
res = {
|
||||
'name': message_id,
|
||||
'res_id': res_id,
|
||||
'server_id': server.id,
|
||||
'note': msg.get('body', msg.get('from')),
|
||||
'ref_id':msg.get('references', msg.get('id')),
|
||||
'type':server.type
|
||||
}
|
||||
his_id = history_pool.create(cr, uid, res)
|
||||
|
||||
return res_id
|
||||
|
||||
def _fetch_mails(self, cr, uid, ids=False, context={}):
|
||||
if not ids:
|
||||
ids = self.search(cr, uid, [])
|
||||
return self.fetch_mail(cr, uid, ids, context)
|
||||
|
||||
def fetch_mail(self, cr, uid, ids, context={}):
|
||||
fp = os.popen('ping www.google.com -c 1 -w 5',"r")
|
||||
if not fp.read():
|
||||
logger.notifyChannel('imap', netsvc.LOG_WARNING, 'No address associated with hostname !')
|
||||
|
||||
for server in self.browse(cr, uid, ids, context):
|
||||
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
|
||||
|
||||
try:
|
||||
if server.type == 'imap':
|
||||
imap_server = None
|
||||
if server.is_ssl:
|
||||
imap_server = IMAP4_SSL(server.server, int(server.port))
|
||||
else:
|
||||
imap_server = IMAP4(server.server, int(server.port))
|
||||
|
||||
imap_server.login(server.user, server.password)
|
||||
imap_server.select()
|
||||
result, data = imap_server.search(None, '(UNSEEN)')
|
||||
count = 0
|
||||
for num in data[0].split():
|
||||
result, data = imap_server.fetch(num, '(RFC822)')
|
||||
self._process_email(cr, uid, server, data[0][1], context)
|
||||
imap_server.store(num, '+FLAGS', '\\Seen')
|
||||
count += 1
|
||||
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch %s email(s) from %s' % (count, server.name))
|
||||
|
||||
imap_server.close()
|
||||
imap_server.logout()
|
||||
except Exception, e:
|
||||
logger.notifyChannel('IMAP', netsvc.LOG_WARNING, '%s' % (e))
|
||||
|
||||
return True
|
||||
|
||||
mail_server()
|
||||
|
||||
class mail_server_history(osv.osv):
|
||||
|
||||
_name = "mail.server.history"
|
||||
_description = "Mail Server History"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Message Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
|
||||
'ref_id': fields.char('Referance Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
|
||||
'res_id': fields.integer("Resource ID", readonly=True, select=True),
|
||||
'server_id': fields.many2one('email.server',"Mail Server", readonly=True, select=True),
|
||||
'model_id':fields.related('server_id', 'object_id', type='many2one', relation='ir.model', string='Model', readonly=True, select=True),
|
||||
'note': fields.text('Notes', readonly=True),
|
||||
'create_date': fields.datetime('Created Date', readonly=True),
|
||||
'type':fields.selection([
|
||||
('pop','POP Server'),
|
||||
('imap','IMAP Server'),
|
||||
],'State', select=True, readonly=True),
|
||||
}
|
||||
_order = 'id desc'
|
||||
|
||||
mail_server_history()
|
||||
|
||||
class fetchmail_tool(osv.osv):
|
||||
"""
|
||||
OpenERP Model : fetchmail_tool
|
||||
"""
|
||||
|
||||
_name = 'email.server.tools'
|
||||
_description = "Email Tools"
|
||||
_auto = False
|
||||
|
||||
def to_email(self, text):
|
||||
_email = re.compile(r'.*<.*@.*\..*>', re.UNICODE)
|
||||
def record(path):
|
||||
eml = path.group()
|
||||
index = eml.index('<')
|
||||
eml = eml[index:-1].replace('<','').replace('>','')
|
||||
return eml
|
||||
|
||||
bits = _email.sub(record, text)
|
||||
return bits
|
||||
|
||||
def get_partner(self, cr, uid, from_email, context=None):
|
||||
"""
|
||||
@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 from_email: email address based on that function will search for the correct
|
||||
"""
|
||||
|
||||
res = {
|
||||
'partner_address_id': False,
|
||||
'partner_id': False
|
||||
}
|
||||
from_email = self.to_email(from_email)
|
||||
address_ids = self.pool.get('res.partner.address').search(cr, uid, [('email', '=', from_email)])
|
||||
if address_ids:
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, address_ids[0])
|
||||
res['partner_address_id'] = address_ids[0]
|
||||
res['partner_id'] = address.partner_id.id
|
||||
|
||||
return res
|
||||
|
||||
fetchmail_tool()
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data noupdate="1">
|
||||
<record id="ir_cron_mail_gateway_action" model="ir.cron">
|
||||
<field name="name">Check Email (Fetchmail)</field>
|
||||
<field name="name">Fetchmail Service</field>
|
||||
<field name="interval_number">5</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'mail.gateway'" name="model"/>
|
||||
<field eval="'email.server'" name="model"/>
|
||||
<field eval="'_fetch_mails'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
</record>
|
||||
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_email_server_tree">
|
||||
<field name="name">email.server.tree</field>
|
||||
<field name="model">email.server</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="POP/IMAP Servers">
|
||||
<field name="name" select="1"/>
|
||||
<field name="type" select="1"/>
|
||||
<field name="user" select="1"/>
|
||||
<field name="is_ssl" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_email_server_form">
|
||||
<field name="name">email.server.form</field>
|
||||
<field name="model">email.server</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="POP/IMAP Server">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1" colspan="4"/>
|
||||
<field name="type" select="1" on_change="onchange_server_type(type, is_ssl)"/>
|
||||
|
||||
<field name="date" select="1"/>
|
||||
<field name="is_ssl" select="1" on_change="onchange_server_type(type, is_ssl)"/>
|
||||
<field name="active" select="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Server & Login">
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Server Information" colspan="2"/>
|
||||
<field name="server" />
|
||||
<field name="port" />
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Login Information" colspan="2"/>
|
||||
<field name="user" />
|
||||
<field name="password" password="True" />
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Auto Reply?" colspan="2"/>
|
||||
<field name="action_id"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Process Parameter" colspan="2"/>
|
||||
<field name="object_id"/>
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<group col="6" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button string="Verify Server" type="object" name="fetch_mail"/>
|
||||
<button string="Schedule"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_email_server_tree">
|
||||
<field name="name">POP Servers</field>
|
||||
<field name="res_model">email.server</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_email_server_tree"/>
|
||||
<field name="context">{'type':'pop'}</field>
|
||||
<field name="domain">[('type','=','pop')]</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="smtpclient.menu_smtpclient_administration_server"
|
||||
id="menu_action_email_server_tree"
|
||||
action="action_email_server_tree"
|
||||
/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_email_server_tree_imap">
|
||||
<field name="name">IMAP Servers</field>
|
||||
<field name="res_model">email.server</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_email_server_tree"/>
|
||||
<field name="context">{'type':'imap'}</field>
|
||||
<field name="domain">[('type','=','imap')]</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="smtpclient.menu_smtpclient_administration_server"
|
||||
id="menu_action_email_server_tree_imap"
|
||||
action="action_email_server_tree_imap"
|
||||
/>
|
||||
|
||||
<record model="ir.ui.view" id="view_mail_server_history_tree">
|
||||
<field name="name">mail.server.history.tree</field>
|
||||
<field name="model">mail.server.history</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Received Mail History">
|
||||
<field name="server_id" select="1"/>
|
||||
<field name="create_date" select="1"/>
|
||||
<field name="model_id"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="ref_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_email_server_history_form">
|
||||
<field name="name">mail.server.history.form</field>
|
||||
<field name="model">mail.server.history</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Email History">
|
||||
<group col="6" colspan="4">
|
||||
<field name="server_id" select="1"/>
|
||||
<field name="create_date" select="1"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Resource Information" colspan="2"/>
|
||||
<field name="model_id" select="1"/>
|
||||
<field name="res_id"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Meta Information" colspan="2"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="ref_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
context="{'server_id': active_id}"
|
||||
domain="[('server_id', '=', active_id)]"
|
||||
id="act_server_history" name="Email History"
|
||||
res_model="mail.server.history" src_model="email.server"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_email_server_history_tree">
|
||||
<field name="name">Receive Email History</field>
|
||||
<field name="res_model">mail.server.history</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_mail_server_history_tree"/>
|
||||
<field name="context">{'type':'imap'}</field>
|
||||
<field name="domain">[('type','=','imap')]</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="menu_action_email_server_tree_imap"
|
||||
id="menu_action_email_server_history_tree"
|
||||
action="action_email_server_history_tree"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_email_server_history_tree_pop">
|
||||
<field name="name">Receive Email History</field>
|
||||
<field name="res_model">mail.server.history</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_mail_server_history_tree"/>
|
||||
<field name="context">{'type':'pop'}</field>
|
||||
<field name="domain">[('type','=','pop')]</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="menu_action_email_server_tree"
|
||||
id="menu_action_email_server_history_tree_pop"
|
||||
action="action_email_server_history_tree_pop"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 13:55+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 00:59+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:12+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr
|
||||
@@ -58,7 +58,7 @@ msgstr "페어런트"
|
||||
#. module: hr
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "액션 정의에 잘못된 모델 이름이 있습니다."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
|
||||
+20
-20
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-10 14:44+0000\n"
|
||||
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-04-13 07:40+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:12+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr
|
||||
@@ -36,7 +36,7 @@ msgstr "Ошибка! Невозможно создать рекурсивные
|
||||
#. module: hr
|
||||
#: field:hr.employee,sinid:0
|
||||
msgid "SIN No"
|
||||
msgstr ""
|
||||
msgstr "Карта социальной защиты(ИНН)"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.module.module,shortdesc:hr.module_meta_information
|
||||
@@ -57,7 +57,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Недопустимое имя модели в определении действия"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
@@ -67,7 +67,7 @@ msgstr "Отдел"
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_contactofemployee0
|
||||
msgid "Contact of employee"
|
||||
msgstr ""
|
||||
msgstr "Контакты сотрудника"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_email:0
|
||||
@@ -93,7 +93,7 @@ msgstr "Пятница"
|
||||
#. module: hr
|
||||
#: field:hr.department,parent_id:0
|
||||
msgid "Parent Department"
|
||||
msgstr ""
|
||||
msgstr "Вышестоящее подразделение"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
@@ -110,7 +110,7 @@ msgstr "Работа с"
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action2
|
||||
msgid "Employee Hierarchy"
|
||||
msgstr ""
|
||||
msgstr "Структура подчинения (сотрудников)"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_hr_configuration
|
||||
@@ -141,7 +141,7 @@ msgstr "Структура сотрудников"
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Social IDs"
|
||||
msgstr ""
|
||||
msgstr "Страховое удостоверение"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_phone:0
|
||||
@@ -189,12 +189,12 @@ msgstr "Участники"
|
||||
#. module: hr
|
||||
#: field:hr.employee,ssnid:0
|
||||
msgid "SSN No"
|
||||
msgstr ""
|
||||
msgstr "Карта социальной защиты (ИНН)"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_contactofemployee0
|
||||
msgid "Fill up contact information"
|
||||
msgstr ""
|
||||
msgstr "Заполните контактную информацию"
|
||||
|
||||
#. module: hr
|
||||
#: constraint:ir.ui.view:0
|
||||
@@ -222,7 +222,7 @@ msgstr "Отделы"
|
||||
#. module: hr
|
||||
#: model:process.node,name:hr.process_node_employeecontact0
|
||||
msgid "Employee Contact"
|
||||
msgstr ""
|
||||
msgstr "Контакты сотрудника"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
@@ -242,7 +242,7 @@ msgstr "Мужской"
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_employeeuser0
|
||||
msgid "Create openerp user"
|
||||
msgstr ""
|
||||
msgstr "Создать пользователя OpenERP"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee.category:0
|
||||
@@ -305,7 +305,7 @@ msgstr "День недели"
|
||||
#. module: hr
|
||||
#: field:hr.employee,birthday:0
|
||||
msgid "Birthday"
|
||||
msgstr ""
|
||||
msgstr "Дата рождения"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,active:0
|
||||
@@ -325,7 +325,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_openerpuser0
|
||||
msgid "Create OpenERP User"
|
||||
msgstr ""
|
||||
msgstr "Создать пользователя OpenERP"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_employee0
|
||||
@@ -361,7 +361,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_id:0
|
||||
msgid "Working Address"
|
||||
msgstr ""
|
||||
msgstr "Рабочий адрес"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,marital:0
|
||||
@@ -416,7 +416,7 @@ msgstr "Категории сотрудников"
|
||||
#. module: hr
|
||||
#: field:hr.employee,address_home_id:0
|
||||
msgid "Home Address"
|
||||
msgstr ""
|
||||
msgstr "Домашний адрес"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
@@ -458,7 +458,7 @@ msgstr "Название отдела"
|
||||
#. module: hr
|
||||
#: field:hr.department,child_ids:0
|
||||
msgid "Child Departments"
|
||||
msgstr ""
|
||||
msgstr "Подчиненные подразделения"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
@@ -468,7 +468,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: model:process.node,note:hr.process_node_employeecontact0
|
||||
msgid "Fill up employee's contact information"
|
||||
msgstr ""
|
||||
msgstr "Заполните контактную информацию о сотруднике"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,manager_id:0
|
||||
@@ -480,7 +480,7 @@ msgstr "Менеджер"
|
||||
#: model:ir.actions.act_window,name:hr.open_view_employee_list_my
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_employee_list_my
|
||||
msgid "All Employees"
|
||||
msgstr ""
|
||||
msgstr "Все сотрудники"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.timesheet,dayofweek:0
|
||||
|
||||
@@ -19,11 +19,5 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import mail_gateway
|
||||
import wizard
|
||||
|
||||
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -19,23 +19,23 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'eMail Gateway',
|
||||
'name': 'Email Gateway System',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/eMail Gate',
|
||||
'description': """
|
||||
The generic email gateway system for the synchronisation interface
|
||||
between mails and Open Objects.
|
||||
""",
|
||||
'category': 'Generic Modules/Mail Service',
|
||||
'description': """The generic email gateway system allows to send and receive emails
|
||||
* IMAP / IMAP with SSL
|
||||
* POP / POP with SSL
|
||||
* SMTP / SMTP with TLS
|
||||
* ACL basd access polocy
|
||||
* Queing and History for Emails
|
||||
* Easy Integration with any Module""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base', 'process'],
|
||||
'init_xml': ['mail_gateway_data.xml',],
|
||||
'depends': ['smtpclient', 'fetchmail'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'mail_gateway_wizard.xml',
|
||||
'mail_gateway_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
|
||||
@@ -1,409 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###########################################################################################
|
||||
|
||||
import re
|
||||
import email, mimetypes
|
||||
from email.Header import decode_header
|
||||
from email.MIMEText import MIMEText
|
||||
import xmlrpclib
|
||||
import os
|
||||
import binascii
|
||||
import time, socket
|
||||
|
||||
from tools.translate import _
|
||||
|
||||
import tools
|
||||
from osv import fields,osv,orm
|
||||
from osv.orm import except_orm
|
||||
import email
|
||||
import netsvc
|
||||
from poplib import POP3, POP3_SSL
|
||||
from imaplib import IMAP4, IMAP4_SSL
|
||||
|
||||
class mail_gateway_server(osv.osv):
|
||||
_name = "mail.gateway.server"
|
||||
_description = "Email Gateway Server"
|
||||
_columns = {
|
||||
'name': fields.char('Server Address',size=64,required=True ,help="IMAP/POP Address Of Email gateway Server"),
|
||||
'login': fields.char('User',size=64,required=True,help="User Login Id of Email gateway"),
|
||||
'password': fields.char('Password',size=64,required=True,help="User Password Of Email gateway"),
|
||||
'server_type': fields.selection([("pop","POP"),("imap","Imap")],"Type of Server", required=True, help="Type of Email gateway Server"),
|
||||
'port': fields.integer("Port" , help="Port Of Email gateway Server. If port is omitted, the standard POP3 port (110) is used for POP EMail Server and the standard IMAP4 port (143) is used for IMAP Sever."),
|
||||
'ssl': fields.boolean('SSL',help ="Use Secure Authentication"),
|
||||
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the email gateway server without removing it."),
|
||||
}
|
||||
_defaults = {
|
||||
'server_type':lambda * a:'pop',
|
||||
'active':lambda * a:True,
|
||||
}
|
||||
|
||||
def check_duplicate(self, cr, uid, ids):
|
||||
vals = self.read(cr, uid, ids, ['name', 'login'])[0]
|
||||
cr.execute("select count(id) from mail_gateway_server \
|
||||
where name='%s' and login='%s'" % \
|
||||
(vals['name'], vals['login']))
|
||||
res = cr.fetchone()
|
||||
if res:
|
||||
if res[0] > 1:
|
||||
return False
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
(check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['name', 'login'])
|
||||
]
|
||||
|
||||
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):
|
||||
port = 0
|
||||
if server_type == 'pop':
|
||||
port = ssl and 995 or 110
|
||||
elif server_type == 'imap':
|
||||
port = ssl and 993 or 143
|
||||
return {'value':{'port':port}}
|
||||
|
||||
mail_gateway_server()
|
||||
|
||||
|
||||
class mail_gateway(osv.osv):
|
||||
_name = "mail.gateway"
|
||||
_description = "Email Gateway"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name',size=64,help="Name of Mail Gateway."),
|
||||
'server_id': fields.many2one('mail.gateway.server',"Gateway Server", required=True),
|
||||
'object_id': fields.many2one('ir.model',"Model", required=True),
|
||||
'reply_to': fields.char('TO', size=64, help="Email address used in reply to/from of outgoing messages"),
|
||||
'email_default': fields.char('Default eMail',size=64,help="Default eMail in case of any trouble."),
|
||||
'mail_history': fields.one2many("mail.gateway.history","gateway_id","History", readonly=True)
|
||||
}
|
||||
_defaults = {
|
||||
'reply_to': lambda * a:tools.config.get('email_from',False)
|
||||
}
|
||||
|
||||
def _fetch_mails(self, cr, uid, ids=False, context={}):
|
||||
'''
|
||||
Function called by the scheduler to fetch mails
|
||||
'''
|
||||
cr.execute('select * from mail_gateway gateway \
|
||||
inner join mail_gateway_server server \
|
||||
on server.id = gateway.server_id where server.active = True')
|
||||
ids2 = map(lambda x: x[0], cr.fetchall() or [])
|
||||
return self.fetch_mails(cr, uid, ids=ids2, context=context)
|
||||
|
||||
def parse_mail(self, cr, uid, gateway_id, email_message, context={}):
|
||||
msg_id, res_id, note = (False, False, False)
|
||||
mail_history_obj = self.pool.get('mail.gateway.history')
|
||||
mailgateway = self.browse(cr, uid, gateway_id, context=context)
|
||||
try :
|
||||
msg_txt = email.message_from_string(email_message)
|
||||
msg_id = msg_txt['Message-ID']
|
||||
res_id = self.msg_parse(cr, uid, gateway_id, msg_txt)
|
||||
except Exception, e:
|
||||
import traceback
|
||||
note = "Error in Parsing Mail: %s " %(str(e))
|
||||
netsvc.Logger().notifyChannel('Emailgate: Parsing mail:%s' % (mailgateway and (mailgateway.name or
|
||||
'%s (%s)'%(mailgateway.server_id.login, mailgateway.server_id.name))) or ''
|
||||
, netsvc.LOG_ERROR, traceback.format_exc())
|
||||
|
||||
mail_history_obj.create(cr, uid, {'name': msg_id, 'res_id': res_id, 'gateway_id': mailgateway.id, 'note': note})
|
||||
return res_id, note
|
||||
|
||||
def fetch_mails(self, cr, uid, ids=[], context={}):
|
||||
log_messages = []
|
||||
mailgate_server = False
|
||||
new_messages = []
|
||||
for mailgateway in self.browse(cr, uid, ids):
|
||||
try :
|
||||
mailgate_server = mailgateway.server_id
|
||||
if not mailgate_server.active:
|
||||
continue
|
||||
mailgate_name = mailgateway.name or "%s (%s)" % (mailgate_server.login, mailgate_server.name)
|
||||
res_model = mailgateway.object_id.name
|
||||
log_messages.append("Mail Server : %s" % mailgate_name)
|
||||
log_messages.append("="*40)
|
||||
new_messages = []
|
||||
if mailgate_server.server_type == 'pop':
|
||||
if mailgate_server.ssl:
|
||||
pop_server = POP3_SSL(mailgate_server.name or 'localhost', mailgate_server.port or 995)
|
||||
else:
|
||||
pop_server = POP3(mailgate_server.name or 'localhost', mailgate_server.port or 110)
|
||||
pop_server.user(mailgate_server.login)
|
||||
pop_server.pass_(mailgate_server.password)
|
||||
pop_server.list()
|
||||
(numMsgs, totalSize) = pop_server.stat()
|
||||
for i in range(1, numMsgs + 1):
|
||||
(header, msges, octets) = pop_server.retr(i)
|
||||
res_id, note = self.parse_mail(cr, uid, mailgateway.id, '\n'.join(msges))
|
||||
log = ''
|
||||
if res_id:
|
||||
log = _('Object Successfully Created : %d of %s'% (res_id, res_model))
|
||||
if note:
|
||||
log = note
|
||||
log_messages.append(log)
|
||||
new_messages.append(i)
|
||||
pop_server.quit()
|
||||
|
||||
elif mailgate_server.server_type == 'imap':
|
||||
if mailgate_server.ssl:
|
||||
imap_server = IMAP4_SSL(mailgate_server.name or 'localhost', mailgate_server.port or 993)
|
||||
else:
|
||||
imap_server = IMAP4(mailgate_server.name or 'localhost', mailgate_server.port or 143)
|
||||
imap_server.login(mailgate_server.login, mailgate_server.password)
|
||||
imap_server.select()
|
||||
typ, data = imap_server.search(None, '(UNSEEN)')
|
||||
for num in data[0].split():
|
||||
typ, data = imap_server.fetch(num, '(RFC822)')
|
||||
res_id, note = self.parse_mail(cr, uid, mailgateway.id, data[0][1])
|
||||
log = ''
|
||||
if res_id:
|
||||
log = _('Object Successfully Created/Modified: %d of %s'% (res_id, res_model))
|
||||
if note:
|
||||
log = note
|
||||
log_messages.append(log)
|
||||
new_messages.append(num)
|
||||
imap_server.close()
|
||||
imap_server.logout()
|
||||
|
||||
except Exception, e:
|
||||
import traceback
|
||||
log_messages.append("Error in Fetching Mail: %s " %(str(e)))
|
||||
netsvc.Logger().notifyChannel('Emailgate: Fetching mail:[%d]%s' %
|
||||
(mailgate_server and mailgate_server.id or 0, mailgate_server and mailgate_server.name or ''),
|
||||
netsvc.LOG_ERROR, traceback.format_exc())
|
||||
|
||||
log_messages.append("-"*25)
|
||||
log_messages.append("Total Read Mail: %d\n\n" %(len(new_messages)))
|
||||
return log_messages
|
||||
|
||||
def emails_get(self, email_from):
|
||||
res = tools.email_re.search(email_from)
|
||||
return res and res.group(1)
|
||||
|
||||
def partner_get(self, cr, uid, email):
|
||||
mail = self.emails_get(email)
|
||||
adr_ids = self.pool.get('res.partner.address').search(cr, uid, [('email', '=', mail)])
|
||||
if not adr_ids:
|
||||
return {}
|
||||
adr = self.pool.get('res.partner.address').read(cr, uid, adr_ids, ['partner_id'])
|
||||
res = {}
|
||||
if len(adr):
|
||||
res = {
|
||||
'partner_address_id': adr[0]['id'],
|
||||
'partner_id': adr[0].get('partner_id',False) and adr[0]['partner_id'][0] or False
|
||||
}
|
||||
return res
|
||||
|
||||
def _to_decode(self, s, charsets):
|
||||
for charset in charsets:
|
||||
if charset:
|
||||
try:
|
||||
return s.decode(charset)
|
||||
except UnicodeError:
|
||||
pass
|
||||
try:
|
||||
return s.decode('ascii')
|
||||
except UnicodeError:
|
||||
return s
|
||||
|
||||
def _decode_header(self, s):
|
||||
from email.Header import decode_header
|
||||
s = decode_header(s)
|
||||
return ''.join(map(lambda x:self._to_decode(x[0], x[1]), s))
|
||||
|
||||
def msg_new(self, cr, uid, msg, model):
|
||||
message = self.msg_body_get(msg)
|
||||
res_model = self.pool.get(model)
|
||||
res_id = res_model.msg_new(cr, uid, msg)
|
||||
if res_id:
|
||||
attachments = message['attachment']
|
||||
|
||||
for attach in attachments or []:
|
||||
data_attach = {
|
||||
'name': str(attach),
|
||||
'datas':binascii.b2a_base64(str(attachments[attach])),
|
||||
'datas_fname': str(attach),
|
||||
'description': 'Mail attachment',
|
||||
'res_model': model,
|
||||
'res_id': res_id
|
||||
}
|
||||
self.pool.get('ir.attachment').create(cr, uid, data_attach)
|
||||
return res_id
|
||||
|
||||
|
||||
def msg_body_get(self, msg):
|
||||
message = {};
|
||||
message['body'] = '';
|
||||
message['attachment'] = {};
|
||||
attachment = message['attachment'];
|
||||
counter = 1;
|
||||
def replace(match):
|
||||
return ''
|
||||
for part in msg.walk():
|
||||
if part.get_content_maintype() == 'multipart':
|
||||
continue
|
||||
|
||||
if part.get_content_maintype()=='text':
|
||||
buf = part.get_payload(decode=True)
|
||||
if buf:
|
||||
txt = self._to_decode(buf, part.get_charsets())
|
||||
txt = re.sub("<(\w)>", replace, txt)
|
||||
txt = re.sub("<\/(\w)>", replace, txt)
|
||||
if txt and part.get_content_subtype() == 'plain':
|
||||
message['body'] += txt
|
||||
elif txt and part.get_content_subtype() == 'html':
|
||||
message['body'] += tools.html2plaintext(txt)
|
||||
|
||||
filename = part.get_filename();
|
||||
if filename :
|
||||
attachment[filename] = part.get_payload(decode=True);
|
||||
|
||||
elif part.get_content_maintype()=='application' or part.get_content_maintype()=='image' or part.get_content_maintype()=='text':
|
||||
filename = part.get_filename();
|
||||
if filename :
|
||||
attachment[filename] = part.get_payload(decode=True);
|
||||
else:
|
||||
filename = 'attach_file'+str(counter);
|
||||
counter += 1;
|
||||
attachment[filename] = part.get_payload(decode=True);
|
||||
#end if
|
||||
#end if
|
||||
message['attachment'] = attachment
|
||||
#end for
|
||||
return message
|
||||
#end def
|
||||
|
||||
def msg_update(self, cr, uid, msg, res_id, res_model, user_email):
|
||||
if user_email and self.emails_get(user_email)==self.emails_get(self._decode_header(msg['From'])):
|
||||
return self.msg_user(cr, uid, msg, res_id, res_model)
|
||||
else:
|
||||
return self.msg_partner(cr, uid, msg, res_id, res_model)
|
||||
|
||||
def msg_act_get(self, msg):
|
||||
body = self.msg_body_get(msg)
|
||||
|
||||
# handle email body commands (ex: Set-State: Draft)
|
||||
actions = {}
|
||||
body_data = ''
|
||||
for line in body['body'].split('\n'):
|
||||
res = tools.command_re.match(line)
|
||||
if res:
|
||||
actions[res.group(1).lower()] = res.group(2).lower()
|
||||
else:
|
||||
body_data += line+'\n'
|
||||
return actions, body_data
|
||||
|
||||
def msg_user(self, cr, uid, msg, res_id, res_model):
|
||||
actions, body_data = self.msg_act_get(msg)
|
||||
data = {}
|
||||
if 'user' in actions:
|
||||
uids = self.pool.get('res.users').name_search(cr, uid, actions['user'])
|
||||
if uids:
|
||||
data['user_id'] = uids[0][0]
|
||||
|
||||
res_model = self.pool.get(res_model)
|
||||
return res_model.msg_update(cr, uid, res_id, msg, data=data, default_act='pending')
|
||||
|
||||
def msg_send(self, msg, reply_to, emails, priority=None, res_id=False):
|
||||
if not emails:
|
||||
return False
|
||||
msg_to = [emails[0]]
|
||||
msg_subject = msg['Subject']
|
||||
msg_cc = []
|
||||
msg_body = self.msg_body_get(msg)
|
||||
if len(emails)>1:
|
||||
msg_cc = emails[1:]
|
||||
msg_attachment = map(lambda x: (x[0], x[1]), msg_body['attachment'].items())
|
||||
return tools.email_send(reply_to, msg_to, msg_subject , msg_body['body'], email_cc=msg_cc,
|
||||
reply_to=reply_to, attach=msg_attachment, openobject_id=res_id, priority=priority)
|
||||
|
||||
|
||||
def msg_partner(self, cr, uid, msg, res_id, res_model):
|
||||
res_model = self.pool.get(res_model)
|
||||
return res_model.msg_update(cr, uid, res_id, msg, data={}, default_act='open')
|
||||
|
||||
|
||||
|
||||
def msg_parse(self, cr, uid, mailgateway_id, msg):
|
||||
mailgateway = self.browse(cr, uid, mailgateway_id)
|
||||
res_model = mailgateway.object_id.model
|
||||
res_str = tools.reference_re.search(msg.get('References', ''))
|
||||
if res_str:
|
||||
res_str = res_str.group(1)
|
||||
else:
|
||||
res_str = tools.res_re.search(msg.get('Subject', ''))
|
||||
if res_str:
|
||||
res_str = res_str.group(1)
|
||||
|
||||
def msg_test(res_str):
|
||||
emails = ('', '', '', '')
|
||||
if not res_str:
|
||||
return (False, emails)
|
||||
res_str = int(res_str)
|
||||
if hasattr(self.pool.get(res_model), 'emails_get'):
|
||||
emails = self.pool.get(res_model).emails_get(cr, uid, [res_str])[0]
|
||||
return (res_str, emails)
|
||||
|
||||
(res_id, emails) = msg_test(res_str)
|
||||
user_email, from_email, cc_email, priority = emails
|
||||
if res_id:
|
||||
self.msg_update(cr, uid, msg, res_id, res_model, user_email)
|
||||
|
||||
else:
|
||||
res_id = self.msg_new(cr, uid, msg, res_model)
|
||||
(res_id, emails) = msg_test(res_id)
|
||||
user_email, from_email, cc_email, priority = emails
|
||||
subject = self._decode_header(msg['subject'])
|
||||
if msg.get('Subject', ''):
|
||||
del msg['Subject']
|
||||
msg['Subject'] = '[%s] %s' %(str(res_id), subject)
|
||||
|
||||
em = [user_email or '', from_email] + (cc_email or '').split(',')
|
||||
emails = map(self.emails_get, filter(None, em))
|
||||
mm = [self._decode_header(msg['From']), self._decode_header(msg['To'])]+self._decode_header(msg.get('Cc','')).split(',')
|
||||
msg_mails = map(self.emails_get, filter(None, mm))
|
||||
emails = filter(lambda m: m and m not in msg_mails, emails)
|
||||
try:
|
||||
self.msg_send(msg, mailgateway.reply_to, emails, priority, res_id)
|
||||
if hasattr(self.pool.get(res_model), 'msg_send'):
|
||||
emails = self.pool.get(res_model).msg_send(cr, uid, res_id)
|
||||
except Exception, e:
|
||||
if mailgateway.email_default:
|
||||
a = self._decode_header(msg['Subject'])
|
||||
del msg['Subject']
|
||||
msg['Subject'] = '[OpenERP-Error] ' + a
|
||||
self.msg_send(msg, mailgateway.reply_to, mailgateway.email_default.split(','), res_id)
|
||||
raise e
|
||||
return res_id
|
||||
|
||||
mail_gateway()
|
||||
|
||||
class mail_gateway_history(osv.osv):
|
||||
_name = "mail.gateway.history"
|
||||
_description = "Mail Gateway History"
|
||||
_columns = {
|
||||
'name': fields.char('Message Id', size=64, help="Message Id in Email Server."),
|
||||
'res_id': fields.integer("Resource ID"),
|
||||
'gateway_id': fields.many2one('mail.gateway',"Mail Gateway", required=True),
|
||||
'model_id':fields.related('gateway_id', 'object_id', type='many2one', relation='ir.model', string='Model'),
|
||||
'note': fields.text('Notes'),
|
||||
'create_date': fields.datetime('Created Date'),
|
||||
}
|
||||
_order = 'id desc'
|
||||
mail_gateway_history()
|
||||
@@ -1,129 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="mail_gateway_history_form" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.history.form</field>
|
||||
<field name="model">mail.gateway.history</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Gateway History">
|
||||
<field name="name"/>
|
||||
<field name="create_date"/>
|
||||
<field name="gateway_id"/>
|
||||
<field name="model_id"/>
|
||||
<field name="res_id"/>
|
||||
<separator string="Note" colspan="4"/>
|
||||
<field name="note" nolabel="1" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_history_tree" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.history.tree</field>
|
||||
<field name="model">mail.gateway.history</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Gateway History">
|
||||
<field name="name" select="1"/>
|
||||
<field name="create_date"/>
|
||||
<field name="model_id"/>
|
||||
<field name="res_id"/>
|
||||
<field name="gateway_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="mail_gateway_act" model="ir.actions.act_window">
|
||||
<field name="name">Gateway History</field>
|
||||
<field name="res_model">mail.gateway.history</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="mail_gateway_history_tree"/>
|
||||
</record>
|
||||
|
||||
<act_window context="{'gateway_id': active_id}"
|
||||
domain="[('gateway_id', '=', active_id)]"
|
||||
id="act_gateway_history" name="Email History"
|
||||
res_model="mail.gateway.history" src_model="mail.gateway" />
|
||||
|
||||
<record id="mail_gateway_form" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.form</field>
|
||||
<field name="model">mail.gateway</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Email Gateway">
|
||||
<field name="name"/>
|
||||
<field name="object_id"/>
|
||||
<field name="server_id" />
|
||||
<field name="reply_to"/>
|
||||
<field name="email_default" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_tree" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.tree</field>
|
||||
<field name="model">mail.gateway</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Email Gateway">
|
||||
<field name="name"/>
|
||||
<field name="object_id"/>
|
||||
<field name="server_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_act" model="ir.actions.act_window">
|
||||
<field name="name">Email Gateway</field>
|
||||
<field name="res_model">mail.gateway</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="mail_gateway_tree"/>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_server_form" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.server.form</field>
|
||||
<field name="model">mail.gateway.server</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Email Gateway Server">
|
||||
<field name="server_type" colspan="4" on_change="onchange_server_type(server_type,ssl)"/>
|
||||
<field name="name"/>
|
||||
<field name="port" />
|
||||
<field name="login" />
|
||||
<field name="password" password="True"/>
|
||||
<field name="ssl" on_change="onchange_server_type(server_type,ssl)"/>
|
||||
<field name="active" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_server_tree" model="ir.ui.view">
|
||||
<field name="name">mail.gateway.server.tree</field>
|
||||
<field name="model">mail.gateway.server</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Email Gateway Server">
|
||||
<field name="name"/>
|
||||
<field name="port" />
|
||||
<field name="server_type"/>
|
||||
<field name="ssl" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mail_gateway_server_act" model="ir.actions.act_window">
|
||||
<field name="name">Email Gateway Server</field>
|
||||
<field name="res_model">mail.gateway.server</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="mail_gateway_server_tree"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="email_gateway_menu_parent" name="Email Gateway" parent="base.menu_config" />
|
||||
<menuitem id="email_gateway_menu" parent="email_gateway_menu_parent" action="mail_gateway_act"/>
|
||||
<menuitem id="email_gateway_server_menu" parent="email_gateway_menu_parent" action="mail_gateway_server_act"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<wizard string="Fetch Mail"
|
||||
model="mail.gateway"
|
||||
name="mail_gateway.fetchmail"
|
||||
id="wizard_mailgateway_fetchmail"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,7 +0,0 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_mail_gateway_server","mail.gateway.server","model_mail_gateway_server","base.group_user",1,0,0,0
|
||||
"access_mail_gateway","mail.gateway","model_mail_gateway","base.group_user",1,0,0,0
|
||||
"access_mail_gateway_history","mail.gateway.history","model_mail_gateway_history","base.group_user",1,0,0,0
|
||||
|
||||
|
||||
|
||||
|
@@ -1,82 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import wizard
|
||||
import time
|
||||
import pooler
|
||||
import tools
|
||||
import os
|
||||
_email_form = '''<?xml version="1.0"?>
|
||||
<form string="Email Gateway">
|
||||
<separator string="Fetching Emails : " />
|
||||
<field name="server" colspan="4" nolabel="1" />
|
||||
</form>'''
|
||||
|
||||
_email_done_form = '''<?xml version="1.0"?>
|
||||
<form string="Email Gateway">
|
||||
<separator string="Log Detail" />
|
||||
<newline/>
|
||||
<field name="message" colspan="4" nolabel="1"/>
|
||||
</form>'''
|
||||
|
||||
_email_fields = {
|
||||
'server': {'string':"Server", 'type':'text', 'readonly':True},
|
||||
}
|
||||
|
||||
_email_done_fields = {
|
||||
'message': {'string':"Log Detail", 'type':'text', 'readonly':True},
|
||||
}
|
||||
|
||||
def _default(self , cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
gateway_pool=pool.get('mail.gateway')
|
||||
server = []
|
||||
for mail_gateway in gateway_pool.browse(cr, uid, data['ids'], context=context):
|
||||
if mail_gateway.server_id.active:
|
||||
server.append(mail_gateway.name or '%s (%s)'%(mail_gateway.server_id.login, mail_gateway.server_id.name) )
|
||||
data['form']['server'] = '\n'.join(server)
|
||||
return data['form']
|
||||
|
||||
def section_fetch_mail(self , cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
gateway_pool=pool.get('mail.gateway')
|
||||
messages = gateway_pool.fetch_mails(cr, uid, ids=data['ids'], context=context)
|
||||
data['form']['message'] = '\n'.join(messages)
|
||||
return data['form']
|
||||
|
||||
class wiz_mailgateway_fetch_mail(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_default],
|
||||
'result': {'type': 'form', 'arch':_email_form, 'fields':_email_fields, 'state':[('end','Cancel','gtk-cancel'), ('fetch','Fetch','gtk-execute')]}
|
||||
},
|
||||
'fetch': {
|
||||
'actions': [section_fetch_mail],
|
||||
'result': {'type': 'form', 'arch': _email_done_form,
|
||||
'fields': _email_done_fields,
|
||||
'state': (
|
||||
('end', 'Close'),
|
||||
)
|
||||
},
|
||||
},
|
||||
}
|
||||
wiz_mailgateway_fetch_mail('mail_gateway.fetchmail')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -26,7 +26,7 @@ class company(osv.osv):
|
||||
_columns = {
|
||||
'schedule_range': fields.float('Scheduler Range', required=True,
|
||||
help="This is the time frame analysed by the scheduler when "\
|
||||
"computing Requisitions. All Requisition that are not between "\
|
||||
"computing procurements. All procurements that are not between "\
|
||||
"today and today+range are skipped for futur computation."),
|
||||
'po_lead': fields.float('Purchase Lead Time', required=True,
|
||||
help="This is the leads/security time for each purchase order."),
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-03-30 10:42+0000\n"
|
||||
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
|
||||
"PO-Revision-Date: 2010-04-13 05:41+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-01 03:41+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
@@ -69,7 +69,7 @@ msgstr "Используемые мощности маршрута"
|
||||
#. module: mrp
|
||||
#: help:mrp.property,composition:0
|
||||
msgid "Not used in computations, for information purpose only."
|
||||
msgstr ""
|
||||
msgstr "Не используется в расчётах, только для справки"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
|
||||
@@ -157,6 +157,8 @@ msgid ""
|
||||
"Number of operation this workcenter can do in parallel. If this workcenter "
|
||||
"represent a team of 5 workers, the capacity per cycle is 5."
|
||||
msgstr ""
|
||||
"Количество одновременно выполняемых рабочим центром операций. Если рабочиё "
|
||||
"центр представлен пятью рабочими, этот показатель равен 5"
|
||||
|
||||
#. module: mrp
|
||||
#: wizard_button:product.product.procurement,init,create:0
|
||||
@@ -204,7 +206,7 @@ msgstr ""
|
||||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Destination Location"
|
||||
msgstr ""
|
||||
msgstr "Место назначения"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.workcenter:0
|
||||
@@ -214,7 +216,7 @@ msgstr "Бухг. аналитика"
|
||||
#. module: mrp
|
||||
#: model:process.node,note:mrp.process_node_servicemts0
|
||||
msgid "Do nothing"
|
||||
msgstr ""
|
||||
msgstr "Ничего не делать"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
@@ -341,7 +343,7 @@ msgstr "Запланированная к производству продук
|
||||
#. module: mrp
|
||||
#: field:mrp.workcenter,timesheet_id:0
|
||||
msgid "Working Time"
|
||||
msgstr ""
|
||||
msgstr "Рабочее время"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.procurement:0
|
||||
|
||||
+5
-5
@@ -992,15 +992,15 @@ mrp_production_product_line()
|
||||
#
|
||||
class mrp_procurement(osv.osv):
|
||||
"""
|
||||
Procument Orders / Requisitions
|
||||
Procument Orders
|
||||
"""
|
||||
_name = "mrp.procurement"
|
||||
_description = "Procurement"
|
||||
_order = 'priority,date_planned'
|
||||
_columns = {
|
||||
'name': fields.char('Reason', size=64, required=True, help='Requisition name.'),
|
||||
'name': fields.char('Reason', size=64, required=True, help='Procurement name.'),
|
||||
'origin': fields.char('Source Document', size=64,
|
||||
help="Reference of the document that created this Requisition.\n"
|
||||
help="Reference of the document that created this Procurement.\n"
|
||||
"This is automatically completed by Open ERP."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', required=True),
|
||||
'date_planned': fields.datetime('Scheduled date', required=True),
|
||||
@@ -1056,7 +1056,7 @@ class mrp_procurement(osv.osv):
|
||||
if s['state'] in ['draft','cancel']:
|
||||
unlink_ids.append(s['id'])
|
||||
else:
|
||||
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Requisition Order(s) which are in %s State!' % s['state']))
|
||||
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Procurement Order(s) which are in %s State!' % s['state']))
|
||||
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
|
||||
|
||||
def onchange_product_id(self, cr, uid, ids, product_id, context={}):
|
||||
@@ -1250,7 +1250,7 @@ class mrp_procurement(osv.osv):
|
||||
move_obj = self.pool.get('stock.move')
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if procurement.product_qty <= 0.00:
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Requisition Order(s), it should not be less than 1!'))
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Procurement Order(s), it should not be less than 1!'))
|
||||
if procurement.product_id.type in ('product', 'consu'):
|
||||
if not procurement.move_id:
|
||||
source = procurement.location_id.id
|
||||
|
||||
@@ -885,7 +885,7 @@
|
||||
sequence="2" />
|
||||
|
||||
<record id="mrp_procurement_action3" model="ir.actions.act_window">
|
||||
<field name="name">Requisitions</field>
|
||||
<field name="name">Procurements</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -895,9 +895,6 @@
|
||||
<field name="context">{}</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="mrp_procurement_action3" id="menu_procurement_requisitions" parent="purchase.menu_procurement_management"
|
||||
sequence="5" />
|
||||
|
||||
<record id="mrp_procurement_action5" model="ir.actions.act_window">
|
||||
<field name="name">Procurement Exceptions</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
||||
@@ -1,102 +1,102 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
<record id="process_process_procurementprocess0" model="process.process">
|
||||
<field eval=""""Requisition"""" name="name"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
<record id="process_process_procurementprocess0" model="process.process">
|
||||
<field eval=""""Procurement"""" name="name"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
<record id="process_node_stockproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""For stockable products and consumables"""" name="note"/>
|
||||
<field eval=""""Stockable Product"""" name="name"/>
|
||||
<field name="process_id" ref="mrp.process_process_stockableproductprocess0"/>
|
||||
<field name="subflow_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_stockproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""For stockable products and consumables"""" name="note"/>
|
||||
<field eval=""""Stockable Product"""" name="name"/>
|
||||
<field name="process_id" ref="mrp.process_process_stockableproductprocess0"/>
|
||||
<field name="subflow_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_serviceproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""For Services."""" name="note"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="process_id" ref="mrp.process_process_serviceproductprocess0"/>
|
||||
<field name="subflow_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_serviceproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""For Services."""" name="note"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="process_id" ref="mrp.process_process_serviceproductprocess0"/>
|
||||
<field name="subflow_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_productionorder0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_production"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Drives the requisition orders for raw material."""" name="note"/>
|
||||
<field eval=""""Production Order"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'picking_except', 'confirmed', 'ready', 'in_production', 'cancel', 'done')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_productionorder0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_production"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Drives the procurement orders for raw material."""" name="note"/>
|
||||
<field eval=""""Production Order"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'picking_except', 'confirmed', 'ready', 'in_production', 'cancel', 'done')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_minimumstockrule0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_action_orderpoint_form"/>
|
||||
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Linked to the 'Minimum stock rule' supplying method."""" name="note"/>
|
||||
<field eval=""""Minimum Stock"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_minimumstockrule0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_action_orderpoint_form"/>
|
||||
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Linked to the 'Minimum stock rule' supplying method."""" name="note"/>
|
||||
<field eval=""""Minimum Stock"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_procureproducts0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""The way to requisition depends on the product type."""" name="note"/>
|
||||
<field eval=""""Procure Products"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_procureproducts0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""The way to procurement depends on the product type."""" name="note"/>
|
||||
<field eval=""""Procure Products"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_stockproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is Stockable or Consumable."""" name="note"/>
|
||||
<field eval=""""Stockable Product"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_stockableproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_stockproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is Stockable or Consumable."""" name="note"/>
|
||||
<field eval=""""Stockable Product"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_stockableproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_serviceproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is service"""" name="note"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_serviceproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
<record id="process_node_serviceproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Product type is service"""" name="note"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="subflow_id" ref="process_process_serviceproductprocess0"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<record id="process_node_purchaseprocure0" model="process.node">
|
||||
<record id="process_node_purchaseprocure0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
@@ -137,83 +137,83 @@
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
<record id="process_transition_servicemto0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Order"""" name="name"/>
|
||||
<field eval=""""If the service has a 'Produce' supply method, this creates a task in the project management module of OpenERP."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_serviceonorder0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
<record id="process_transition_servicemto0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Order"""" name="name"/>
|
||||
<field eval=""""If the service has a 'Produce' supply method, this creates a task in the project management module of OpenERP."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_serviceonorder0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_servicemts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Stock"""" name="name"/>
|
||||
<field eval=""""This is used in case of a service without any impact in the system, a training session for instance."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_servicemts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
<record id="process_transition_servicemts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Stock"""" name="name"/>
|
||||
<field eval=""""This is used in case of a service without any impact in the system, a training session for instance."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_servicemts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_stockmts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Stock"""" name="name"/>
|
||||
<field eval=""""The system waits for the products to be available in the stock. These products are typically procured manually or through a minimum stock rule."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_mts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stockproduct1"/>
|
||||
</record>
|
||||
<record id="process_transition_stockmts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Stock"""" name="name"/>
|
||||
<field eval=""""The system waits for the products to be available in the stock. These products are typically procured manually or through a minimum stock rule."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_mts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stockproduct1"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_stockproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Order"""" name="name"/>
|
||||
<field eval=""""The system creates an order (production or purchased) depending on the sold quantity and the products parameters."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_stock0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stockproduct1"/>
|
||||
</record>
|
||||
<record id="process_transition_stockproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Make to Order"""" name="name"/>
|
||||
<field eval=""""The system creates an order (production or purchased) depending on the sold quantity and the products parameters."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_stock0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stockproduct1"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_productionprocureproducts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Requisition of raw material"""" name="name"/>
|
||||
<field eval=""""In order to supply raw material (to be purchased or produced), the production order creates as much requisition orders as components listed in the BOM, through a run of the schedulers (MRP)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_productionorder0"/>
|
||||
</record>
|
||||
<record id="process_transition_productionprocureproducts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of raw material"""" name="name"/>
|
||||
<field eval=""""In order to supply raw material (to be purchased or produced), the production order creates as much procurement orders as components listed in the BOM, through a run of the schedulers (MRP)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_productionorder0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_minimumstockprocure0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""'Minimum stock rule' material"""" name="name"/>
|
||||
<field eval=""""The 'Minimum stock rule' allows the system to create procurement orders automatically as soon as the minimum stock is reached."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_minimumstockrule0"/>
|
||||
</record>
|
||||
<record id="process_transition_minimumstockprocure0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""'Minimum stock rule' material"""" name="name"/>
|
||||
<field eval=""""The 'Minimum stock rule' allows the system to create procurement orders automatically as soon as the minimum stock is reached."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_minimumstockrule0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_procurestockableproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of stockable Products"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to supply the stockable products, the procurement order creates a RFQ, a production order, ... """" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_stockproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
<record id="process_transition_procurestockableproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of stockable Products"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to supply the stockable products, the procurement order creates a RFQ, a production order, ... """" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_stockproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_procureserviceproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Requisition of services"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to 'supply' the service, the requisition order creates a RFQ for a subcontracting purchase order or waits until the service is done (= the delivery of the products)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_serviceproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
<record id="process_transition_procureserviceproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of services"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to 'supply' the service, the procurement order creates a RFQ for a subcontracting purchase order or waits until the service is done (= the delivery of the products)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_serviceproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_purchaseprocure0" model="process.transition">
|
||||
<record id="process_transition_purchaseprocure0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Automatic RFQ"""" name="name"/>
|
||||
@@ -240,7 +240,7 @@
|
||||
<field model="process.node" name="source_node_id" ref="process_node_billofmaterial0"/>
|
||||
</record>
|
||||
|
||||
<record id="process_transition_bom0" model="process.transition">
|
||||
<record id="process_transition_bom0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Manufacturing decomposition"""" name="name"/>
|
||||
@@ -249,5 +249,5 @@
|
||||
<field model="process.node" name="source_node_id" ref="product.process_node_product0"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -115,7 +115,7 @@ class mrp_procurement(osv.osv):
|
||||
'''% (start_date, end_date, report_total, report_except, report_later)
|
||||
summary += '\n'.join(report)
|
||||
request.create(cr, uid,
|
||||
{'name': "Requisition calculation report.",
|
||||
{'name': "Procurement calculation report.",
|
||||
'act_from': uid,
|
||||
'act_to': uid,
|
||||
'body': summary,
|
||||
|
||||
+5
-5
@@ -44,13 +44,13 @@ class stock_warehouse_orderpoint(osv.osv):
|
||||
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True ),
|
||||
'product_min_qty': fields.float('Min Quantity', required=True,
|
||||
help="When the virtual stock goes belong the Min Quantity, Open ERP generates "\
|
||||
"a requisition to bring the virtual stock to the Max Quantity."),
|
||||
"a procurement to bring the virtual stock to the Max Quantity."),
|
||||
'product_max_qty': fields.float('Max Quantity', required=True,
|
||||
help="When the virtual stock goes belong the Min Quantity, Open ERP generates "\
|
||||
"a requisition to bring the virtual stock to the Max Quantity."),
|
||||
"a procurement to bring the virtual stock to the Max Quantity."),
|
||||
'qty_multiple': fields.integer('Qty Multiple', required=True,
|
||||
help="The requisition quantity will by rounded up to this multiple."),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Latest Requisition'),
|
||||
help="The procurement quantity will by rounded up to this multiple."),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Latest procurement'),
|
||||
'company_id': fields.many2one('res.company','Company',required=True),
|
||||
}
|
||||
_defaults = {
|
||||
@@ -94,7 +94,7 @@ class StockMove(osv.osv):
|
||||
_inherit = 'stock.move'
|
||||
_columns = {
|
||||
'production_id': fields.many2one('mrp.production', 'Production', select=True),
|
||||
'procurements': fields.one2many('mrp.procurement', 'move_id', 'Requisitions'),
|
||||
'procurements': fields.one2many('mrp.procurement', 'move_id', 'Procurements'),
|
||||
}
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
default = default or {}
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!-- Make Procurement -->
|
||||
|
||||
<record id="view_make_procurment_wizard" model="ir.ui.view">
|
||||
<field name="name">Requisition Request</field>
|
||||
|
||||
<record id="view_make_procurment_wizard" model="ir.ui.view">
|
||||
<field name="name">Procurement Request</field>
|
||||
<field name="model">make.procurement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Requisition Request">
|
||||
<label string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders." colspan="4"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="qty"/>
|
||||
<field name="uom_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="warehouse_id" colspan="4"/>
|
||||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Cancel" />
|
||||
<button name="make_procurement" string="Ask New Products"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
<form string="Procurement Request">
|
||||
<label string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders." colspan="4"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="qty"/>
|
||||
<field name="uom_id"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="warehouse_id" colspan="4"/>
|
||||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Cancel" />
|
||||
<button name="make_procurement" string="Ask New Products"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Requisition Request"
|
||||
res_model="make.procurement"
|
||||
src_model="product.product"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="act_make_procurement"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
<act_window name="Procurement Request"
|
||||
res_model="make.procurement"
|
||||
src_model="product.product"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="act_make_procurement"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!-- Compute Procurement -->
|
||||
|
||||
<record id="view_compute_procurment_wizard" model="ir.ui.view">
|
||||
|
||||
<record id="view_compute_procurment_wizard" model="ir.ui.view">
|
||||
<field name="name">Compute Procurements</field>
|
||||
<field name="model">mrp.procurement.compute</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Parameters">
|
||||
<label string="This wizard will schedule procurements." colspan="4" align="0.0"/>
|
||||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Cancel" />
|
||||
<button name="procure_calculation" string="Compute Requisitions"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
<label string="This wizard will schedule procurements." colspan="4" align="0.0"/>
|
||||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="Cancel" />
|
||||
<button name="procure_calculation" string="Compute Procurements"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <act_window name="Compute Procurements" -->
|
||||
<!-- res_model="mrp.procurement.compute"-->
|
||||
<!-- src_model="mrp.procurement"-->
|
||||
<!-- view_mode="form"-->
|
||||
<!-- target="new" -->
|
||||
<!-- <act_window name="Compute Procurements" -->
|
||||
<!-- res_model="mrp.procurement.compute"-->
|
||||
<!-- src_model="mrp.procurement"-->
|
||||
<!-- view_mode="form"-->
|
||||
<!-- target="new" -->
|
||||
<!-- key2="client_action_multi" -->
|
||||
<!-- id="act_compute_procurement"/> -->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
<!-- id="act_compute_procurement"/> -->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data>
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# Requisition - Automatic schedule
|
||||
# Procurements - Automatic schedule
|
||||
# -----------------------------------------------------------
|
||||
|
||||
<record model="workflow.transition" id="mrp.trans_confirm_confirm_wait">
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:34+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp_operations
|
||||
|
||||
@@ -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-04 05:52+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-04-13 06:10+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:12+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp_operations
|
||||
@@ -128,7 +128,7 @@ msgstr ""
|
||||
#. module: mrp_operations
|
||||
#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_code_action
|
||||
msgid "Start - Stop Codes"
|
||||
msgstr ""
|
||||
msgstr "Штрих-коды Старт/Стоп"
|
||||
|
||||
#. module: mrp_operations
|
||||
#: field:mrp.production.workcenter.line,uom:0
|
||||
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:34+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: olap
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# 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 <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
|
||||
"PO-Revision-Date: 2010-04-14 10:45+0000\n"
|
||||
"Last-Translator: Krystian Twardowski <Unknown>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-15 03:59+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"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-12 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:34+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: olap_extract
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Romanian translation for openobject-addons
|
||||
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
|
||||
"PO-Revision-Date: 2010-04-15 10:48+0000\n"
|
||||
"Last-Translator: geopop65 <Unknown>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+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"
|
||||
" Modulul de vânzări va încărca datele în tabelele olap\n"
|
||||
" "
|
||||
|
||||
#. module: olap_sale
|
||||
#: model:ir.module.module,shortdesc:olap_sale.module_meta_information
|
||||
msgid "olap_sale"
|
||||
msgstr "olap_sale"
|
||||
+47
-33
@@ -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: 2010-02-24 10:54+0000\n"
|
||||
"Last-Translator: Auduf <5097@mail.ru>\n"
|
||||
"PO-Revision-Date: 2010-04-13 05:28+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:06+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: product
|
||||
@@ -44,6 +44,7 @@ msgid ""
|
||||
"Determine if the product is visible in the list of products within a "
|
||||
"selection from a purchase order line."
|
||||
msgstr ""
|
||||
"Должно ли изделие быть видимым при выборе из списка изделий в форме заказа"
|
||||
|
||||
#. module: product
|
||||
#: help:product.supplierinfo,name:0
|
||||
@@ -123,7 +124,7 @@ 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
|
||||
@@ -143,12 +144,12 @@ msgstr "Каталог продукции"
|
||||
#. module: product
|
||||
#: model:product.category,name:product.cat1
|
||||
msgid "Sellable"
|
||||
msgstr ""
|
||||
msgstr "Для продажи"
|
||||
|
||||
#. module: product
|
||||
#: model:product.template,name:product.product_product_26_product_template
|
||||
msgid "Kit Keyboard + Mouse"
|
||||
msgstr ""
|
||||
msgstr "Комплект мыши и клавиатуры"
|
||||
|
||||
#. module: product
|
||||
#: field:product.price.type,name:0
|
||||
@@ -168,7 +169,7 @@ msgstr "Компания"
|
||||
#. module: product
|
||||
#: field:product.template,rental:0
|
||||
msgid "Rentable Product"
|
||||
msgstr ""
|
||||
msgstr "Изделие для аренды"
|
||||
|
||||
#. module: product
|
||||
#: field:product.product,lst_price:0
|
||||
@@ -197,6 +198,7 @@ msgid ""
|
||||
"Base price for computing the customer price. Sometimes called the catalog "
|
||||
"price."
|
||||
msgstr ""
|
||||
"Базовая цена для расчёта цены продажи. Иногда называется справочой ценой."
|
||||
|
||||
#. module: product
|
||||
#: field:pricelist.partnerinfo,min_quantity:0
|
||||
@@ -211,12 +213,12 @@ msgstr "Процессор 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
|
||||
@@ -265,7 +267,7 @@ 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
|
||||
@@ -283,6 +285,10 @@ 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
|
||||
@@ -328,7 +334,7 @@ msgstr "Базовае цены"
|
||||
#. module: product
|
||||
#: model:ir.ui.menu,name:product.menu_price
|
||||
msgid "Prices Computations"
|
||||
msgstr ""
|
||||
msgstr "Вычисление цен"
|
||||
|
||||
#. module: product
|
||||
#: field:product.pricelist.item,name:0
|
||||
@@ -353,7 +359,7 @@ msgstr "Ошибка ! Невозможно создать рекурсивну
|
||||
#. module: product
|
||||
#: field:product.template,uom_id:0
|
||||
msgid "Default UoM"
|
||||
msgstr ""
|
||||
msgstr "Единица измерения по умолчанию"
|
||||
|
||||
#. module: product
|
||||
#: field:product.template,produce_delay:0
|
||||
@@ -516,7 +522,7 @@ msgstr "Каталоги"
|
||||
#. module: product
|
||||
#: field:product.supplierinfo,product_name:0
|
||||
msgid "Partner Product Name"
|
||||
msgstr ""
|
||||
msgstr "Наименование изделия партнёра"
|
||||
|
||||
#. module: product
|
||||
#: view:product.product:0
|
||||
@@ -563,7 +569,7 @@ msgstr ""
|
||||
#. module: product
|
||||
#: field:product.template,seller_delay:0
|
||||
msgid "Supplier Lead Time"
|
||||
msgstr ""
|
||||
msgstr "Время поставки"
|
||||
|
||||
#. module: product
|
||||
#: model:product.pricelist.version,name:product.ver0
|
||||
@@ -608,7 +614,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
|
||||
@@ -725,7 +731,7 @@ msgstr "Стеллаж"
|
||||
#. module: product
|
||||
#: field:product.uom,category_id:0
|
||||
msgid "UoM Category"
|
||||
msgstr ""
|
||||
msgstr "Категория единиц измерения"
|
||||
|
||||
#. module: product
|
||||
#: selection:product.ul,type:0
|
||||
@@ -817,7 +823,7 @@ 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
|
||||
@@ -828,7 +834,7 @@ 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
|
||||
@@ -838,7 +844,7 @@ msgstr "Дата начала"
|
||||
#. module: product
|
||||
#: view:res.partner:0
|
||||
msgid "Sales Properties"
|
||||
msgstr ""
|
||||
msgstr "Свойства продажи"
|
||||
|
||||
#. module: product
|
||||
#: help:product.product,qty_available:0
|
||||
@@ -846,6 +852,8 @@ msgid ""
|
||||
"Current quantities of products in selected locations or all internal if none "
|
||||
"have been selected."
|
||||
msgstr ""
|
||||
"Текуще количество продукции в выбранных складах или общее количество, если "
|
||||
"ничего не выбрано."
|
||||
|
||||
#. module: product
|
||||
#: model:product.template,name:product.product_product_pc1_product_template
|
||||
@@ -891,6 +899,8 @@ 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
|
||||
@@ -905,7 +915,7 @@ msgstr "Можно продавать"
|
||||
#. module: product
|
||||
#: model:product.template,name:product.product_product_23_product_template
|
||||
msgid "Complete PC With Peripherals"
|
||||
msgstr ""
|
||||
msgstr "Комплектовать ПК периферией"
|
||||
|
||||
#. module: product
|
||||
#: constraint:product.template:0
|
||||
@@ -994,7 +1004,7 @@ msgstr ""
|
||||
#. module: product
|
||||
#: field:product.pricelist.item,price_max_margin:0
|
||||
msgid "Max. Price Margin"
|
||||
msgstr ""
|
||||
msgstr "Максимальная маржа цены"
|
||||
|
||||
#. module: product
|
||||
#: view:res.partner:0
|
||||
@@ -1113,12 +1123,12 @@ msgstr "Длина пакета"
|
||||
#. module: product
|
||||
#: field:product.pricelist.item,price_min_margin:0
|
||||
msgid "Min. Price Margin"
|
||||
msgstr ""
|
||||
msgstr "Минимальная маржа цены"
|
||||
|
||||
#. module: product
|
||||
#: help:product.packaging,ean:0
|
||||
msgid "The EAN code of the package unit."
|
||||
msgstr ""
|
||||
msgstr "Штрих-код EAN упаковки"
|
||||
|
||||
#. module: product
|
||||
#: field:product.template,weight:0
|
||||
@@ -1233,7 +1243,7 @@ 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
|
||||
@@ -1303,7 +1313,7 @@ msgstr "Жесткий диск Seagate 7200.8 120GB"
|
||||
#. module: product
|
||||
#: wizard_field:product.price_list,init,qty2:0
|
||||
msgid "Quantity-2"
|
||||
msgstr ""
|
||||
msgstr "Количество-2"
|
||||
|
||||
#. module: product
|
||||
#: view:product.product:0
|
||||
@@ -1327,12 +1337,12 @@ msgstr ""
|
||||
#. 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
|
||||
msgid "Quantity-5"
|
||||
msgstr ""
|
||||
msgstr "Количество-5"
|
||||
|
||||
#. module: product
|
||||
#: view:product.packaging:0
|
||||
@@ -1394,7 +1404,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
|
||||
@@ -1449,6 +1459,8 @@ 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
|
||||
@@ -1458,7 +1470,7 @@ 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
|
||||
@@ -1595,7 +1607,7 @@ msgstr "Конец жизненного цикла"
|
||||
#. module: product
|
||||
#: model:ir.module.module,shortdesc:product.module_meta_information
|
||||
msgid "Products & Pricelists"
|
||||
msgstr ""
|
||||
msgstr "Изделия и каталоги"
|
||||
|
||||
#. module: product
|
||||
#: help:product.uom,factor:0
|
||||
@@ -1648,7 +1660,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
|
||||
@@ -1667,6 +1679,8 @@ msgid ""
|
||||
"reception of the products in your warehouse. Used by the scheduler for "
|
||||
"automatic computation of the purchase order planning."
|
||||
msgstr ""
|
||||
"Задержка в днях между подтверждением заказа и поступлением изделия на склад. "
|
||||
"Используется планировщиком для автоматического планирования заказов."
|
||||
|
||||
#. module: product
|
||||
#: help:product.template,uom_po_id:0
|
||||
@@ -1695,12 +1709,12 @@ msgstr ""
|
||||
#. module: product
|
||||
#: model:ir.actions.report.xml,name:product.report_product_label
|
||||
msgid "Products Labels"
|
||||
msgstr ""
|
||||
msgstr "Этикетки изделия"
|
||||
|
||||
#. module: product
|
||||
#: help:product.template,volume:0
|
||||
msgid "The volume in m3."
|
||||
msgstr ""
|
||||
msgstr "Объём в метрах куб."
|
||||
|
||||
#. module: product
|
||||
#: model:product.ul,name:product.product_ul_big_box
|
||||
|
||||
@@ -256,11 +256,11 @@ class product_template(osv.osv):
|
||||
'description': fields.text('Description',translate=True),
|
||||
'description_purchase': fields.text('Purchase Description',translate=True),
|
||||
'description_sale': fields.text('Sale Description',translate=True),
|
||||
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way requisitions are processed. Consumables are stockable products with infinite stock, or for use when you have no inventory management in the system."),
|
||||
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="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."),
|
||||
'supply_method': fields.selection([('produce','Produce'),('buy','Buy')], 'Supply method', required=True, help="Produce will generate production order or tasks, according to the product type. Purchase will trigger purchase orders when requested."),
|
||||
'sale_delay': fields.float('Customer Lead Time', help="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."),
|
||||
'produce_delay': fields.float('Manufacturing Lead Time', help="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 lead times will be summed for all levels and purchase orders."),
|
||||
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Requisition Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the requisition request."),
|
||||
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', required=True, help="'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."),
|
||||
'rental': fields.boolean('Can be Rent'),
|
||||
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]"),
|
||||
'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Sale Price'), help="Base price for computing the customer price. Sometimes called the catalog price."),
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<notebook colspan="4">
|
||||
<page string="Information">
|
||||
<group colspan="2" col="2">
|
||||
<separator string=" Requisition" colspan="2"/>
|
||||
<separator string="Procurement" colspan="2"/>
|
||||
<field name="type" select="2"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="supply_method"/>
|
||||
@@ -118,7 +118,7 @@
|
||||
</group>
|
||||
|
||||
</page>
|
||||
<page string="Requisition & Locations">
|
||||
<page string="Procurement & Locations">
|
||||
<group colspan="2" col="2" name="delay">
|
||||
<separator string="Delays" colspan="2"/>
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
@@ -144,8 +144,8 @@
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
<field name="list_price"/>
|
||||
<newline/>
|
||||
<field name="price_margin" select="1"/>
|
||||
<field name="price_extra" select="1"/>
|
||||
<field name="price_margin" groups="base.group_extended"/>
|
||||
<field name="price_extra" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field groups="base.group_extended" name="cost_method"/>
|
||||
<newline/>
|
||||
@@ -428,8 +428,8 @@
|
||||
<form string="Supplier Information">
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
<field name="product_name"/>
|
||||
<field name="product_code"/>
|
||||
<field name="product_name" groups="base.group_extended"/>
|
||||
<field name="product_code" groups="base.group_extended"/>
|
||||
<field name="delay"/>
|
||||
<field name="qty"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
@@ -456,7 +456,6 @@
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="qty"/>
|
||||
<field name="product_code"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -528,7 +527,7 @@
|
||||
<notebook colspan="4">
|
||||
<page string="Information">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Requisition" colspan="2"/>
|
||||
<separator string="Procurement" colspan="2"/>
|
||||
<field name="type" select="2"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="supply_method"/>
|
||||
@@ -562,7 +561,7 @@
|
||||
</group>
|
||||
|
||||
</page>
|
||||
<page string="Requisition & Locations">
|
||||
<page string="Procurement & Locations" groups="base.group_extended">
|
||||
<group colspan="2" col="2" name="delay">
|
||||
<separator string="Delays" colspan="2"/>
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
@@ -575,7 +574,6 @@
|
||||
<field name="loc_row"/>
|
||||
<field name="loc_case"/>
|
||||
</group>
|
||||
|
||||
<group colspan="2" col="2" name="misc">
|
||||
<separator string="Miscelleanous" colspan="2"/>
|
||||
</group>
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
</td>
|
||||
</tr><tr>
|
||||
<td>
|
||||
<barCode><xsl:value-of select="code"/></barCode>
|
||||
</td><td>
|
||||
<para style="nospace"><xsl:value-of select="product"/></para><xsl:text>, </xsl:text>
|
||||
<para style="nospace"><xsl:value-of select="variant"/></para>
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 12:04+0000\n"
|
||||
"Last-Translator: Freerk Kalsbeek (Mindswitch BV) <f.kalsbeek@mindswitch.nl>\n"
|
||||
"PO-Revision-Date: 2010-04-15 09:57+0000\n"
|
||||
"Last-Translator: The Loeki <the.loeki@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:11+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
@@ -110,7 +110,7 @@ msgstr ""
|
||||
#. module: profile_manufacturing
|
||||
#: view:profile.manufacturing.config.install_modules_wizard:0
|
||||
msgid "Stock & Manufacturing"
|
||||
msgstr ""
|
||||
msgstr "Voorraad en productie"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: help:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
|
||||
@@ -158,7 +158,7 @@ msgstr ""
|
||||
#. module: profile_manufacturing
|
||||
#: view:profile.manufacturing.config.install_modules_wizard:0
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
msgstr "Installeren"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,sale_crm:0
|
||||
@@ -168,7 +168,7 @@ msgstr ""
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
|
||||
msgid "Repair"
|
||||
msgstr ""
|
||||
msgstr "Reparatie"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: help:profile.manufacturing.config.install_modules_wizard,sale_margin:0
|
||||
@@ -197,12 +197,12 @@ msgstr ""
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,warning:0
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "Waarschuwing"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,sale_margin:0
|
||||
msgid "Margins on Sales Order"
|
||||
msgstr ""
|
||||
msgstr "Marges op verkooporder"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: help:profile.manufacturing.config.install_modules_wizard,stock_location:0
|
||||
@@ -217,14 +217,14 @@ msgstr ""
|
||||
#. module: profile_manufacturing
|
||||
#: view:profile.manufacturing.config.install_modules_wizard:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,point_of_sale:0
|
||||
msgid "Point of Sale"
|
||||
msgstr ""
|
||||
msgstr "Verkooppunt"
|
||||
|
||||
#. module: profile_manufacturing
|
||||
#: field:profile.manufacturing.config.install_modules_wizard,stock_location:0
|
||||
msgid "Advanced Locations"
|
||||
msgstr ""
|
||||
msgstr "Uitgebreide locaties"
|
||||
|
||||
+26
-22
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-25 21:17+0000\n"
|
||||
"Last-Translator: marath <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-04-13 05:53+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:52+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:49+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project
|
||||
@@ -24,12 +24,12 @@ msgstr "Назначенные задания"
|
||||
#. module: project
|
||||
#: model:process.process,name:project.process_process_tasksprocess0
|
||||
msgid "Tasks Process"
|
||||
msgstr ""
|
||||
msgstr "Ход заданий"
|
||||
|
||||
#. module: project
|
||||
#: help:project.task.delegate,init,name:0
|
||||
msgid "New title of the task delegated to the user."
|
||||
msgstr "Новое название задания, порученного пользователю."
|
||||
msgstr "Новый заголовок задания, назначенного пользователю"
|
||||
|
||||
#. module: project
|
||||
#: view:config.compute.remaining:0
|
||||
@@ -44,17 +44,17 @@ msgstr "Закрыть задание"
|
||||
#. module: project
|
||||
#: view:project.task:0
|
||||
msgid "Project Tasks"
|
||||
msgstr ""
|
||||
msgstr "Задания проекта"
|
||||
|
||||
#. module: project
|
||||
#: model:process.transition,name:project.process_transition_opendonetask0
|
||||
msgid "Open Done Task"
|
||||
msgstr ""
|
||||
msgstr "Открыть выполненные задания"
|
||||
|
||||
#. module: project
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Недопустимое имя модели в определении действия"
|
||||
|
||||
#. module: project
|
||||
#: wizard_field:project.task.delegate,init,planned_hours_me:0
|
||||
@@ -108,6 +108,8 @@ msgid ""
|
||||
"Header added at the beginning of the email for the warning message sent to "
|
||||
"the customer when a task is closed."
|
||||
msgstr ""
|
||||
"Заголовок, добавляемый в начало электронного письма для предупреждения, "
|
||||
"отправляемого заказчику при закрытии задачи."
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,priority:0
|
||||
@@ -182,7 +184,7 @@ msgstr "Мои выполняемые задания"
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Set as Template"
|
||||
msgstr ""
|
||||
msgstr "Установить как Шаблон"
|
||||
|
||||
#. module: project
|
||||
#: model:process.node,name:project.process_node_drafttask0
|
||||
@@ -246,6 +248,8 @@ msgstr "Мои Черновики заданий"
|
||||
msgid ""
|
||||
"Automatic variables for headers and footer. Use exactly the same notation."
|
||||
msgstr ""
|
||||
"Автоматические переменные для колонтитулов. Используйте в точности то же "
|
||||
"самое написание."
|
||||
|
||||
#. module: project
|
||||
#: selection:project.project,state:0
|
||||
@@ -262,7 +266,7 @@ msgstr "Заголовок письма"
|
||||
#. module: project
|
||||
#: model:process.node,name:project.process_node_donetask0
|
||||
msgid "Done task"
|
||||
msgstr ""
|
||||
msgstr "Выполненное задание"
|
||||
|
||||
#. module: project
|
||||
#: model:process.node,note:project.process_node_donetask0
|
||||
@@ -272,7 +276,7 @@ msgstr "Задание завершено"
|
||||
#. module: project
|
||||
#: model:process.transition,note:project.process_transition_delegate0
|
||||
msgid "Delegates tasks to the other user"
|
||||
msgstr ""
|
||||
msgstr "Поручить задания другому пользователю"
|
||||
|
||||
#. module: project
|
||||
#: help:project.task,effective_hours:0
|
||||
@@ -412,7 +416,7 @@ msgstr "Тип"
|
||||
#. module: project
|
||||
#: selection:res.company,project_time_mode:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
msgstr "Нед"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.action_view_task5_prog
|
||||
@@ -523,7 +527,7 @@ msgstr "Проекты"
|
||||
#. module: project
|
||||
#: view:project.task:0
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
msgstr "Даты"
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,history:0
|
||||
@@ -650,7 +654,7 @@ msgstr "Информация"
|
||||
#. module: project
|
||||
#: view:project.task:0
|
||||
msgid "Review"
|
||||
msgstr ""
|
||||
msgstr "Обзор"
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
@@ -682,7 +686,7 @@ msgstr "Низкий"
|
||||
#. module: project
|
||||
#: field:project.project,manager:0
|
||||
msgid "Project Manager"
|
||||
msgstr ""
|
||||
msgstr "Руководитель проекта"
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
@@ -714,7 +718,7 @@ msgstr ""
|
||||
#: field:project.project,complete_name:0
|
||||
#: field:project.project,name:0
|
||||
msgid "Project Name"
|
||||
msgstr ""
|
||||
msgstr "Наименование проекта"
|
||||
|
||||
#. module: project
|
||||
#: wizard_button:project.task.close,mail_ask,mail_send:0
|
||||
@@ -724,7 +728,7 @@ msgstr "Отправить сообщение"
|
||||
#. module: project
|
||||
#: field:project.project,total_hours:0
|
||||
msgid "Total Time"
|
||||
msgstr ""
|
||||
msgstr "Всего времени"
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,active:0
|
||||
@@ -734,7 +738,7 @@ msgstr "Активен"
|
||||
#. module: project
|
||||
#: model:project.task.type,name:project.project_tt_bug
|
||||
msgid "Bug"
|
||||
msgstr ""
|
||||
msgstr "Ошибка"
|
||||
|
||||
#. module: project
|
||||
#: model:project.task.type,name:project.project_tt_quote
|
||||
@@ -765,12 +769,12 @@ msgstr "Открыть задание"
|
||||
#. module: project
|
||||
#: field:project.project,timesheet_id:0
|
||||
msgid "Working Time"
|
||||
msgstr ""
|
||||
msgstr "Рабочее время"
|
||||
|
||||
#. module: project
|
||||
#: selection:res.company,project_time_mode:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
msgstr "Мес"
|
||||
|
||||
#. module: project
|
||||
#: model:process.transition,note:project.process_transition_opendonetask0
|
||||
@@ -798,7 +802,7 @@ msgstr "Проекты пользователя"
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Reactivate Project"
|
||||
msgstr ""
|
||||
msgstr "Возобновить проект"
|
||||
|
||||
#. module: project
|
||||
#: selection:project.task,priority:0
|
||||
@@ -813,7 +817,7 @@ msgstr "Делегировать данное задание пользоват
|
||||
#. module: project
|
||||
#: field:project.task,delegated_user_id:0
|
||||
msgid "Delegated To"
|
||||
msgstr ""
|
||||
msgstr "Поручено"
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,date_close:0
|
||||
|
||||
@@ -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 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"PO-Revision-Date: 2010-04-13 06:03+0000\n"
|
||||
"Last-Translator: grisha <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-14 03:50+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: project_mrp
|
||||
@@ -25,7 +25,7 @@ msgstr ""
|
||||
#: model:process.node,name:project_mrp.process_node_mrptask0
|
||||
#: model:process.node,name:project_mrp.process_node_procuretasktask0
|
||||
msgid "Task"
|
||||
msgstr ""
|
||||
msgstr "Задание"
|
||||
|
||||
#. module: project_mrp
|
||||
#: model:process.transition,note:project_mrp.process_transition_ordertask0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Process Node
|
||||
-->
|
||||
|
||||
<record id="process_node_procuretasktask0" model="process.node">
|
||||
<record id="process_node_procuretasktask0" model="process.node">
|
||||
<field name="menu_id" ref="project.menu_action_view_task"/>
|
||||
<field name="model_id" ref="project.model_project_task"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
@@ -46,9 +46,9 @@
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
<record id="process_transition_procuretask0" model="process.transition">
|
||||
<record id="process_transition_procuretask0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval="""" Requisition Task"""" name="name"/>
|
||||
<field eval=""""Procurement Task"""" name="name"/>
|
||||
<field eval=""""if product type is 'service' then it creates the task."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procuretasktask0"/>
|
||||
<field model="process.node" name="source_node_id" ref="sale.process_node_saleprocurement0"/>
|
||||
@@ -65,35 +65,10 @@
|
||||
<record id="process_transition_ordertask0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Order Task"""" name="name"/>
|
||||
<field eval=""""If Requisition method is Make to order and supply method is produce"""" name="note"/>
|
||||
<field eval=""""If procurement method is Make to order and supply method is produce"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_mrptask0"/>
|
||||
<field model="process.node" name="source_node_id" ref="mrp.process_node_serviceonorder0"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Process Action
|
||||
-->
|
||||
|
||||
<!-- <record id="process_transition_action_orderconfirmtask0" model="process.transition.action">-->
|
||||
<!-- <field eval=""""action_confirm"""" name="action"/>-->
|
||||
<!-- <field eval=""""object"""" name="state"/>-->
|
||||
<!-- <field eval=""""Confirm"""" name="name"/>-->
|
||||
<!-- <field name="transition_id" ref="process_transition_ordertask0"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- -->
|
||||
<!-- <record id="process_transition_action_ordercanceltask0" model="process.transition.action">-->
|
||||
<!-- <field eval=""""action_cancel"""" name="action"/>-->
|
||||
<!-- <field eval=""""object"""" name="state"/>-->
|
||||
<!-- <field eval=""""Cancel"""" name="name"/>-->
|
||||
<!-- <field name="transition_id" ref="process_transition_ordertask0"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- -->
|
||||
<!-- <record id="process_transition_action_taskrunprocurement0" model="process.transition.action">-->
|
||||
<!-- <field eval=""""write({'state':'exception'})"""" name="action"/>-->
|
||||
<!-- <field eval=""""object"""" name="state"/>-->
|
||||
<!-- <field eval=""""Run Requisition"""" name="name"/>-->
|
||||
<!-- <field name="transition_id" ref="process_transition_ordertask0"/>-->
|
||||
<!-- </record>-->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -26,7 +26,7 @@ class project_task(osv.osv):
|
||||
_name = "project.task"
|
||||
_inherit = "project.task"
|
||||
_columns = {
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Requisition', ondelete='set null')
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Procurement', ondelete='set null')
|
||||
}
|
||||
def do_close(self, cr, uid, ids, *args):
|
||||
res = super(project_task, self).do_close(cr, uid, ids, *args)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import purchase_requisition
|
||||
|
||||
@@ -18,20 +18,20 @@
|
||||
#
|
||||
##############################################################################
|
||||
{
|
||||
"name" : "Purchase - Purchase Tender",
|
||||
"name" : "Purchase - Purchase Requisition",
|
||||
"version" : "0.1",
|
||||
"author" : "Tiny",
|
||||
"category" : "Generic Modules/Sales & Purchases",
|
||||
"website" : "http://www.openerp.com",
|
||||
"description": """
|
||||
This module allows you to manage your Purchase Tenders.
|
||||
When a purchase order is created, you now have the opportunity to save the related tender.
|
||||
This module allows you to manage your Purchase Requisition.
|
||||
When a purchase order is created, you now have the opportunity to save the related requisition.
|
||||
This new object will regroup and will allow you to easily keep track and order all your purchase orders.
|
||||
""",
|
||||
"depends" : ["purchase","mrp"],
|
||||
"init_xml" : [],
|
||||
"demo_xml" : [],
|
||||
"update_xml" : ["purchase_tender_view.xml","security/ir.model.access.csv","purchase_tender_sequence.xml"],
|
||||
"update_xml" : ["purchase_requisition_view.xml","security/ir.model.access.csv","purchase_requisition_sequence.xml"],
|
||||
"active": False,
|
||||
"installable": True
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * purchase_requisition
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-25 14:07:40+0000\n"
|
||||
"PO-Revision-Date: 2009-11-25 14:07: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: purchase_requisition
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML incorrect pour l'Architecture des Vues!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,date_end:0
|
||||
msgid "Date End"
|
||||
msgstr "Date de fin"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: 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 par x_ et ne pas comporter de caractères spéciaux !"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,description:0
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition
|
||||
#: field:purchase.order,requisition_id:0
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Purchase requisition"
|
||||
msgstr "Appel d'Offre"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition1
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition
|
||||
msgid "Purchase requisitions"
|
||||
msgstr "Appels d'offre"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Open"
|
||||
msgstr "Ouvert"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Responsable"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_draft
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition1_draft
|
||||
msgid "Draft Purchase requisitions"
|
||||
msgstr "Appels d'Offre brouillons"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,state:0
|
||||
msgid "State"
|
||||
msgstr "Etat"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_open
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition1_open
|
||||
msgid "Open Purchase requisitions"
|
||||
msgstr "Appels d'offre ouverts"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Nom de modèle incorrect pour la définition de l'action"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.module.module,shortdesc:purchase_requisition.module_meta_information
|
||||
msgid "Purchase - Purchase requisition"
|
||||
msgstr "Achat - Appel d'offre"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,name:0
|
||||
msgid "requisition Reference"
|
||||
msgstr "Référence"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Close"
|
||||
msgstr "Clôturé"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,date_start:0
|
||||
msgid "Date Start"
|
||||
msgstr "Date de début"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Quotations"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.module.module,description:purchase_requisition.module_meta_information
|
||||
msgid " This module allows you to manage your Purchase requisitions. When a purchase order is created, you now have the opportunity to save the related requisition. \n"
|
||||
" This new object will regroup and will allow you to easily keep track and order all your purchase orders.\n"
|
||||
""
|
||||
msgstr "Ce module vous permet de gérer des appels d'offre. Quand un appel d'offre est créé, vous avez maintenant l'opportunité de conserver une trace. \n"
|
||||
" Ce nouvel objet regroupe et conserve la trace de tous vos appels d'offre.\n"
|
||||
""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_new
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition1_new
|
||||
msgid "New Purchase requisitions"
|
||||
msgstr "Nouveaux Appels d'Offre"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,purchase_ids:0
|
||||
msgid "Purchase Orders"
|
||||
msgstr "Bons d'achat"
|
||||
|
||||
+30
-25
@@ -25,54 +25,56 @@ from osv import orm
|
||||
import netsvc
|
||||
import time
|
||||
|
||||
class purchase_tender(osv.osv):
|
||||
_name = "purchase.tender"
|
||||
_description="Purchase Tender"
|
||||
class purchase_requisition(osv.osv):
|
||||
_name = "purchase.requisition"
|
||||
_description="Purchase requisition"
|
||||
_columns = {
|
||||
'name': fields.char('Tender Reference', size=32,required=True),
|
||||
'date_start': fields.datetime('Date Start'),
|
||||
'date_end': fields.datetime('Date End'),
|
||||
'name': fields.char('Requisition Reference', size=32,required=True),
|
||||
'origin': fields.char('Origin', size=32),
|
||||
'date_start': fields.datetime('Requisition Date'),
|
||||
'date_end': fields.datetime('Requisition Deadline'),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
'exclusive': fields.boolean('Exclusive', help="If the tender is exclusive, it will cancel all purchase orders when you confirm one of them"),
|
||||
'exclusive': fields.selection([('exclusive','Purchase Tender (exclusive)'),('multiple','Multiple Requisitions')],'Requisition Type', help="If the requisition is exclusive, it will cancel all purchase orders when you confirm one of them", required=True),
|
||||
'description': fields.text('Description'),
|
||||
'purchase_ids' : fields.one2many('purchase.order','tender_id','Purchase Orders'),
|
||||
'line_ids' : fields.one2many('purchase.tender.line','tender_id','Products to Purchase'),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'),('close','Close')], 'State', required=True)
|
||||
'purchase_ids' : fields.one2many('purchase.order','requisition_id','Purchase Orders'),
|
||||
'line_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase'),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'),('cancel','Cancelled'),('close','Close')], 'State', required=True)
|
||||
}
|
||||
_defaults = {
|
||||
'date_start': lambda *args: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'state': lambda *args: 'open',
|
||||
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'purchase.order.tender'),
|
||||
'exclusive': lambda *args: 'multiple',
|
||||
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'purchase.order.requisition'),
|
||||
}
|
||||
purchase_tender()
|
||||
purchase_requisition()
|
||||
|
||||
class purchase_tender_line(osv.osv):
|
||||
_name = "purchase.tender.line"
|
||||
_description="Purchase Tender Line"
|
||||
class purchase_requisition_line(osv.osv):
|
||||
_name = "purchase.requisition.line"
|
||||
_description="Purchase Requisition Line"
|
||||
_rec_name = 'product_id'
|
||||
_columns = {
|
||||
'product_id': fields.many2one('product.product', 'Product'),
|
||||
'product_uom_id': fields.many2one('product.uom', 'Product UoM'),
|
||||
'product_qty': fields.float('Date End', digits=(16,2)),
|
||||
'tender_id' : fields.many2one('purchase.tender','Purchase Tender', ondelete='cascade')
|
||||
'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition', ondelete='cascade')
|
||||
}
|
||||
purchase_tender_line()
|
||||
purchase_requisition_line()
|
||||
|
||||
class purchase_order(osv.osv):
|
||||
_inherit = "purchase.order"
|
||||
_description = "purchase order"
|
||||
_columns = {
|
||||
'tender_id' : fields.many2one('purchase.tender','Purchase Tender')
|
||||
'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition')
|
||||
}
|
||||
def wkf_confirm_order(self, cr, uid, ids, context={}):
|
||||
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context)
|
||||
for po in self.browse(cr, uid, ids, context):
|
||||
if po.tender_id and po.tender_id.exclusive:
|
||||
for order in po.tender_id.purchase_ids:
|
||||
if po.requisition_id and (po.requisition_id.exclusive=='exclusive'):
|
||||
for order in po.requisition_id.purchase_ids:
|
||||
if order.id<>po.id:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'purchase.order', order.id, 'purchase_cancel', cr)
|
||||
self.pool.get('purchase.tender').write(cr, uid, [po.tender_id.id], {'state':'close'})
|
||||
self.pool.get('purchase.requisition').write(cr, uid, [po.requisition_id.id], {'state':'close'})
|
||||
return res
|
||||
purchase_order()
|
||||
|
||||
@@ -80,10 +82,10 @@ purchase_order()
|
||||
class product_product(osv.osv):
|
||||
_inherit = 'product.product'
|
||||
_columns = {
|
||||
'purchase_tender': fields.boolean('Purchase Tender', help="Check this box so that requisitions generates purchase tenders instead of directly requests for quotations.")
|
||||
'purchase_requisition': fields.boolean('Purchase Requisition', help="Check this box so that requisitions generates purchase requisitions instead of directly requests for quotations.")
|
||||
}
|
||||
_defaults = {
|
||||
'purchase_tender': lambda *args: False
|
||||
'purchase_requisition': lambda *args: False
|
||||
}
|
||||
product_product()
|
||||
|
||||
@@ -94,9 +96,11 @@ class mrp_procurement(osv.osv):
|
||||
res = super(mrp_procurement, self).make_po(cr, uid, ids, context)
|
||||
for proc_id,po_id in res.items():
|
||||
procurement = self.browse(cr, uid, proc_id)
|
||||
if procurement.product_id.purchase_tender:
|
||||
self.pool.get('purchase.tender').create(cr, uid, {
|
||||
if procurement.product_id.purchase_requisition:
|
||||
self.pool.get('purchase.requisition').create(cr, uid, {
|
||||
'name': procurement.name,
|
||||
'origin': procurement.name,
|
||||
'date_end': procurement.date_planned,
|
||||
'lines_ids': [(0,0,{
|
||||
'product_id': procurement.product_id.id,
|
||||
'product_uom_id': procurement.product_uom.id,
|
||||
@@ -105,4 +109,5 @@ class mrp_procurement(osv.osv):
|
||||
})],
|
||||
'purchase_ids': [(6,0,[po_id])]
|
||||
})
|
||||
return res
|
||||
mrp_procurement()
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!-- Sequences for purchase.order -->
|
||||
<record id="seq_type_purchase_requisition" model="ir.sequence.type">
|
||||
<field name="name">Purchase Requisition Order</field>
|
||||
<field name="code">purchase.order.requisition</field>
|
||||
</record>
|
||||
<record id="seq_purchase_requisition" model="ir.sequence">
|
||||
<field name="name">Purchase Requisition Order</field>
|
||||
<field name="code">purchase.order.requisition</field>
|
||||
<field name="prefix">TE</field>
|
||||
<field name="padding">5</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
+28
-19
@@ -9,7 +9,7 @@
|
||||
<field name="inherit_id" ref="purchase.purchase_order_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="name" position="after">
|
||||
<field name="tender_id"/>
|
||||
<field name="requisition_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
@@ -21,21 +21,25 @@
|
||||
<field name="inherit_id" ref="purchase.purchase_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_ref" position="after">
|
||||
<field name="tender_id"/>
|
||||
<field name="requisition_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_purchase_tender_form">
|
||||
<field name="name">purchase.tender.form</field>
|
||||
<record model="ir.ui.view" id="view_purchase_requisition_form">
|
||||
<field name="name">purchase.requisition.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">purchase.tender</field>
|
||||
<field name="model">purchase.requisition</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Purchase Tender">
|
||||
<field name="name" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<form string="Purchase Requisition">
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="exclusive" select="1"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="origin"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Products">
|
||||
<field name="line_ids" colspan="4" nolabel="1">
|
||||
@@ -62,28 +66,33 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_purchase_tender_tree">
|
||||
<field name="name">purchase.tender.tree</field>
|
||||
<record model="ir.ui.view" id="view_purchase_requisition_tree">
|
||||
<field name="name">purchase.requisition.tree</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="model">purchase.tender</field>
|
||||
<field name="model">purchase.requisition</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Purchase Tender">
|
||||
<tree string="Purchase Requisition">
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="origin"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_purchase_tender">
|
||||
<field name="name">Purchase Tenders</field>
|
||||
<record model="ir.actions.act_window" id="action_purchase_requisition">
|
||||
<field name="name">Purchase Requisitions</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.tender</field>
|
||||
<field name="res_model">purchase.requisition</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_purchase_Tender_pro_mgt" parent="purchase.menu_procurement_management" action="action_purchase_tender"/>
|
||||
<menuitem
|
||||
id="menu_purchase_requisition_pro_mgt"
|
||||
sequence="0"
|
||||
parent="purchase.menu_procurement_management"
|
||||
action="action_purchase_requisition"/>
|
||||
|
||||
<record model="ir.ui.view" id="product_normal_form_view_inherit">
|
||||
<field name="name">product.form.inherit</field>
|
||||
@@ -93,7 +102,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="supply_method" position="after">
|
||||
<group colspan="2" col="2" attrs="{'invisible': [('supply_method','<>','buy')]}">
|
||||
<field name="purchase_tender"/>
|
||||
<field name="purchase_requisition"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
@@ -0,0 +1,3 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_purchase_requisition","purchase.requisition","model_purchase_requisition",purchase.group_purchase_user,1,1,1,1
|
||||
"access_purchase_requisition_line","purchase.requisition.line","model_purchase_requisition_line",purchase.group_purchase_user,1,1,1,1
|
||||
|
@@ -1,134 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * purchase_tender
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-25 14:07:40+0000\n"
|
||||
"PO-Revision-Date: 2009-11-25 14:07: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: purchase_tender
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML incorrect pour l'Architecture des Vues!"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,date_end:0
|
||||
msgid "Date End"
|
||||
msgstr "Date de fin"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: 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 par x_ et ne pas comporter de caractères spéciaux !"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: view:purchase.tender:0
|
||||
#: field:purchase.tender,description:0
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.model,name:purchase_tender.model_purchase_tender
|
||||
#: field:purchase.order,tender_id:0
|
||||
#: view:purchase.tender:0
|
||||
msgid "Purchase Tender"
|
||||
msgstr "Appel d'Offre"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.actions.act_window,name:purchase_tender.action_purchase_tender
|
||||
#: model:ir.ui.menu,name:purchase_tender.menu_purchase_Tender1
|
||||
#: model:ir.ui.menu,name:purchase_tender.menu_purchase_tender
|
||||
msgid "Purchase Tenders"
|
||||
msgstr "Appels d'offre"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: selection:purchase.tender,state:0
|
||||
msgid "Open"
|
||||
msgstr "Ouvert"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Responsable"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.actions.act_window,name:purchase_tender.action_purchase_tender_draft
|
||||
#: model:ir.ui.menu,name:purchase_tender.menu_purchase_Tender1_draft
|
||||
msgid "Draft Purchase Tenders"
|
||||
msgstr "Appels d'Offre brouillons"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,state:0
|
||||
msgid "State"
|
||||
msgstr "Etat"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: selection:purchase.tender,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.actions.act_window,name:purchase_tender.action_purchase_tender_open
|
||||
#: model:ir.ui.menu,name:purchase_tender.menu_purchase_Tender1_open
|
||||
msgid "Open Purchase Tenders"
|
||||
msgstr "Appels d'offre ouverts"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Nom de modèle incorrect pour la définition de l'action"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.module.module,shortdesc:purchase_tender.module_meta_information
|
||||
msgid "Purchase - Purchase Tender"
|
||||
msgstr "Achat - Appel d'offre"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,name:0
|
||||
msgid "Tender Reference"
|
||||
msgstr "Référence"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: selection:purchase.tender,state:0
|
||||
msgid "Close"
|
||||
msgstr "Clôturé"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,date_start:0
|
||||
msgid "Date Start"
|
||||
msgstr "Date de début"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: view:purchase.tender:0
|
||||
msgid "Quotations"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.module.module,description:purchase_tender.module_meta_information
|
||||
msgid " This module allows you to manage your Purchase Tenders. When a purchase order is created, you now have the opportunity to save the related tender. \n"
|
||||
" This new object will regroup and will allow you to easily keep track and order all your purchase orders.\n"
|
||||
""
|
||||
msgstr "Ce module vous permet de gérer des appels d'offre. Quand un appel d'offre est créé, vous avez maintenant l'opportunité de conserver une trace. \n"
|
||||
" Ce nouvel objet regroupe et conserve la trace de tous vos appels d'offre.\n"
|
||||
""
|
||||
|
||||
#. module: purchase_tender
|
||||
#: model:ir.actions.act_window,name:purchase_tender.action_purchase_tender_new
|
||||
#: model:ir.ui.menu,name:purchase_tender.menu_purchase_Tender1_new
|
||||
msgid "New Purchase Tenders"
|
||||
msgstr "Nouveaux Appels d'Offre"
|
||||
|
||||
#. module: purchase_tender
|
||||
#: field:purchase.tender,purchase_ids:0
|
||||
msgid "Purchase Orders"
|
||||
msgstr "Bons d'achat"
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!-- Sequences for purchase.order -->
|
||||
<record id="seq_type_purchase_tender_order" model="ir.sequence.type">
|
||||
<field name="name">Purchase Tender Order</field>
|
||||
<field name="code">purchase.order.tender</field>
|
||||
</record>
|
||||
<record id="seq_purchase_tender_order" model="ir.sequence">
|
||||
<field name="name">Purchase Tender Order</field>
|
||||
<field name="code">purchase.order.tender</field>
|
||||
<field name="prefix">TE</field>
|
||||
<field name="padding">5</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,2 +0,0 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_purchase_tender","purchase.tender","model_purchase_tender",,1,1,1,1
|
||||
|
@@ -7,206 +7,208 @@ 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:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"PO-Revision-Date: 2010-04-15 10:57+0000\n"
|
||||
"Last-Translator: geopop65 <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:13+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,create_date:0
|
||||
#: field:report.files.partner,create_date:0
|
||||
msgid "Date Created"
|
||||
msgstr ""
|
||||
msgstr "Data creării"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_files_by_partner
|
||||
msgid "Files Per Month"
|
||||
msgstr ""
|
||||
msgstr "Fişiere pe lună"
|
||||
|
||||
#. module: report_document
|
||||
#: 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 să nu conţină nici un caracter "
|
||||
"special !"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_wall
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_shame
|
||||
#: view:report.document.wall:0
|
||||
msgid "Wall of Shame"
|
||||
msgstr ""
|
||||
msgstr "Panoul ruşinii"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.model,name:report_document.model_report_files_partner
|
||||
msgid "Files details by Partners"
|
||||
msgstr ""
|
||||
msgstr "Detalii fişier după parteneri"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.file,file_size:0
|
||||
#: field:report.document.user,file_size:0
|
||||
#: field:report.files.partner,file_size:0
|
||||
msgid "File Size"
|
||||
msgstr ""
|
||||
msgstr "Mărime fişier"
|
||||
|
||||
#. module: report_document
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nume invalid de model în definirea acțiunii"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all
|
||||
msgid "All Months"
|
||||
msgstr ""
|
||||
msgstr "Toate lunile"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_myfile
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_myfile
|
||||
msgid "My files"
|
||||
msgstr ""
|
||||
msgstr "Fişierele mele"
|
||||
|
||||
#. module: report_document
|
||||
#: view:report.document.user:0
|
||||
msgid "Files by users"
|
||||
msgstr ""
|
||||
msgstr "Fişiere după utilizatori"
|
||||
|
||||
#. module: report_document
|
||||
#: view:report.document.user:0
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
msgstr "Fişiere"
|
||||
|
||||
#. module: report_document
|
||||
#: view:report.files.partner:0
|
||||
msgid "Files per Month"
|
||||
msgstr ""
|
||||
msgstr "Fişiere pe lună"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree1
|
||||
msgid "My files (All months)"
|
||||
msgstr ""
|
||||
msgstr "Fişierele mele (toale lunile)"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.wall,file_name:0
|
||||
msgid "Last Posted File Name"
|
||||
msgstr ""
|
||||
msgstr "Numele ultimului fişier postat"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report
|
||||
msgid "Reporting"
|
||||
msgstr ""
|
||||
msgstr "Raportare"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.model,name:report_document.model_report_document_wall
|
||||
msgid "Users that did not inserted documents since one month"
|
||||
msgstr ""
|
||||
msgstr "Utilizatori care nu au inserat documente în ultima lună"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document
|
||||
msgid "Document Management"
|
||||
msgstr ""
|
||||
msgstr "Managementul documentelor"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,type:0
|
||||
#: field:report.files.partner,type:0
|
||||
msgid "Directory Type"
|
||||
msgstr ""
|
||||
msgstr "Tip de director"
|
||||
|
||||
#. module: report_document
|
||||
#: view:report.files.partner:0
|
||||
msgid "Files By Partner"
|
||||
msgstr ""
|
||||
msgstr "Fişiere după parteneri"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this
|
||||
msgid "This Month"
|
||||
msgstr ""
|
||||
msgstr "Luna curentă"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,user:0
|
||||
#: field:report.document.wall,user:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Utilizator"
|
||||
|
||||
#. module: report_document
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "XML invalid pentru arhitectura machetei de afișare !"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_userfile
|
||||
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_userfile
|
||||
msgid "All Users files"
|
||||
msgstr ""
|
||||
msgstr "Fişierele tuturor utilizatorilor"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree
|
||||
msgid "My files (This months)"
|
||||
msgstr ""
|
||||
msgstr "Fişierele mele (luna curentă)"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.model,name:report_document.model_report_document_user
|
||||
msgid "Files details by Users"
|
||||
msgstr ""
|
||||
msgstr "Detalii fişiere după utilizator"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,user_id:0
|
||||
#: field:report.document.wall,user_id:0
|
||||
msgid "Owner"
|
||||
msgstr ""
|
||||
msgstr "Deținător"
|
||||
|
||||
#. module: report_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ăr de fişiere"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,directory:0
|
||||
#: field:report.files.partner,directory:0
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
msgstr "Director"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_user_graph
|
||||
msgid "Files By Users"
|
||||
msgstr ""
|
||||
msgstr "Fişiere după utilizatori"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.module.module,shortdesc:report_document.module_meta_information
|
||||
msgid "Document Management - Reporting"
|
||||
msgstr ""
|
||||
msgstr "Management documente - Raportări"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree1
|
||||
msgid "All Users files (All months)"
|
||||
msgstr ""
|
||||
msgstr "Toate fişierele utilizatorilor (toate lunile)"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.model,name:report_document.model_report_document_file
|
||||
msgid "Files details by Directory"
|
||||
msgstr ""
|
||||
msgstr "Detalii fişiere după directoare"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,change_date:0
|
||||
#: field:report.files.partner,change_date:0
|
||||
msgid "Modified Date"
|
||||
msgstr ""
|
||||
msgstr "Data modificării"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_size_month
|
||||
#: view:report.document.file:0
|
||||
msgid "File Size by Month"
|
||||
msgstr ""
|
||||
msgstr "Mărime fişiere pe luni"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,file_title:0
|
||||
#: field:report.files.partner,file_title:0
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
msgstr "Nume fișier"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.file,month:0
|
||||
@@ -216,32 +218,32 @@ msgstr ""
|
||||
#: field:report.document.wall,name:0
|
||||
#: field:report.files.partner,name:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
msgstr "Luna"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_files_by_month_graph
|
||||
#: view:report.document.user:0
|
||||
msgid "Files by Month"
|
||||
msgstr ""
|
||||
msgstr "Fişiere pe luni"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_document_by_resourcetype_graph
|
||||
#: view:report.document.user:0
|
||||
msgid "Files by Resource Type"
|
||||
msgstr ""
|
||||
msgstr "Fişiere pe tipuri de resursă"
|
||||
|
||||
#. module: report_document
|
||||
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree
|
||||
msgid "All Users files (This month)"
|
||||
msgstr ""
|
||||
msgstr "Fişierele tuturor utilizatorilor (luna curentă)"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.wall,last:0
|
||||
msgid "Last Posted Time"
|
||||
msgstr ""
|
||||
msgstr "Ora ultimei postări"
|
||||
|
||||
#. module: report_document
|
||||
#: field:report.document.user,partner:0
|
||||
#: field:report.files.partner,partner:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partener"
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-20 15:42+0000\n"
|
||||
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-04-12 15:59+0000\n"
|
||||
"Last-Translator: Adam Zastróżny <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:05+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:34+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale
|
||||
@@ -44,7 +44,7 @@ msgstr "Partner współpracujący"
|
||||
#. module: sale
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
|
||||
|
||||
#. module: sale
|
||||
#: selection:sale.order,state:0
|
||||
@@ -192,7 +192,7 @@ msgstr "Zasady wysyłki"
|
||||
#. module: sale
|
||||
#: selection:sale.order,state:0 selection:sale.order.line,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Anulowano"
|
||||
|
||||
#. module: sale
|
||||
#: selection:sale.order,state:0
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<field name="model_id" ref="sale.model_sale_order"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Sale Order Requisition"""" name="name"/>
|
||||
<field eval=""""Drives requisition orders for every sale order line."""" name="note"/>
|
||||
<field eval=""""Drives procurement orders for every sale order line."""" name="note"/>
|
||||
<field name="subflow_id" ref="process_process_salesprocess0"/>
|
||||
<field name="process_id" ref="mrp.process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'waiting_date', 'manual', 'progress', 'shipping_except', 'invoice_except', 'done', 'cancel')"""" name="model_states"/>
|
||||
@@ -66,8 +66,8 @@
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Requisition Order"""" name="name"/>
|
||||
<field eval=""""One requisition order for each sale order line and for each of the components."""" name="note"/>
|
||||
<field eval=""""Procurement Order"""" name="name"/>
|
||||
<field eval=""""One Procurement order for each sale order line and for each of the components."""" name="note"/>
|
||||
<field name="subflow_id" ref="mrp.process_process_procurementprocess0"/>
|
||||
<field name="process_id" ref="process_process_salesprocess0"/>
|
||||
<field eval=""""object.state=='confirmed'"""" name="model_states"/>
|
||||
@@ -158,8 +158,8 @@
|
||||
|
||||
<record id="process_transition_saleprocurement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Create Requisition Order"""" name="name"/>
|
||||
<field eval=""""A requisition order is automatically created as soon as a sale order is confirmed or as the invoice is paid. It drives the purchasing and the production of products regarding to the rules and to the sale order's parameters. """" name="note"/>
|
||||
<field eval=""""Create Procurement Order"""" name="name"/>
|
||||
<field eval=""""A procurement order is automatically created as soon as a sale order is confirmed or as the invoice is paid. It drives the purchasing and the production of products regarding to the rules and to the sale order's parameters. """" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_saleprocurement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleorder0"/>
|
||||
</record>
|
||||
@@ -167,7 +167,7 @@
|
||||
<record id="process_transition_packing0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Create Pick List"""" name="name"/>
|
||||
<field eval=""""The Pick List form is created as soon as the sale order is confirmed, in the same time as the requisition order. It represents the assignment of parts to the sale order. There is 1 pick list by sale order line which evolves with the availability of parts."""" name="note"/>
|
||||
<field eval=""""The Pick List form is created as soon as the sale order is confirmed, in the same time as the procurement order. It represents the assignment of parts to the sale order. There is 1 pick list by sale order line which evolves with the availability of parts."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_packinglist0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleprocurement0"/>
|
||||
</record>
|
||||
@@ -200,8 +200,8 @@
|
||||
<record id="process_transition_saleorderprocurement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Requisition of sold material"""" name="name"/>
|
||||
<field eval=""""For every sale order line, a requisition order is created to supply the sold product."""" name="note"/>
|
||||
<field eval=""""Procurement of sold material"""" name="name"/>
|
||||
<field eval=""""For every sale order line, a procurement order is created to supply the sold product."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleorderprocurement0"/>
|
||||
</record>
|
||||
|
||||
+2
-2
@@ -776,12 +776,12 @@ class sale_order_line(osv.osv):
|
||||
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], change_default=True),
|
||||
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
|
||||
'invoiced': fields.boolean('Invoiced', readonly=True),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Requisition'),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Procurement'),
|
||||
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price'), readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'price_net': fields.function(_amount_line_net, method=True, string='Net Price', digits_compute= dp.get_precision('Sale Price')),
|
||||
'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', digits_compute= dp.get_precision('Sale Price')),
|
||||
'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Requisition Method', required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'property_ids': fields.many2many('mrp.property', 'sale_order_line_property_rel', 'order_id', 'property_id', 'Properties', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'address_allotment_id': fields.many2one('res.partner.address', 'Allotment Partner'),
|
||||
'product_uom_qty': fields.float('Quantity (UoM)', digits=(16, 2), required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
|
||||
+42
-41
@@ -98,11 +98,11 @@
|
||||
<form string="Sales order">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="client_order_ref" select="2"/>
|
||||
<field name="shipped" select="2"/>
|
||||
<field name="shop_id" on_change="onchange_shop_id(shop_id)" select="2" widget="selection"/>
|
||||
<field name="client_order_ref"/>
|
||||
<field name="shipped"/>
|
||||
<field name="shop_id" on_change="onchange_shop_id(shop_id)" widget="selection"/>
|
||||
<field name="date_order" select="1" string="Order date" />
|
||||
<field name="invoiced" select="2"/>
|
||||
<field name="invoiced"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Sale Order">
|
||||
@@ -111,8 +111,9 @@
|
||||
<field domain="[('partner_id','=',partner_id)]" name="partner_invoice_id"/>
|
||||
<field domain="[('partner_id','=',partner_id)]" name="partner_shipping_id"/>
|
||||
<field domain="[('type','=','sale')]" name="pricelist_id" groups="base.group_extended"/>
|
||||
<field name="project_id" select="2"
|
||||
context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"/>
|
||||
<field name="project_id"
|
||||
context="{'partner_id':partner_id, 'contact_id':partner_order_id, 'pricelist_id':pricelist_id, 'default_name':name}"
|
||||
groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field colspan="4" mode="tree,form,graph" name="order_line" nolabel="1" widget="one2many_list">
|
||||
<form string="Sale Order Lines">
|
||||
@@ -140,17 +141,17 @@
|
||||
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<separator colspan="4" string="Manual Description"/>
|
||||
<field colspan="4" name="name" select="2"/>
|
||||
<field name="price_unit" select="2"/>
|
||||
<field colspan="4" name="name"/>
|
||||
<field name="price_unit"/>
|
||||
<field name="discount"/>
|
||||
<field name="type"/>
|
||||
<field name="delay" select="2"/>
|
||||
<field name="type" groups="base.group_extended"/>
|
||||
<field name="delay" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
||||
<separator colspan="4" string="States"/>
|
||||
<field name="state" select="2"/>
|
||||
<field name="state"/>
|
||||
<group col="3" colspan="2">
|
||||
<field name="invoiced" select="2"/>
|
||||
<field name="invoiced"/>
|
||||
<button colspan="1"
|
||||
name="%(action_view_sale_order_line_make_invoice)d"
|
||||
states="confirmed"
|
||||
@@ -163,7 +164,7 @@
|
||||
<field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
|
||||
<field groups="product.group_uos" name="product_uos"/>
|
||||
<field name="th_weight"/>
|
||||
<field name="address_allotment_id" select="2"/>
|
||||
<field name="address_allotment_id"/>
|
||||
<separator colspan="4" string="Properties"/>
|
||||
<field colspan="4" name="property_ids" nolabel="1"/>
|
||||
</page>
|
||||
@@ -196,12 +197,12 @@
|
||||
<button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
|
||||
</group>
|
||||
<group col="13" colspan="4">
|
||||
<field name="state" select="2"/>
|
||||
<field name="state"/>
|
||||
<button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
|
||||
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
|
||||
<button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
|
||||
<button name="ship_recreate" states="shipping_except" string="Recreate Requisition" icon="gtk-ok"/>
|
||||
<button name="ship_corrected" states="shipping_except" string="Requisition Corrected" icon="gtk-apply"/>
|
||||
<button name="ship_recreate" states="shipping_except" string="Recreate Procurement" icon="gtk-ok"/>
|
||||
<button name="ship_corrected" states="shipping_except" string="Procurement Corrected" icon="gtk-apply"/>
|
||||
<button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-print"/>
|
||||
<button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
|
||||
@@ -211,25 +212,25 @@
|
||||
</group>
|
||||
</page>
|
||||
<page string="Other data">
|
||||
<group colspan="2" col="2">
|
||||
<group colspan="2" col="2" groups="base.group_extended">
|
||||
<separator string="Logistic" colspan="2"/>
|
||||
<field groups="base.group_extended" name="incoterm"/>
|
||||
<field groups="base.group_extended" name="picking_policy" required="True"/>
|
||||
<field name="incoterm"/>
|
||||
<field name="picking_policy" required="True"/>
|
||||
<field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
|
||||
<field groups="base.group_extended" name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
|
||||
<field name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="References" colspan="2"/>
|
||||
<field name="user_id"/>
|
||||
<field groups="base.group_extended" name="origin"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<group colspan="2" col="2" groups="base.group_extended">
|
||||
<separator string="Conditions" colspan="2"/>
|
||||
<field name="payment_term" widget="selection"/>
|
||||
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="fiscal_position" widget="selection"/>
|
||||
<field name="company_id" widget="selection"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<group colspan="2" col="2" groups="base.group_extended">
|
||||
<separator string="Dates" colspan="2"/>
|
||||
<field name="create_date" widget="datetime"/>
|
||||
<field name="date_confirm"/>
|
||||
@@ -237,7 +238,7 @@
|
||||
<separator colspan="4" string="Notes"/>
|
||||
<field colspan="4" name="note" nolabel="1"/>
|
||||
</page>
|
||||
<page string="History">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<separator colspan="4" string="Related invoices"/>
|
||||
<field colspan="4" name="invoice_ids" nolabel="1"/>
|
||||
<field colspan="4" name="picking_ids" nolabel="1"/>
|
||||
@@ -368,43 +369,43 @@
|
||||
<form string="Sales Order Lines">
|
||||
<notebook>
|
||||
<page string="Order Lines">
|
||||
<separator colspan="4" string="Automatic Declaration"/>
|
||||
<separator colspan="4" string="General Information"/>
|
||||
<field name="order_id" select="1"/>
|
||||
<field name="order_partner_id" readonly="1" select="1" invisible="1"/>
|
||||
<field name="product_uom_qty" readonly="1" select="2"/>
|
||||
<field name="product_uom_qty" readonly="1"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="product_id" readonly="1" select="1"/>
|
||||
<field name="invoiced" select="2"/>
|
||||
<field name="invoiced"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<separator colspan="4" string="Manual Designation"/>
|
||||
<field colspan="4" name="name" select="2"/>
|
||||
<field name="price_unit" select="2"/>
|
||||
<field colspan="4" name="name"/>
|
||||
<field name="price_unit"/>
|
||||
<field name="discount"/>
|
||||
<field name="type"/>
|
||||
<field name="delay" select="2"/>
|
||||
<field name="type" groups="base.group_extended"/>
|
||||
<field name="delay" groups="base.group_extended"/>
|
||||
<field name="price_subtotal"/>
|
||||
<field name="th_weight"/>
|
||||
<field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
||||
<separator colspan="4" string="States"/>
|
||||
<field name="state" select="2"/>
|
||||
<field name="state"/>
|
||||
<group col="2" colspan="2">
|
||||
<button name="button_done"
|
||||
states="confirmed,exception"
|
||||
string="Done" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
states="confirmed,exception"
|
||||
string="Done" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="button_cancel"
|
||||
states="confirmed,exception"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel" />
|
||||
states="confirmed,exception"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Properties">
|
||||
<page string="Properties" groups="base.group_extended">
|
||||
<field name="property_ids" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field colspan="4" name="notes" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Invoice Lines">
|
||||
<page string="Invoice Lines" groups="base.group_extended">
|
||||
<field colspan="4" name="invoice_lines" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:15+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 01:00+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:59+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_crm
|
||||
@@ -45,7 +45,7 @@ msgstr "한꺼번"
|
||||
#. module: sale_crm
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"
|
||||
|
||||
#. module: sale_crm
|
||||
#: model:process.transition,note:sale_crm.process_transition_crmopportunityquotation
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import purchase_tender
|
||||
|
||||
import smtpclient
|
||||
import serveraction
|
||||
import ir_model
|
||||
import wizard
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "Email Client",
|
||||
"version" : "1.0",
|
||||
"depends" : ["base"],
|
||||
"author" : "Tiny/Axelor",
|
||||
"description": """Email Client module that provides:
|
||||
Sending Email
|
||||
Use Multiple Server
|
||||
Multi Threading
|
||||
Multi Attachment
|
||||
""",
|
||||
"website" : "http://www.openerp.com",
|
||||
"category" : "Generic Modules",
|
||||
"init_xml" : [
|
||||
],
|
||||
"demo_xml" : [
|
||||
"smtpclient_demo.xml"
|
||||
],
|
||||
"update_xml" : [
|
||||
"smtpclient_view.xml",
|
||||
"serveraction_view.xml",
|
||||
"smtpclient_wizard.xml",
|
||||
"security/ir.model.access.csv",
|
||||
"smtpclient_data.xml",
|
||||
],
|
||||
"active": False,
|
||||
"installable": True
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,868 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
|
||||
"PO-Revision-Date: 2010-01-19 05:22+0000\n"
|
||||
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
|
||||
"<jesteve@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-02-25 05:00+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,bcc:0
|
||||
msgid "BCC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr "__number__ per a número de Factura / Comanda venda"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr "Utilitza SSL"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Start Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr "Verifica servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.sendcode,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Other Mail Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,to:0
|
||||
msgid "Mail to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr "Missatge d'error!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr "Nom servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,header_ids:0
|
||||
msgid "Default Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr "Envia Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Companyia"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr "El servidor ja està verificat!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr "Ha fallat la verificació. Comproveu la configuració del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr "Error del servidor SMTP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth_type:0
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Tipus de servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,from_email:0
|
||||
msgid "Email From"
|
||||
msgstr "Remitent Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr "Informació de l'usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr "Codi de registre per Email del servidor SMTP d'OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr "Estadístiques del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr "Missatges"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr "Vendes"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr "Permís d'accés"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_headers
|
||||
msgid "Email Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue:0
|
||||
msgid "Queue Option"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr ""
|
||||
"Si us plau, configureu el servidor de missatges per Email [Verificació / "
|
||||
"Prova]"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr "Ha fallat la verificació. Codi de verificació invàlid!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr "Historial servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Yahoo!!! Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,test_email:0
|
||||
msgid "Test Message"
|
||||
msgstr "Missatge de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr "ID servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,delete_queue_period:0
|
||||
msgid "delete emails/contents from email queue after specified no of days"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr "Núm. total"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,process_id:0
|
||||
msgid "Mail Transport Agent Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr "__user__ per a nom d'usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr "Data creació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr "Estat servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,error:0
|
||||
msgid "Last Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr "Envia codi"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,name:0
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr "Error de lectura!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr "No és possible llegir la configuració del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
msgid "Statistics"
|
||||
msgstr "Estadístiques"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr "Email de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr "Direcció d'Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
|
||||
msgid "Email Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Waiting"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.testemail,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr "No verificat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr "Nom usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr "Tipus d'adreça"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr "Permís"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Message with All Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr "Configuració"
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invàlid per a la definició de la vista!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,disclaimers:0
|
||||
msgid "Disclaimers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:res.company:0
|
||||
msgid "SMTP Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid ""
|
||||
"The message text that will be send along with the email which is send "
|
||||
"through this server"
|
||||
msgstr ""
|
||||
"El text del missatge que serà enviat junt amb l'Email que és enviat "
|
||||
"mitjançant aquest servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr "Envia Email de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
|
||||
msgid "Email Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr "Informació del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.verifycode,init,code:0
|
||||
msgid "Enter the verification code thay you get in your verification Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr "Historial del client d'Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Never Delete Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr "Email de prova d'OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: field:email.smtpclient.queue,serialized_message:0
|
||||
msgid "Message"
|
||||
msgstr "Missatge"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,process_id:0
|
||||
msgid "MTA Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,server_id:0
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,server:0
|
||||
#: field:email.smtpclient.queue,server_id:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
msgid "SMTP Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Google Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr "Verificat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,priority:0
|
||||
msgid ""
|
||||
"Priority between 0 to 10, will be used to define the MTA process priotiry"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr "Port SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Email TO Address not Defined !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth:0
|
||||
msgid "Use Auth"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,pstate:0
|
||||
msgid "Server Statue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr "Nom usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr "Verifica missatge"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
|
||||
msgid "Email Client"
|
||||
msgstr "Client Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Disclaimers Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr "__code__ per a codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
#: field:email.smtpclient.queue,date_create:0
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,cc:0
|
||||
msgid "CC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"__code__ \n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
|
||||
msgid "Message Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr "Per defecte"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete Content After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr "No teniu permís per accedir al servidor SMTP: %s "
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr "Actiu"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
|
||||
msgid "Message Queus"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr "Error del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Clear All After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr ""
|
||||
"Si us plau, verifiqueu el servidor de correu electrònic, sense verificar-lo "
|
||||
"no podeu enviar Email(s)."
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,priority:0
|
||||
msgid "Message Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,file_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr "__name__ per a nom de client"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,key:0
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"\n"
|
||||
"__code__\n"
|
||||
"\n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
"Missatge de verificació. Aquest és el codi\n"
|
||||
"\n"
|
||||
"__code__\n"
|
||||
"\n"
|
||||
"que haureu de copiar al servidor d'Email d'OpenERP (assistent Verifica "
|
||||
"servidor).\n"
|
||||
"\n"
|
||||
"Creat per l'usuari __user__"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr "Verifica codi"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue_period:0
|
||||
msgid "Delete after"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server is not Verified, Please Verify the Server !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "ID del registre"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Data Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: 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: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete when Email Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr "Comptabilitat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.module.module,description:smtpclient.module_meta_information
|
||||
msgid ""
|
||||
"Email Client module that provides:\n"
|
||||
" Sending Email\n"
|
||||
" Use Multiple Server\n"
|
||||
" Multi Threading\n"
|
||||
" Multi Attachment\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr "Estoc"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,code:0
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr "Codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,body:0
|
||||
msgid "Email Text"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr "Enviament"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Last Error occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr "Esperant verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr "Usuaris permesos"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#, python-format
|
||||
msgid "Verification Code Already Generated !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: view:res.company:0
|
||||
#: field:res.company.address,email:0
|
||||
msgid "Email Address"
|
||||
msgstr "Direcció de correu"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr "Missatge de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Stop Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr "Envia codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
#: field:ir.actions.server,email_server:0
|
||||
msgid "Email Server"
|
||||
msgstr "Servidor Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr "Error dels permisos!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr "res.company.address"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,state:0
|
||||
msgid "Message Status"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "The Email is sent successfully to corresponding address"
|
||||
#~ msgstr "El correu ha estat enviat correctament a la direcció corresponent"
|
||||
|
||||
#~ msgid "Servers"
|
||||
#~ msgstr "Servidors"
|
||||
|
||||
#~ msgid "Verification Information"
|
||||
#~ msgstr "Informació de verificació"
|
||||
|
||||
#~ msgid "Report name and Resources ids are required!"
|
||||
#~ msgstr "Nom d'informe i ids de registres són necessaris!"
|
||||
@@ -0,0 +1,505 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2008-11-30 15:52:27+0000\n"
|
||||
"PO-Revision-Date: 2008-11-30 17:41+0100\n"
|
||||
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\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: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr "__number__ per a número de Factura / Comanda venda"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr "Utilitza SSL"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr "Verifica servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr "Envia codi"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr "Email de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr "Missatge d'error!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,test_email:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Test Message"
|
||||
msgstr "Missatge de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr "Envia Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
#: view:email.smtpclient:0
|
||||
msgid "SMTP Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr "El servidor ja està verificat!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr "Ha fallat la verificació. Comproveu la configuració del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr "Si us plau, verifiqueu el servidor de correu electrònic, sense verificar-lo no podeu enviar Email(s)."
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Tipus de servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "The Email is sent successfully to corresponding address"
|
||||
msgstr "El correu ha estat enviat correctament a la direcció corresponent"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr "Comptabilitat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr "Informació de l'usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr "Codi de registre per Email del servidor SMTP d'OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr "Estadístiques del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr "Missatge de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr "Vendes"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr "Permís d'accés"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr "Si us plau, configureu el servidor de missatges per Email [Verificació / Prova]"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr "Ha fallat la verificació. Codi de verificació invàlid!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr "Historial servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr "ID servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr "Núm. total"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr "__user__ per a nom d'usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr "Data creació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr "Actiu"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr "No és possible llegir la configuració del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Statistics"
|
||||
msgstr "Estadístiques"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr "Direcció d'Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr "No teniu permís per accedir al servidor SMTP: %s "
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr "No verificat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr "Nom usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr "Envia codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr "Permís"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_cofiguration
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr "Configuració"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr "Error de lectura!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invàlid per a la definició de la vista!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
msgid "Email Client"
|
||||
msgstr "Client Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid "The message text that will be send along with the email which is send through this server"
|
||||
msgstr "El text del missatge que serà enviat junt amb l'Email que és enviat mitjançant aquest servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr "Verifica codi"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Servers"
|
||||
msgstr "Servidors"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr "Historial del client d'Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr "Email de prova d'OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message"
|
||||
msgstr "Missatge"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Companyia"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr "Verificat"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr "Nom servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr "Port SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr "Estat servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr "Verifica missatge"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr "Envia Email de prova"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr "__code__ per a codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr "Nom usuari"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr "Per defecte"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr "Error dels permisos!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr "Error del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr "Error del servidor SMTP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
|
||||
msgstr "Missatge de verificació. Aquest és el codi\n\n__code__\n\nque haureu de copiar al servidor d'Email d'OpenERP (assistent Verifica servidor).\n\nCreat per l'usuari __user__"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr "Informació del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "ID del registre"
|
||||
|
||||
#. module: smtpclient
|
||||
#: 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: smtpclient
|
||||
#: field:email.smtpclient,from:0
|
||||
msgid "Email From"
|
||||
msgstr "Remitent Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Information"
|
||||
msgstr "Informació de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr "Estoc"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr "Descripció"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
#: field:email.smtpclient,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr "Codi de verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr "Enviament"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr "Esperant verificació"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr "Usuaris permesos"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: field:res.company.address,email:0
|
||||
#: view:res.company:0
|
||||
msgid "Email Address"
|
||||
msgstr "Direcció de correu"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr "Missatges"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr "Tipus d'adreça"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
#: field:report.smtp.server,model:0
|
||||
msgid "Model"
|
||||
msgstr "Model"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
msgid "Email Server"
|
||||
msgstr "Servidor Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Report name and Resources ids are required!"
|
||||
msgstr "Nom d'informe i ids de registres són necessaris!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr "__name__ per a nom de client"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr "res.company.address"
|
||||
|
||||
@@ -0,0 +1,870 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
|
||||
"PO-Revision-Date: 2010-01-19 05:21+0000\n"
|
||||
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
|
||||
"<jesteve@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-02-25 05:00+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,bcc:0
|
||||
msgid "BCC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr "__number__ para número de Factura / Pedido venta"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr "Utilizar SSL"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Start Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr "Verificar servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.sendcode,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Other Mail Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,to:0
|
||||
msgid "Mail to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr "¡Mensaje de error!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr "Nombre servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,header_ids:0
|
||||
msgid "Default Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr "Enviar Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr "¡El servidor ya está verificado!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr ""
|
||||
"Ha fallado la verificación. ¡Compruebe la configuración del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr "¡Error del servidor SMTP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth_type:0
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Tipo de servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,from_email:0
|
||||
msgid "Email From"
|
||||
msgstr "Remitente Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr "Información del usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr "¡Código de registro por Email del servidor SMTP de OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr "Estadísticas del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr "Ventas"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr "Permiso de acceso"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_headers
|
||||
msgid "Email Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue:0
|
||||
msgid "Queue Option"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr ""
|
||||
"Por favor, configure el servidor de mensajes por Email [Verificación / "
|
||||
"Prueba]"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr "Ha fallado la verificación. ¡Código de verificación inválido!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr "Historial servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Yahoo!!! Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,test_email:0
|
||||
msgid "Test Message"
|
||||
msgstr "Mensaje de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr "ID servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,delete_queue_period:0
|
||||
msgid "delete emails/contents from email queue after specified no of days"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr "Núm. total"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,process_id:0
|
||||
msgid "Mail Transport Agent Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr "__user__ para nombre de usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr "Fecha creación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr "Estado servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,error:0
|
||||
msgid "Last Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr "Enviar código"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,name:0
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr "¡Error de lectura!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr "No es posible leer la configuración del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
msgid "Statistics"
|
||||
msgstr "Estadísticas"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr "Email de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr "Dirección de Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
|
||||
msgid "Email Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Waiting"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.testemail,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr "No verificado"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr "Nombre usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr "Tipo de dirección"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr "Permiso"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Message with All Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr "Configuración"
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,disclaimers:0
|
||||
msgid "Disclaimers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:res.company:0
|
||||
msgid "SMTP Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid ""
|
||||
"The message text that will be send along with the email which is send "
|
||||
"through this server"
|
||||
msgstr ""
|
||||
"El texto del mensaje que será enviado junto con el Email que es enviado "
|
||||
"mediante este servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr "Enviar Email de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
|
||||
msgid "Email Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr "Información del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.verifycode,init,code:0
|
||||
msgid "Enter the verification code thay you get in your verification Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr "Historial del cliente de Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Never Delete Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr "¡Email de prueba de OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: field:email.smtpclient.queue,serialized_message:0
|
||||
msgid "Message"
|
||||
msgstr "Mensaje"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,process_id:0
|
||||
msgid "MTA Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,server_id:0
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,server:0
|
||||
#: field:email.smtpclient.queue,server_id:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
msgid "SMTP Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Google Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr "Verificado"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,priority:0
|
||||
msgid ""
|
||||
"Priority between 0 to 10, will be used to define the MTA process priotiry"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr "Puerto SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Email TO Address not Defined !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth:0
|
||||
msgid "Use Auth"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,pstate:0
|
||||
msgid "Server Statue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr "Nombre usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr "Verificar mensaje"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
|
||||
msgid "Email Client"
|
||||
msgstr "Cliente Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Disclaimers Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr "__code__ para código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
#: field:email.smtpclient.queue,date_create:0
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,cc:0
|
||||
msgid "CC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"__code__ \n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
|
||||
msgid "Message Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr "Por defecto"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete Content After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr "No tiene permiso para acceder al servidor SMTP: %s "
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
|
||||
msgid "Message Queus"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr "¡Error del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Clear All After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr ""
|
||||
"Por favor, verifique el servidor de correo electrónico, sin verificarlo no "
|
||||
"puede enviar Email(s)."
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,priority:0
|
||||
msgid "Message Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,file_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr "__name__ para nombre de cliente"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,key:0
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"\n"
|
||||
"__code__\n"
|
||||
"\n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
"Mensaje de verificación. Éste es el código\n"
|
||||
"\n"
|
||||
"__code__\n"
|
||||
"\n"
|
||||
"que deberá copiar en el servidor de Email de OpenERP (asistente Verificar "
|
||||
"servidor).\n"
|
||||
"\n"
|
||||
"Creado por el usuario __user__"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr "Verificar código"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue_period:0
|
||||
msgid "Delete after"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server is not Verified, Please Verify the Server !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "ID del registro"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Data Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: 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: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete when Email Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr "Contabilidad"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.module.module,description:smtpclient.module_meta_information
|
||||
msgid ""
|
||||
"Email Client module that provides:\n"
|
||||
" Sending Email\n"
|
||||
" Use Multiple Server\n"
|
||||
" Multi Threading\n"
|
||||
" Multi Attachment\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr "Stock"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,code:0
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr "Código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,body:0
|
||||
msgid "Email Text"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr "Envío"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Last Error occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr "Esperando verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr "Usuarios permitidos"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#, python-format
|
||||
msgid "Verification Code Already Generated !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: view:res.company:0
|
||||
#: field:res.company.address,email:0
|
||||
msgid "Email Address"
|
||||
msgstr "Dirección de correo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr "Mensaje de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Stop Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr "Enviar código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
#: field:ir.actions.server,email_server:0
|
||||
msgid "Email Server"
|
||||
msgstr "Servidor Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr "¡Error de los permisos!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr "res.company.address"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,state:0
|
||||
msgid "Message Status"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "The Email is sent successfully to corresponding address"
|
||||
#~ msgstr ""
|
||||
#~ "El correo ha sido enviado correctamente a la dirección correspondiente"
|
||||
|
||||
#~ msgid "Servers"
|
||||
#~ msgstr "Servidores"
|
||||
|
||||
#~ msgid "Verification Information"
|
||||
#~ msgstr "Información de verificación"
|
||||
|
||||
#~ msgid "Report name and Resources ids are required!"
|
||||
#~ msgstr "¡Nombre de informe y ids de registros son necesarios!"
|
||||
@@ -0,0 +1,505 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file containt the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2008-11-30 15:52:27+0000\n"
|
||||
"PO-Revision-Date: 2008-11-30 17:41+0100\n"
|
||||
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\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: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr "__number__ para número de Factura / Pedido venta"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr "Utilizar SSL"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr "Verificar servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr "Enviar código"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr "Email de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr "¡Mensaje de error!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,test_email:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Test Message"
|
||||
msgstr "Mensaje de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr "Enviar Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
#: view:email.smtpclient:0
|
||||
msgid "SMTP Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr "¡El servidor ya está verificado!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr "Ha fallado la verificación. ¡Compruebe la configuración del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr "Por favor, verifique el servidor de correo electrónico, sin verificarlo no puede enviar Email(s)."
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr "Tipo de servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "The Email is sent successfully to corresponding address"
|
||||
msgstr "El correo ha sido enviado correctamente a la dirección correspondiente"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr "Contabilidad"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr "Información del usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr "¡Código de registro por Email del servidor SMTP de OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr "Estadísticas del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr "Mensaje de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr "Ventas"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr "Permiso de acceso"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr "Por favor, configure el servidor de mensajes por Email [Verificación / Prueba]"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr "Ha fallado la verificación. ¡Código de verificación inválido!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr "Historial servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr "ID servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr "Núm. total"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr "__user__ para nombre de usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr "Fecha creación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr "No es posible leer la configuración del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Statistics"
|
||||
msgstr "Estadísticas"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr "Servidor SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr "Dirección de Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr "No tiene permiso para acceder al servidor SMTP: %s "
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr "No verificado"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr "Nombre usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr "Enviar código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr "Permiso"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_cofiguration
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr "Configuración"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr "¡Error de lectura!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
msgid "Email Client"
|
||||
msgstr "Cliente Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid "The message text that will be send along with the email which is send through this server"
|
||||
msgstr "El texto del mensaje que será enviado junto con el Email que es enviado mediante este servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr "Verificar código"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Servers"
|
||||
msgstr "Servidores"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr "Historial del cliente de Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr "¡Email de prueba de OpenERP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message"
|
||||
msgstr "Mensaje"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Compañía"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr "Verificado"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr "Nombre servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr "Puerto SMTP"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr "Estado servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr "Verificar mensaje"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr "Enviar Email de prueba"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr "__code__ para código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr "Nombre usuario"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr "Por defecto"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr "¡Error de los permisos!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr "¡Error del servidor!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr "¡Error del servidor SMTP!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
#: view:email.smtpclient:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
|
||||
msgstr "Mensaje de verificación. Éste es el código\n\n__code__\n\nque deberá copiar en el servidor de Email de OpenERP (asistente Verificar servidor).\n\nCreado por el usuario __user__"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr "Factura"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr "Información del servidor"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "ID del registro"
|
||||
|
||||
#. module: smtpclient
|
||||
#: 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: smtpclient
|
||||
#: field:email.smtpclient,from:0
|
||||
msgid "Email From"
|
||||
msgstr "Remitente Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Information"
|
||||
msgstr "Información de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr "Stock"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
#: field:email.smtpclient,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr "Código de verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr "Envío"
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr "Esperando verificación"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr "Usuarios permitidos"
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: field:res.company.address,email:0
|
||||
#: view:res.company:0
|
||||
msgid "Email Address"
|
||||
msgstr "Dirección de correo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr "Mensajes"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr "Tipo de dirección"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
#: field:report.smtp.server,model:0
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
msgid "Email Server"
|
||||
msgstr "Servidor Email"
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Report name and Resources ids are required!"
|
||||
msgstr "¡Nombre de informe y ids de registros son necesarios!"
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr "__name__ para nombre de cliente"
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr "res.company.address"
|
||||
|
||||
@@ -0,0 +1,840 @@
|
||||
# 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 <EMAIL@ADDRESS>, 2010.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
|
||||
"PO-Revision-Date: 2010-04-07 13:57+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-13 03:42+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,bcc:0
|
||||
msgid "BCC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Start Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.sendcode,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Other Mail Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,to:0
|
||||
msgid "Mail to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,header_ids:0
|
||||
msgid "Default Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth_type:0
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,from_email:0
|
||||
msgid "Email From"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_headers
|
||||
msgid "Email Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue:0
|
||||
msgid "Queue Option"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Yahoo!!! Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,test_email:0
|
||||
msgid "Test Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,delete_queue_period:0
|
||||
msgid "delete emails/contents from email queue after specified no of days"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,process_id:0
|
||||
msgid "Mail Transport Agent Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,error:0
|
||||
msgid "Last Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,name:0
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
|
||||
msgid "Email Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Waiting"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.testemail,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Message with All Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,disclaimers:0
|
||||
msgid "Disclaimers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:res.company:0
|
||||
msgid "SMTP Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid ""
|
||||
"The message text that will be send along with the email which is send "
|
||||
"through this server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
|
||||
msgid "Email Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.verifycode,init,code:0
|
||||
msgid "Enter the verification code thay you get in your verification Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Never Delete Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: field:email.smtpclient.queue,serialized_message:0
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,process_id:0
|
||||
msgid "MTA Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,server_id:0
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,server:0
|
||||
#: field:email.smtpclient.queue,server_id:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
msgid "SMTP Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Google Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,priority:0
|
||||
msgid ""
|
||||
"Priority between 0 to 10, will be used to define the MTA process priotiry"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Email TO Address not Defined !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth:0
|
||||
msgid "Use Auth"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,pstate:0
|
||||
msgid "Server Statue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
|
||||
msgid "Email Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Disclaimers Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
#: field:email.smtpclient.queue,date_create:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,cc:0
|
||||
msgid "CC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"__code__ \n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
|
||||
msgid "Message Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete Content After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
|
||||
msgid "Message Queus"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Clear All After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,priority:0
|
||||
msgid "Message Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,file_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,key:0
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Verification Message. This is the code\n"
|
||||
"\n"
|
||||
"__code__\n"
|
||||
"\n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue_period:0
|
||||
msgid "Delete after"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server is not Verified, Please Verify the Server !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Data Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete when Email Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.module.module,description:smtpclient.module_meta_information
|
||||
msgid ""
|
||||
"Email Client module that provides:\n"
|
||||
" Sending Email\n"
|
||||
" Use Multiple Server\n"
|
||||
" Multi Threading\n"
|
||||
" Multi Attachment\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,code:0
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,body:0
|
||||
msgid "Email Text"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Last Error occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#, python-format
|
||||
msgid "Verification Code Already Generated !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: view:res.company:0
|
||||
#: field:res.company.address,email:0
|
||||
msgid "Email Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Stop Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
#: field:ir.actions.server,email_server:0
|
||||
msgid "Email Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,state:0
|
||||
msgid "Message Status"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,825 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:00:34+0000\n"
|
||||
"PO-Revision-Date: 2009-11-26 06:00:34+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: smtpclient
|
||||
#: field:email.smtpclient.queue,bcc:0
|
||||
msgid "BCC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Start Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.sendcode,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Other Mail Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,to:0
|
||||
msgid "Mail to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,header_ids:0
|
||||
msgid "Default Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth_type:0
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,from_email:0
|
||||
msgid "Email From"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_headers
|
||||
msgid "Email Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue:0
|
||||
msgid "Queue Option"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Yahoo!!! Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,test_email:0
|
||||
msgid "Test Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,delete_queue_period:0
|
||||
msgid "delete emails/contents from email queue after specified no of days"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,process_id:0
|
||||
msgid "Mail Transport Agent Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,error:0
|
||||
msgid "Last Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,name:0
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
|
||||
msgid "Email Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Waiting"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.testemail,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Message with All Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,disclaimers:0
|
||||
msgid "Disclaimers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:res.company:0
|
||||
msgid "SMTP Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid "The message text that will be send along with the email which is send through this server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
|
||||
msgid "Email Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.verifycode,init,code:0
|
||||
msgid "Enter the verification code thay you get in your verification Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Never Delete Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: field:email.smtpclient.queue,serialized_message:0
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,process_id:0
|
||||
msgid "MTA Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,server_id:0
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,server:0
|
||||
#: field:email.smtpclient.queue,server_id:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
msgid "SMTP Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Google Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,priority:0
|
||||
msgid "Priority between 0 to 10, will be used to define the MTA process priotiry"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Email TO Address not Defined !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth:0
|
||||
msgid "Use Auth"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,pstate:0
|
||||
msgid "Server Statue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
|
||||
msgid "Email Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Disclaimers Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
#: field:email.smtpclient.queue,date_create:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,cc:0
|
||||
msgid "CC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
|
||||
msgid "Verification Message. This is the code\n"
|
||||
"__code__ \n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
|
||||
msgid "Message Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete Content After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
|
||||
msgid "Message Queus"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Clear All After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,priority:0
|
||||
msgid "Message Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,file_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,key:0
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue_period:0
|
||||
msgid "Delete after"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server is not Verified, Please Verify the Server !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Data Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.model:0
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete when Email Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.module.module,description:smtpclient.module_meta_information
|
||||
msgid "Email Client module that provides:\n"
|
||||
" Sending Email\n"
|
||||
" Use Multiple Server\n"
|
||||
" Multi Threading\n"
|
||||
" Multi Attachment\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,code:0
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,body:0
|
||||
msgid "Email Text"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Last Error occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#, python-format
|
||||
msgid "Verification Code Already Generated !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: view:res.company:0
|
||||
#: field:res.company.address,email:0
|
||||
msgid "Email Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Stop Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
#: field:ir.actions.server,email_server:0
|
||||
msgid "Email Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,state:0
|
||||
msgid "Message Status"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,825 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * smtpclient
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-11-26 06:00:34+0000\n"
|
||||
"PO-Revision-Date: 2009-11-26 06:00:34+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: smtpclient
|
||||
#: field:email.smtpclient.queue,bcc:0
|
||||
msgid "BCC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__number__ for Invoice / Sales Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,ssl:0
|
||||
msgid "Use SSL?"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Start Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
|
||||
msgid "Verify Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,priority:0
|
||||
msgid "Server Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.sendcode,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Other Mail Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,to:0
|
||||
msgid "Mail to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Message Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,name:0
|
||||
msgid "Server Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,header_ids:0
|
||||
msgid "Default Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.testemail,init,send:0
|
||||
msgid "Send Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Server already verified!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#, python-format
|
||||
msgid "Verification Failed. Please check the Server Configuration!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth_type:0
|
||||
#: field:email.smtpclient,type:0
|
||||
msgid "Server Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,from_email:0
|
||||
msgid "Email From"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "User Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP SMTP server Email Registration Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_report_smtp_server
|
||||
#: view:report.smtp.server:0
|
||||
msgid "Server Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Sale"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Access Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_headers
|
||||
msgid "Email Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue:0
|
||||
msgid "Queue Option"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please configure Email Server Messages [Verification / Test]"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#, python-format
|
||||
msgid "Verification failed. Invalid Verification Code!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
|
||||
msgid "Email History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.history:0
|
||||
msgid "Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Yahoo!!! Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,test_email:0
|
||||
msgid "Test Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,server_id:0
|
||||
msgid "Server ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,delete_queue_period:0
|
||||
msgid "delete emails/contents from email queue after specified no of days"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,no:0
|
||||
msgid "Total No."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,process_id:0
|
||||
msgid "Mail Transport Agent Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__user__ for User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,date_create:0
|
||||
msgid "Date Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,state:0
|
||||
msgid "Server Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,error:0
|
||||
msgid "Last Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.sendcode,init:0
|
||||
#: wizard_button:email.sendcode,init,send:0
|
||||
msgid "Send Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,name:0
|
||||
msgid "Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Read Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Unable to read Server Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,server_statistics:0
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.testemail,init:0
|
||||
msgid "Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,server_id:0
|
||||
msgid "Smtp Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company,addresses:0
|
||||
msgid "Email Addresses"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
|
||||
msgid "Email Server History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Waiting"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.testemail,init,emailto:0
|
||||
msgid "Enter the address Email where you want to get the Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Not Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,email:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,user_id:0
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:res.company.address,name:0
|
||||
msgid "Address Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Message with All Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Message Headers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,disclaimers:0
|
||||
msgid "Disclaimers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:report.smtp.server,name:0
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:res.company:0
|
||||
msgid "SMTP Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,body:0
|
||||
msgid "The message text that will be send along with the email which is send through this server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
|
||||
msgid "Send Test Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
|
||||
msgid "Email Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Server Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.verifycode,init,code:0
|
||||
msgid "Enter the verification code thay you get in your verification Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
|
||||
msgid "Email Client History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Never Delete Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "OpenERP Test Email!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,body:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: field:email.smtpclient.queue,serialized_message:0
|
||||
msgid "Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,process_id:0
|
||||
msgid "MTA Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,server_id:0
|
||||
#: view:email.smtpclient:0
|
||||
#: field:email.smtpclient,server:0
|
||||
#: field:email.smtpclient.queue,server_id:0
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
|
||||
msgid "SMTP Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,auth_type:0
|
||||
msgid "Google Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: help:email.smtpclient,priority:0
|
||||
msgid "Priority between 0 to 10, will be used to define the MTA process priotiry"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,port:0
|
||||
msgid "SMTP Port"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Email TO Address not Defined !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Server Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,auth:0
|
||||
msgid "Use Auth"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,pstate:0
|
||||
msgid "Server Statue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,user:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,verify_email:0
|
||||
msgid "Verify Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_email_smtpclient
|
||||
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
|
||||
msgid "Email Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Disclaimers Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__code__ for Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
msgid "Queued"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,date_create:0
|
||||
#: field:email.smtpclient.queue,date_create:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,cc:0
|
||||
msgid "CC to"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
|
||||
msgid "Verification Message. This is the code\n"
|
||||
"__code__ \n"
|
||||
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
|
||||
"Created by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
|
||||
msgid "Message Queue"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete Content After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "You have no permission to access SMTP Server : %s "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
|
||||
msgid "Message Queus"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#: code:addons/smtpclient/wizard/testemail.py:0
|
||||
#: code:addons/smtpclient/wizard/verifycode.py:0
|
||||
#: view:email.smtpclient.queue:0
|
||||
#: selection:email.smtpclient.queue,state:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Clear All After"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Please verify Email Server, without verification you can not send Email(s)."
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,history_line:0
|
||||
#: field:report.smtp.server,history:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,priority:0
|
||||
msgid "Message Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:ir.actions.server,file_ids:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "__name__ for Customer Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.headers,key:0
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_view:email.verifycode,init:0
|
||||
#: wizard_button:email.verifycode,init,check:0
|
||||
msgid "Verify Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_button:email.sendcode,init,end:0
|
||||
#: wizard_button:email.testemail,init,end:0
|
||||
#: wizard_button:email.verifycode,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,delete_queue_period:0
|
||||
msgid "Delete after"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Server is not Verified, Please Verify the Server !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,resource_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "SMTP Data Error !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: constraint:ir.model:0
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,delete_queue:0
|
||||
msgid "Delete when Email Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.module.module,description:smtpclient.module_meta_information
|
||||
msgid "Email Client module that provides:\n"
|
||||
" Sending Email\n"
|
||||
" Use Multiple Server\n"
|
||||
" Multi Threading\n"
|
||||
" Multi Attachment\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,type:0
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,name:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,code:0
|
||||
#: wizard_field:email.verifycode,init,code:0
|
||||
msgid "Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,body:0
|
||||
msgid "Email Text"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:res.company.address,name:0
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,pstate:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient.queue:0
|
||||
msgid "Last Error occured"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: selection:email.smtpclient,state:0
|
||||
msgid "Waiting for Verification"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,password:0
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient,users_id:0
|
||||
msgid "Users Allowed"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/wizard/sendcode.py:0
|
||||
#, python-format
|
||||
msgid "Verification Code Already Generated !"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: wizard_field:email.sendcode,init,emailto:0
|
||||
#: field:email.smtpclient,email:0
|
||||
#: wizard_field:email.testemail,init,emailto:0
|
||||
#: view:res.company:0
|
||||
#: field:res.company.address,email:0
|
||||
msgid "Email Address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Verification Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: view:email.smtpclient:0
|
||||
msgid "Stop Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
|
||||
msgid "Email Servers"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
|
||||
msgid "Send Verification Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.history,model:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
|
||||
#: field:ir.actions.server,email_server:0
|
||||
msgid "Email Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: code:addons/smtpclient/smtpclient.py:0
|
||||
#, python-format
|
||||
msgid "Permission Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: model:ir.model,name:smtpclient.model_res_company_address
|
||||
msgid "res.company.address"
|
||||
msgstr ""
|
||||
|
||||
#. module: smtpclient
|
||||
#: field:email.smtpclient.queue,state:0
|
||||
msgid "Message Status"
|
||||
msgstr ""
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields,osv
|
||||
|
||||
class EmailAddress(osv.osv):
|
||||
_name = "res.company.address"
|
||||
_columns = {
|
||||
'company_id' : fields.many2one('res.company', 'Company' , required=True),
|
||||
'email': fields.many2one('email.smtpclient', 'Email Address', required=True),
|
||||
'name' : fields.selection([("default", "Default"),("invoice", "Invoice"),("sale","Sale"),("delivery","Delivery")], "Address Type",required=True)
|
||||
}
|
||||
EmailAddress()
|
||||
|
||||
class Company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'addresses': fields.one2many('res.company.address', 'company_id', 'Email Addresses'),
|
||||
}
|
||||
Company()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_smtpclient_all","smtpclient all","model_email_smtpclient",,1,0,0,0
|
||||
"access_smtpclient_group_erpmanager","smtpclient erp_manager","model_email_smtpclient","base.group_erp_manager",1,1,1,1
|
||||
"access_smtpclient_history_all","smtpclient_history all","model_email_smtpclient_history",,1,0,0,0
|
||||
"access_smtpclient_history_group_erpmanager","smtpclient_history erp_manager","model_email_smtpclient_history","base.group_erp_manager",1,1,1,1
|
||||
"access_smtpclient_report_all","smtpclient_report all","model_report_smtp_server",,1,0,0,0
|
||||
"access_smtpclient_report_group_erpmanager","smtpclient_report erp_manager","model_report_smtp_server","base.group_erp_manager",1,1,1,1
|
||||
"access_res_company_address","res.company.address","model_res_company_address",,1,0,0,0
|
||||
"access_res_company_address_erpmanager","res.company.address","model_res_company_address","base.group_erp_manager",1,1,1,1
|
||||
"access_email_smtpclient_queue","Smtpclient_queue all","model_email_smtpclient_queue",,1,1,1,0
|
||||
"access_email_smtpclient_queue_erpmanager","Smtpclient_queue erp_manager","model_email_smtpclient_queue","base.group_erp_manager",1,1,1,1
|
||||
|
@@ -0,0 +1,107 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from osv import fields
|
||||
import netsvc
|
||||
import time
|
||||
|
||||
class email_headers(osv.osv):
|
||||
_inherit = 'email.headers'
|
||||
_columns = {
|
||||
'action_id':fields.many2one('ir.actions.server', 'Server Action'),
|
||||
}
|
||||
email_headers()
|
||||
|
||||
class server_action(osv.osv):
|
||||
_inherit = 'ir.actions.server'
|
||||
_description = 'Email Client'
|
||||
_columns = {
|
||||
'email_server':fields.many2one('email.smtpclient', 'Email Server'),
|
||||
'report_id':fields.many2one('ir.actions.report.xml', 'Report', required=False),
|
||||
'file_ids':fields.many2many('ir.attachment', 'serveraction_attachment_rel', 'action_id', 'file_id', 'Attachments'),
|
||||
'header_ids':fields.one2many('email.headers', 'action_id', 'Default Headers'),
|
||||
}
|
||||
|
||||
def run(self, cr, uid, ids, context={}):
|
||||
logger = netsvc.Logger()
|
||||
|
||||
act_ids = []
|
||||
|
||||
for action in self.browse(cr, uid, ids, context):
|
||||
obj_pool = self.pool.get(action.model_id.model)
|
||||
obj = obj_pool.browse(cr, uid, context['active_id'], context=context)
|
||||
cxt = {
|
||||
'context':context,
|
||||
'object': obj,
|
||||
'time':time,
|
||||
'cr': cr,
|
||||
'pool' : self.pool,
|
||||
'uid' : uid
|
||||
}
|
||||
expr = eval(str(action.condition), cxt)
|
||||
if not expr:
|
||||
continue
|
||||
|
||||
if action.state == 'email':
|
||||
address = str(action.email)
|
||||
try:
|
||||
address = eval(str(action.email), cxt)
|
||||
except:
|
||||
pass
|
||||
|
||||
if not address:
|
||||
logger.notifyChannel('email', netsvc.LOG_INFO, 'Partner Email address not Specified!')
|
||||
continue
|
||||
|
||||
subject = self.merge_message(cr, uid, action.subject, action, context)
|
||||
body = self.merge_message(cr, uid, action.message, action, context)
|
||||
smtp_pool = self.pool.get('email.smtpclient')
|
||||
|
||||
reports = []
|
||||
if action.report_id:
|
||||
reports.append(('report.'+action.report_id.report_name, [context['active_id']]))
|
||||
|
||||
ir_attach_ids = []
|
||||
if action.file_ids:
|
||||
for ir_file in action.file_ids:
|
||||
ir_attach_ids.append(ir_file.id)
|
||||
|
||||
headers = { }
|
||||
for key in action.header_ids:
|
||||
val = eval(key.value, cxt)
|
||||
headers[key.key] = val
|
||||
|
||||
context['headers'] = headers
|
||||
|
||||
if smtp_pool.send_email(cr, uid, action.email_server.id, address, subject, body, [], reports=reports, ir_attach=ir_attach_ids, context=context) == True:
|
||||
logger.notifyChannel('smtp', netsvc.LOG_INFO, 'Email successfully send to : %s' % (address))
|
||||
else:
|
||||
logger.notifyChannel('smtp', netsvc.LOG_ERROR, 'Failed to send email to : %s' % (address))
|
||||
|
||||
else:
|
||||
act_ids.append(action.id)
|
||||
|
||||
if act_ids:
|
||||
return super(server_action,self).run(cr, uid, act_ids, context)
|
||||
else:
|
||||
return False
|
||||
|
||||
server_action()
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_server_report_inherit">
|
||||
<field name="name">ir.actions.server.form.inherit</field>
|
||||
<field name="model">ir.actions.server</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_server_action_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="email" position="after">
|
||||
<field name="email_server" select="1" attrs="{'required':[('state','=','email')]}"/>
|
||||
<field name="report_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_server_attachment_inherit">
|
||||
<field name="name">ir.actions.server.form.inherit</field>
|
||||
<field name="model">ir.actions.server</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="view_server_report_inherit"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="message" position="after">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Attachments" colspan="2"/>
|
||||
<field name="file_ids" colspan="2" nolabel="1"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Headers" colspan="2"/>
|
||||
<field name="header_ids" colspan="2" nolabel="1">
|
||||
<tree string="Custom Headers" editable="top">
|
||||
<field name="key"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,671 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import bz2
|
||||
|
||||
import time
|
||||
from datetime import datetime
|
||||
from datetime import timedelta
|
||||
|
||||
import release
|
||||
import socket
|
||||
|
||||
import base64
|
||||
import binascii
|
||||
|
||||
import random
|
||||
import smtplib
|
||||
import mimetypes
|
||||
|
||||
from email import Encoders
|
||||
from optparse import OptionParser
|
||||
from email.Message import Message
|
||||
from email.MIMEBase import MIMEBase
|
||||
from email.MIMEText import MIMEText
|
||||
from email.MIMEMultipart import MIMEMultipart
|
||||
from email.Utils import COMMASPACE, formatdate
|
||||
|
||||
import netsvc
|
||||
import pooler
|
||||
import tools
|
||||
|
||||
from osv import fields
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
error_msg = {'not_active' : "Please activate Email Server, without activating you can not send Email(s).",
|
||||
'server_stop' : 'Please start Email Server, without starting you can not send Email(s).',
|
||||
'server_not_confirm' : 'Please Verify Email Server, without verifying you can not send Email(s).'}
|
||||
|
||||
logger = netsvc.Logger()
|
||||
|
||||
class smtpclient(osv.osv):
|
||||
|
||||
_name = 'email.smtpclient'
|
||||
_description = 'Email Client'
|
||||
|
||||
_columns = {
|
||||
'name' : fields.char('Server Name', size=256, required=True),
|
||||
'from_email' : fields.char('Email From', size=256),
|
||||
'email' : fields.char('Email Address', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'user' : fields.char('User Name', size=256, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'password' : fields.char('Password', size=1024, invisible=True, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'server' : fields.char('SMTP Server', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'auth' : fields.boolean("Use Auth", readonly=True, states={'new':[('readonly',False)]}),
|
||||
'port' : fields.char('SMTP Port', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'ssl' : fields.boolean("Use SSL?", readonly=True, states={'new':[('readonly',False)]}),
|
||||
'users_id': fields.many2many('res.users', 'res_smtpserver_group_rel', 'sid', 'uid', 'Users Allowed'),
|
||||
'state': fields.selection([
|
||||
('new','Not Verified'),
|
||||
('waiting','Waiting for Verification'),
|
||||
('confirm','Verified'),
|
||||
],'Server Status', select=True, readonly=True),
|
||||
'auth_type':fields.selection([('gmail','Google Server'), ('yahoo','Yahoo!!! Server'), ('unknown','Other Mail Servers')], string="Server Type", readonly=True, states={'new':[('readonly',False)]}),
|
||||
'active' : fields.boolean("Active"),
|
||||
'date_create': fields.date('Date Create', required=True, readonly=True),
|
||||
'test_email' : fields.text('Test Message', translate=True),
|
||||
'body' : fields.text('Message', translate=True, help="The message text that will be send along with the email which is send through this server"),
|
||||
'verify_email' : fields.text('Verify Message', translate=True, readonly=True, states={'new':[('readonly',False)]}),
|
||||
'code' : fields.char('Verification Code', size=1024),
|
||||
'type' : fields.selection([("default", "Default"),("account", "Account"),("sale","Sale"),("stock","Stock")], "Server Type",required=True),
|
||||
'history_line': fields.one2many('email.smtpclient.history', 'server_id', 'History'),
|
||||
'server_statistics': fields.one2many('report.smtp.server', 'server_id', 'Statistics'),
|
||||
'delete_queue': fields.selection([
|
||||
('never','Never Delete Message'),
|
||||
('content','Delete Content After'),
|
||||
('all','Clear All After'),
|
||||
('after_send','Delete when Email Sent'),
|
||||
],'Queue Option', select=True),
|
||||
'priority': fields.integer('Server Priority', readonly=True, states={'new':[('readonly',False)]}, help="Priority between 0 to 10, will be used to define the MTA process priotiry"),
|
||||
'header_ids':fields.one2many('email.headers', 'server_id', 'Default Headers'),
|
||||
'disclaimers': fields.text('Disclaimers'),
|
||||
'process_id': fields.many2one('ir.cron', 'MTA Process', readonly=True, help="Mail Transport Agent Process"),
|
||||
'pstate': fields.selection([
|
||||
('running','Running'),
|
||||
('stop','Stop'),
|
||||
],'Server Statue', select=True, readonly=True),
|
||||
'delete_queue_period': fields.integer('Delete after', help="delete emails/contents from email queue after specified no of days"),
|
||||
}
|
||||
|
||||
def _get_users(self, cr, uid, context={}):
|
||||
return self.pool.get('res.users').search(cr, uid, [])
|
||||
|
||||
_defaults = {
|
||||
'date_create': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'state': lambda *a: 'new',
|
||||
'type': lambda *a: 'default',
|
||||
'port': lambda *a: '25',
|
||||
'pstate':lambda *a: 'stop',
|
||||
'priority': lambda *a: 5,
|
||||
'delete_queue_period': lambda *a: 30,
|
||||
'auth': lambda *a: True,
|
||||
'active': lambda *a: True,
|
||||
'delete_queue': lambda *a: 'never',
|
||||
'users_id': _get_users,
|
||||
'verify_email': lambda *a: _("Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"),
|
||||
}
|
||||
server = {}
|
||||
smtpServer = {}
|
||||
|
||||
def create(self, cr, user, vals, context={}):
|
||||
if vals.get('password', False) != False:
|
||||
vals['password'] = base64.b64encode(vals.get('password'))
|
||||
|
||||
res_id = super(smtpclient, self).create(cr, user, vals, context)
|
||||
return res_id
|
||||
|
||||
def write(self, cr, user, ids, vals, context=None):
|
||||
flag = False
|
||||
if vals.get('password', False) != False:
|
||||
for pass_char in vals.get('password'):
|
||||
if pass_char != '*':
|
||||
flag= True
|
||||
break
|
||||
|
||||
if flag:
|
||||
vals['password'] = base64.b64encode(vals.get('password'))
|
||||
else:
|
||||
del vals['password']
|
||||
|
||||
res = super(smtpclient, self).write(cr, user, ids, vals, context)
|
||||
return res
|
||||
|
||||
def read(self,cr, uid, ids, fields=None, context=None, load='_classic_read'):
|
||||
def override_password(o):
|
||||
if len(o) > 0:
|
||||
for field in o[0]:
|
||||
if field == 'password':
|
||||
o[0][field] = '********'
|
||||
return o
|
||||
|
||||
result = super(smtpclient, self).read(cr, uid, ids, fields, context, load)
|
||||
result = override_password(result)
|
||||
return result
|
||||
|
||||
def change_servertype(self, cr, uid, ids, server):
|
||||
if server == 'gmail':
|
||||
return {'value':{'server':'smtp.gmail.com', 'port':'25', 'ssl':True, 'auth':True}}
|
||||
elif server== 'yahoo':
|
||||
return {'value':{'server':'smtp.mail.yahoo.co.in', 'ssl':False, 'port':'587', 'auth':True}}
|
||||
else:
|
||||
return {'value':{'server':'localhost', 'port':'25', 'ssl':False, 'auth':False}}
|
||||
|
||||
def change_email(self, cr, uid, ids, email):
|
||||
email_from = self.pool.get('res.users').browse(cr, uid, uid).name
|
||||
if len(email) > 0 and email.find('@') > -1 and email.index('@') > 0:
|
||||
user = email[0:email.index('@')]
|
||||
return {'value':{'user':user, 'from_email':email_from+' <'+email+'>'}}
|
||||
else:
|
||||
return {'value':{'user':email, 'from_email':email_from+' <'+email+'>'}}
|
||||
|
||||
def check_permissions(self, cr, uid, ids):
|
||||
if uid == 1:
|
||||
return True
|
||||
cr.execute('select * from res_smtpserver_group_rel where sid=%s and uid=%s' % (ids[0], uid))
|
||||
data = cr.fetchall()
|
||||
if len(data) <= 0:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def gen_private_key(self, cr, uid, ids):
|
||||
new_key = []
|
||||
for i in time.strftime('%Y-%m-%d %H:%M:%S'):
|
||||
ky = i
|
||||
if ky in (' ', '-', ':'):
|
||||
keys = random.random()
|
||||
key = str(keys).split('.')[1]
|
||||
ky = key
|
||||
|
||||
new_key.append(ky)
|
||||
new_key.sort()
|
||||
key = ''.join(new_key)
|
||||
return key
|
||||
|
||||
|
||||
def _set_error(self, cr, uid, server_id, context={}):
|
||||
server_obj = self.browse(cr, uid, server_id)
|
||||
if not server_obj.active:
|
||||
return 'not_active'
|
||||
if server_obj.pstate == 'stop' :
|
||||
return 'server_stop'
|
||||
if server_obj.state != 'confirm':
|
||||
return 'server_not_confirm'
|
||||
return True
|
||||
|
||||
def test_verify_email(self, cr, uid, ids, toemail, test=False, code=False):
|
||||
|
||||
serverid = ids[0]
|
||||
self.open_connection(cr, uid, ids, serverid)
|
||||
|
||||
key = False
|
||||
if test and self.server[serverid]['state'] == 'confirm':
|
||||
body = self.server[serverid]['test_email'] or ''
|
||||
else:
|
||||
body = self.server[serverid]['verify_email'] or ''
|
||||
#ignore the code
|
||||
key = self.gen_private_key(cr, uid, ids)
|
||||
#md5(time.strftime('%Y-%m-%d %H:%M:%S') + toemail).hexdigest();
|
||||
|
||||
body = body.replace("__code__", key)
|
||||
|
||||
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0]
|
||||
body = body.replace("__user__", user.name)
|
||||
|
||||
if len(body.strip()) <= 0:
|
||||
raise osv.except_osv(_('Message Error!'), _('Please configure Email Server Messages [Verification / Test]'))
|
||||
|
||||
try:
|
||||
msg = MIMEText(body.encode('utf8') or '',_subtype='plain',_charset='utf-8')
|
||||
except:
|
||||
msg = MIMEText(body or '',_subtype='plain',_charset='utf-8')
|
||||
|
||||
if not test and not self.server[serverid]['state'] == 'confirm':
|
||||
msg['Subject'] = _('OpenERP SMTP server Email Registration Code!')
|
||||
else:
|
||||
msg['Subject'] = _('OpenERP Test Email!')
|
||||
|
||||
msg['To'] = toemail
|
||||
msg['From'] = tools.ustr(self.server[serverid]['from_email'])
|
||||
|
||||
message = msg.as_string()
|
||||
|
||||
if self.server[serverid]['disclaimers']:
|
||||
body = body + "\n" + self.server[serverid]['disclaimers']
|
||||
|
||||
queue = pooler.get_pool(cr.dbname).get('email.smtpclient.queue')
|
||||
queue.create(cr, uid, {
|
||||
'to':toemail,
|
||||
'server_id':serverid,
|
||||
'name':msg['Subject'],
|
||||
'body':body,
|
||||
'serialized_message':message,
|
||||
'priority':1,
|
||||
'type':'system'
|
||||
})
|
||||
|
||||
if self.server[serverid]['state'] != 'confirm':
|
||||
self.write(cr, uid, ids, {'state':'waiting', 'code':key})
|
||||
|
||||
return True
|
||||
|
||||
def getpassword(self, cr, uid, ids):
|
||||
data = {}
|
||||
cr.execute("select * from email_smtpclient where id = %s" , (str(ids[0]),))
|
||||
data = cr.dictfetchall()
|
||||
return data
|
||||
|
||||
def open_connection(self, cr, uid, ids, serverid=False, permission=True):
|
||||
if serverid:
|
||||
self.server[serverid] = self.getpassword(cr, uid, [serverid])[0]
|
||||
else:
|
||||
raise osv.except_osv(_('Read Error!'), _('Unable to read Server Settings'))
|
||||
|
||||
if permission:
|
||||
if not self.check_permissions(cr, uid, [serverid]):
|
||||
raise osv.except_osv(_('Permission Error!'), _('You have no permission to access SMTP Server : %s ') % (self.server[serverid]['name'],) )
|
||||
|
||||
if self.server[serverid]:
|
||||
try:
|
||||
self.smtpServer[serverid] = smtplib.SMTP()
|
||||
self.smtpServer[serverid].debuglevel = 0
|
||||
self.smtpServer[serverid].connect(str(self.server[serverid]['server']),str(self.server[serverid]['port']))
|
||||
|
||||
if self.server[serverid]['ssl']:
|
||||
self.smtpServer[serverid].ehlo()
|
||||
self.smtpServer[serverid].starttls()
|
||||
self.smtpServer[serverid].ehlo()
|
||||
|
||||
if self.server[serverid]['auth']:
|
||||
password = self.server[serverid]['password']
|
||||
password = base64.b64decode(password)
|
||||
self.smtpServer[serverid].login(str(self.server[serverid]['user']), password)
|
||||
|
||||
except Exception, e:
|
||||
logger.notifyChannel('imap', netsvc.LOG_WARNING, e)
|
||||
|
||||
return True
|
||||
|
||||
def selectAddress(self, cr, uid, partner=None, contact=None, ):
|
||||
email = 'none@none.com'
|
||||
if partner is None and contact is None:
|
||||
return 'none@none.com'
|
||||
|
||||
if partner is not None and contact is None:
|
||||
pool = self.pool.get('res.partner')
|
||||
data = pool.read(cr, uid, [partner])[0]
|
||||
if data:
|
||||
contact = data['address']
|
||||
|
||||
if contact is not None:
|
||||
pool = self.pool.get('res.partner.address')
|
||||
data = pool.read(cr, uid, contact)[0]
|
||||
email = data['email']
|
||||
|
||||
return email
|
||||
|
||||
def select(self, cr, uid, type):
|
||||
pool = self.pool.get('email.smtpclient')
|
||||
ids = pool.search(cr, uid, [('type','=',type)], context=False)
|
||||
if not ids:
|
||||
ids = pool.search(cr, uid, [('type','=','default')], context=False)
|
||||
|
||||
if not ids:
|
||||
return False
|
||||
|
||||
return ids[0]
|
||||
|
||||
# Reports is a list of tuples,where first arguement of tuple is the name of the report,second is the list of ids of the object
|
||||
def send_email(self, cr, uid, server_id, emailto, subject, body='', attachments=[], reports=[], ir_attach=[], charset='utf-8', headers={}, context={}):
|
||||
|
||||
if not emailto:
|
||||
raise osv.except_osv(_('SMTP Data Error !'), _('Email TO Address not Defined !'))
|
||||
|
||||
def createReport(cr, uid, report, ids, name=False):
|
||||
files = []
|
||||
for id in ids:
|
||||
try:
|
||||
service = netsvc.LocalService(report)
|
||||
(result, format) = service.create(cr, uid, [id], {}, {})
|
||||
if not name:
|
||||
report_file = '/tmp/reports'+ str(id) + '.pdf'
|
||||
else:
|
||||
report_file = name
|
||||
|
||||
fp = open(report_file,'wb+')
|
||||
fp.write(result);
|
||||
fp.close();
|
||||
files += [report_file]
|
||||
except Exception,e:
|
||||
continue
|
||||
return files
|
||||
|
||||
smtp_server = self.browse(cr, uid, server_id)
|
||||
if smtp_server.state != 'confirm':
|
||||
raise osv.except_osv(_('SMTP Server Error !'), _('Server is not Verified, Please Verify the Server !'))
|
||||
|
||||
if not subject:
|
||||
subject = "OpenERP Email: [Unknown Subject]"
|
||||
|
||||
try:
|
||||
subject = subject.encode(charset)
|
||||
except:
|
||||
subject = subject.decode()
|
||||
|
||||
#attachment from Reports
|
||||
for rpt in reports:
|
||||
if len(rpt) == 3:
|
||||
rpt_file = createReport(cr, uid, rpt[0], rpt[1], rpt[2])
|
||||
elif len(rpt) == 2:
|
||||
rpt_file = createReport(cr, uid, rpt[0], rpt[1])
|
||||
attachments += rpt_file
|
||||
|
||||
if isinstance(emailto, str) or isinstance(emailto, unicode):
|
||||
emailto = [emailto]
|
||||
|
||||
ir_pool = self.pool.get('ir.attachment')
|
||||
|
||||
for to in emailto:
|
||||
msg = MIMEMultipart()
|
||||
msg['Subject'] = tools.ustr(subject)
|
||||
msg['To'] = to
|
||||
msg['From'] = context.get('email_from', smtp_server.from_email)
|
||||
|
||||
if body == False:
|
||||
body = ''
|
||||
|
||||
if smtp_server.disclaimers != False:
|
||||
body = body + "\n" + smtp_server.disclaimers
|
||||
|
||||
try:
|
||||
msg.attach(MIMEText(body.encode(charset) or '', _charset=charset, _subtype="html"))
|
||||
except:
|
||||
msg.attach(MIMEText(body or '', _charset=charset, _subtype="html"))
|
||||
|
||||
#add custom headers to email
|
||||
for hk in headers.keys():
|
||||
msg[hk] = headers[hk]
|
||||
|
||||
for hk in smtp_server.header_ids:
|
||||
msg[hk.key] = hk.value
|
||||
|
||||
context_headers = context.get('headers', [])
|
||||
for hk in context_headers:
|
||||
msg[hk] = context_headers[hk]
|
||||
|
||||
# Add OpenERP Server information
|
||||
msg['X-Generated-By'] = 'OpenERP (http://www.openerp.com)'
|
||||
msg['X-OpenERP-Server-Host'] = socket.gethostname()
|
||||
msg['X-OpenERP-Server-Version'] = release.version
|
||||
msg['Message-Id'] = "<%s-openerp-@%s>" % (time.time(), socket.gethostname())
|
||||
|
||||
#attach files from disc
|
||||
for file in attachments:
|
||||
part = MIMEBase('application', "octet-stream")
|
||||
part.set_payload(open(file,"rb").read())
|
||||
Encoders.encode_base64(part)
|
||||
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
|
||||
msg.attach(part)
|
||||
|
||||
#attach files from ir_attachments
|
||||
for ath in ir_pool.browse(cr, uid, ir_attach):
|
||||
part = MIMEBase('application', "octet-stream")
|
||||
datas = base64.decodestring(ath.datas)
|
||||
part.set_payload(datas)
|
||||
Encoders.encode_base64(part)
|
||||
part.add_header('Content-Disposition', 'attachment; filename="%s"' %(ath.name))
|
||||
msg.attach(part)
|
||||
|
||||
message = msg.as_string()
|
||||
data = {
|
||||
'to':to,
|
||||
'server_id':server_id,
|
||||
'cc':False,
|
||||
'bcc':False,
|
||||
'name':subject,
|
||||
'body':body,
|
||||
'serialized_message':message,
|
||||
'priority':smtp_server.priority,
|
||||
}
|
||||
self.create_queue_enrty(cr, uid, data, context)
|
||||
|
||||
return True
|
||||
|
||||
def create_queue_enrty(self, cr, uid, data, context={}):
|
||||
queue = pooler.get_pool(cr.dbname).get('email.smtpclient.queue')
|
||||
return queue.create(cr, uid, data, context)
|
||||
|
||||
def _check_history(self, cr, uid, ids=False, context={}):
|
||||
result = True
|
||||
server = self.pool.get('email.smtpclient')
|
||||
queue = self.pool.get('email.smtpclient.queue')
|
||||
sids = self.search(cr, uid, [])
|
||||
for server in self.browse(cr, uid, sids):
|
||||
if server.delete_queue == 'never':
|
||||
continue
|
||||
|
||||
now = datetime.today()
|
||||
days = timedelta(days=server.delete_queue_period)
|
||||
day = now - days
|
||||
kday = day.__str__().split(' ')[0]
|
||||
|
||||
if server.delete_queue == 'content':
|
||||
qids = queue.search(cr, uid, [('server_id','=',server.id), ('date_create','<=',kday)])
|
||||
queue.write(cr, uid, qids, {'serialized_message':False})
|
||||
continue
|
||||
|
||||
if server.delete_queue == 'all':
|
||||
qids = queue.search(cr, uid, [('server_id','=',server.id), ('date_create','<=',kday)])
|
||||
queue.unlink(cr, uid, qids)
|
||||
|
||||
return result
|
||||
|
||||
def _send_emails(self, cr, uid, ids, context={}):
|
||||
fp = os.popen('ping www.google.com -c 1 -w 5',"r")
|
||||
if not fp.read():
|
||||
return False
|
||||
|
||||
queue = self.pool.get('email.smtpclient.queue')
|
||||
history = self.pool.get('email.smtpclient.history')
|
||||
queue.write(cr, uid, ids, {'state':'sending'})
|
||||
|
||||
error = []
|
||||
sent = []
|
||||
remove = []
|
||||
open_server = []
|
||||
|
||||
for email in queue.browse(cr, uid, ids):
|
||||
|
||||
if not email.server_id.id in open_server:
|
||||
open_server.append(email.server_id.id)
|
||||
self.open_connection(cr, uid, ids, email.server_id.id)
|
||||
|
||||
try:
|
||||
self.smtpServer[email.server_id.id].sendmail(email.server_id.email, email.to, tools.ustr(email.serialized_message))
|
||||
message = "message sent successfully to %s from %s server" % (email.to, email.server_id.name)
|
||||
logger.notifyChannel('smtp', netsvc.LOG_INFO, message)
|
||||
except Exception, e:
|
||||
queue.write(cr, uid, [email.id], {'error':e, 'state':'error'})
|
||||
continue
|
||||
|
||||
history.create(cr, uid, {
|
||||
'name':email.body,
|
||||
'user_id':uid,
|
||||
'server_id': email.server_id.id,
|
||||
'email':email.to
|
||||
})
|
||||
if email.server_id.delete_queue == 'after_send':
|
||||
remove.append(email.id)
|
||||
else:
|
||||
sent.append(email.id)
|
||||
|
||||
queue.unlink(cr, uid, remove)
|
||||
queue.write(cr, uid, sent, {'state':'send'})
|
||||
return True
|
||||
|
||||
def _check_queue(self, cr, uid, ids=False):
|
||||
queue = self.pool.get('email.smtpclient.queue')
|
||||
sids = []
|
||||
if not ids:
|
||||
sids = queue.search(cr, uid, [('state','not in',['send','sending']), ('type','=','system')], order="priority", limit=30)
|
||||
ids =[]
|
||||
else:
|
||||
sids = queue.search(cr, uid, [('state','not in',['send','sending']), ('server_id','in',ids)], order="priority", limit=30)
|
||||
|
||||
message = ""
|
||||
if len(ids) > 0:
|
||||
message = "sending %s emails from message queuq !" % (len(ids))
|
||||
logger.notifyChannel('smtp', netsvc.LOG_INFO, message)
|
||||
|
||||
result = self. _send_emails(cr, uid, sids, {})
|
||||
return result
|
||||
|
||||
def set_to_draft(self, cr, uid, ids, context={}):
|
||||
self.write(cr, uid, ids, {'state':'new', 'code':False})
|
||||
return True
|
||||
|
||||
def create_process(self, cr, uid, ids, context={}):
|
||||
svr = self.browse(cr, uid, ids[0])
|
||||
if not svr.process_id:
|
||||
res = {
|
||||
'name':'Process : ' + svr.name,
|
||||
'model':'email.smtpclient',
|
||||
'args': repr([ids]),
|
||||
'function':'_check_queue',
|
||||
'priority':5,
|
||||
'interval_number':1,
|
||||
'interval_type':'minutes',
|
||||
'user_id':uid,
|
||||
'numbercall':-1
|
||||
}
|
||||
id = self.pool.get('ir.cron').create(cr, uid, res)
|
||||
self.write(cr, uid, ids, {'process_id':id})
|
||||
return True
|
||||
|
||||
def start_process(self, cr, uid, ids, context={}):
|
||||
process = self.browse(cr, uid, ids[0], context)
|
||||
if not process.process_id:
|
||||
raise osv.except_osv(_('SMTP Server Error !'), _('Server is not Verified, Please Verify the Server !'))
|
||||
|
||||
pid = process.process_id.id
|
||||
self.pool.get('ir.cron').write(cr, uid, [pid], {'active':True})
|
||||
self.write(cr, uid, ids, {'pstate':'running'})
|
||||
return True
|
||||
|
||||
def stop_process(self, cr, uid, ids, context={}):
|
||||
pid = self.browse(cr, uid, ids[0], context).process_id.id
|
||||
self.pool.get('ir.cron').write(cr, uid, [pid], {'active':False})
|
||||
self.write(cr, uid, ids, {'pstate':'stop'})
|
||||
return True
|
||||
|
||||
smtpclient()
|
||||
|
||||
class email_headers(osv.osv):
|
||||
_name = 'email.headers'
|
||||
_description = 'Email Headers'
|
||||
_columns = {
|
||||
'server_id':fields.many2one('email.smtpclient', 'SMTP Server'),
|
||||
'key':fields.char('Header', size=64, required=True),
|
||||
'value':fields.char('Value', size=1024, required=False),
|
||||
}
|
||||
email_headers()
|
||||
|
||||
class email_history(osv.osv):
|
||||
_name = 'email.smtpclient.history'
|
||||
_description = 'Email Client History'
|
||||
_order = 'id desc'
|
||||
|
||||
_columns = {
|
||||
'name' : fields.text('Description',required=True, readonly=True),
|
||||
'date_create': fields.datetime('Date',readonly=True),
|
||||
'user_id':fields.many2one('res.users', 'Username', readonly=True, select=True),
|
||||
'server_id' : fields.many2one('email.smtpclient', 'Smtp Server', ondelete='set null', readonly=True, required=True),
|
||||
'model':fields.many2one('ir.model', 'Model', readonly=True, select=True),
|
||||
'resource_id':fields.integer('Resource ID', readonly=True),
|
||||
'email':fields.char('Email',size=64,readonly=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'date_create': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'user_id': lambda obj, cr, uid, context: uid,
|
||||
}
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
super(email_history,self).create(cr, uid, vals, context)
|
||||
cr.commit()
|
||||
email_history()
|
||||
|
||||
class message_queue(osv.osv):
|
||||
_name = 'email.smtpclient.queue'
|
||||
_description = 'Email Queue'
|
||||
_order = '"to"'
|
||||
_columns = {
|
||||
'to' : fields.char('Mail to', size=1024, readonly=True, states={'draft':[('readonly',False)], 'error':[('readonly',False)]}),
|
||||
'server_id':fields.many2one('email.smtpclient', 'SMTP Server', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'cc' : fields.char('CC to', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'bcc' : fields.char('BCC to', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'name' : fields.char('Subject', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'body' : fields.text('Email Text', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'serialized_message':fields.text('Message', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'state':fields.selection([
|
||||
('draft','Queued'),
|
||||
('sending','Waiting'),
|
||||
('send','Sent'),
|
||||
('error','Error'),
|
||||
],'Message Status', select=True, readonly=True),
|
||||
'type':fields.selection([
|
||||
('default','Default Message'),
|
||||
('system','System Message'),
|
||||
],'Message Type', select=True, readonly=True),
|
||||
'error':fields.text('Last Error', size=256, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'date_create': fields.datetime('Date', readonly=True),
|
||||
'priority':fields.integer('Message Priority', readonly=True),
|
||||
}
|
||||
_defaults = {
|
||||
'date_create': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'state': lambda *a: 'draft',
|
||||
'priority': lambda *a: '10',
|
||||
'type': lambda *a: 'default',
|
||||
}
|
||||
message_queue()
|
||||
|
||||
class report_smtp_server(osv.osv):
|
||||
_name = "report.smtp.server"
|
||||
_description = "Server Statistics"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'server_id':fields.many2one('email.smtpclient','Server ID',readonly=True),
|
||||
'name': fields.char('Server',size=64,readonly=True),
|
||||
'history':fields.char('History',size=64, readonly=True),
|
||||
'no':fields.integer('Total No.',readonly=True),
|
||||
}
|
||||
def init(self, cr):
|
||||
cr.execute("""
|
||||
create or replace view report_smtp_server as (
|
||||
select min(h.id) as id, c.id as server_id, h.name as history, h.name as name, count(h.name) as no from email_smtpclient c inner join email_smtpclient_history h on c.id=h.server_id group by h.name, c.id
|
||||
)
|
||||
""")
|
||||
|
||||
report_smtp_server()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="ir_cron_email_scheduler" model="ir.cron">
|
||||
<field name="name">Send Email</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'email.smtpclient'" name="model"/>
|
||||
<field eval="'_check_queue'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
</record>
|
||||
|
||||
<record id="ir_cron_history_checker" model="ir.cron">
|
||||
<field name="name">Queue Cleaner</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
<field eval="'email.smtpclient'" name="model"/>
|
||||
<field eval="'_check_history'" name="function"/>
|
||||
<field eval="'()'" name="args"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="email_smtpclient_sendmailserver0" model="email.smtpclient">
|
||||
<field eval="0" name="auth_type"/>
|
||||
<field eval=""""SendMail Server"""" name="name"/>
|
||||
<field eval="0" name="ssl"/>
|
||||
<field eval=""""localhost"""" name="server"/>
|
||||
<field eval="0" name="auth"/>
|
||||
<field eval=""""Administrator <admin@company.com>"""" name="from_email"/>
|
||||
<field eval=""""admin@company.com"""" name="email"/>
|
||||
<field eval=""""new"""" name="state"/>
|
||||
<field eval=""""admin"""" name="user"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval=""""Verification Message. This is the code\n__code__ \nyou must copy in the OpenERP Email Server (Verify Server wizard).\nCreated by user __user__"""" name="verify_email"></field>
|
||||
<field eval=""""default"""" name="type"/>
|
||||
<field eval="25" name="port"/>
|
||||
<field eval="[(6,0,[ref('base.user_root')])]" name="users_id"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,294 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="view_server_statistics_graph">
|
||||
<field name="name">report.smtp.server.graph</field>
|
||||
<field name="model">report.smtp.server</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Server Statistics" type="bar">
|
||||
<field name="no" operator="+" />
|
||||
<field name="history" operator="+" group="True" />
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_server_statistics_tree">
|
||||
<field name="name">report.smtp.server.tree</field>
|
||||
<field name="model">report.smtp.server</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Server Statistics">
|
||||
<field name="no" />
|
||||
<field name="history" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_server_statistics_form">
|
||||
<field name="name">report.smtp.server.form</field>
|
||||
<field name="model">report.smtp.server</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Server Statistics">
|
||||
<field name="no" />
|
||||
<field name="history" select="1" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window"
|
||||
id="action_view_server_statistics_graph">
|
||||
<field name="res_model">report.smtp.server</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="view_id" ref="view_server_statistics_graph" />
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="company_form">
|
||||
<field name="name">smtp.company.form</field>
|
||||
<field name="model">res.company</field>
|
||||
<field name="inherit_id" ref="base.view_company_form" />
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="SMTP Settings">
|
||||
<field name="addresses" colspan="4"
|
||||
nolabel="1">
|
||||
<tree string="Email Address">
|
||||
<field name="name" />
|
||||
<field name="email" />
|
||||
</tree>
|
||||
<form string="Email Address">
|
||||
<field name="name" />
|
||||
<field name="email"
|
||||
domain="[('state','=','confirm')]" />
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_smtpclient_form_new">
|
||||
<field name="name">email.smtpclient.form</field>
|
||||
<field name="model">email.smtpclient</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="SMTP Server">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1" />
|
||||
<field name="date_create" select="1"/>
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Configuration">
|
||||
<separator string="Server Information"
|
||||
colspan="4" />
|
||||
<field name="auth_type" on_change="change_servertype(auth_type)"/>
|
||||
<field name="server" select="2" />
|
||||
<field name="ssl" select="2" />
|
||||
<field name="port" select="2" />
|
||||
|
||||
<separator string="User Information"
|
||||
colspan="4" />
|
||||
<field name="email" select="1"
|
||||
on_change="change_email(email)"/>
|
||||
<field name="from_email" select="1"/>
|
||||
<field name="auth" select="2"/>
|
||||
<newline/>
|
||||
<field name="user" select="1" attrs="{'required': [('auth_type','in',['gmail','yahoo'])]}"/>
|
||||
<field name="password" password="True" attrs="{'required': [('auth_type','in',['gmail','yahoo'])]}"/>
|
||||
<newline />
|
||||
|
||||
<separator string="Other Information"
|
||||
colspan="4" />
|
||||
<field name="type" select="1" />
|
||||
<field name="active" select="2" />
|
||||
<field name="delete_queue" select="2" />
|
||||
<field name="delete_queue_period" select="2" attrs="{'readonly':[('delete_queue','not in',['content','all'])]}"/>
|
||||
|
||||
<separator string="Server Information" colspan="4"/>
|
||||
<group col="3" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
<button name="set_to_draft" string="Set to Draft" type="object" states="waiting,confirm"/>
|
||||
</group>
|
||||
<group col="4" colspan="4">
|
||||
<field name="process_id"/>
|
||||
<button name="start_process" string="Start Server" attrs="{'invisible':[('pstate','=','running')]}" type="object"/>
|
||||
<button name="stop_process" string="Stop Server" attrs="{'invisible':[('pstate','=','stop')]}" type="object"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Message Headers">
|
||||
<field name="header_ids" colspan="4" nolabel="1">
|
||||
<form string="Message Headers">
|
||||
<field name="key"/>
|
||||
<field name="value"/>
|
||||
</form>
|
||||
<tree string="Message Headers">
|
||||
<field name="key"/>
|
||||
<field name="value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Messages">
|
||||
<separator string="Verification Message" colspan="4" />
|
||||
<field name="verify_email" select="2" colspan="4" nolabel="1" />
|
||||
<label string="__code__ for Verification Code" />
|
||||
<separator string="Test Message" colspan="4" />
|
||||
<field name="test_email" select="2" colspan="4" nolabel="1" />
|
||||
<separator string="Message" colspan="4" />
|
||||
<field name="body" select="2" colspan="4" nolabel="1" />
|
||||
<label string="__name__ for Customer Name" />
|
||||
<label string="__number__ for Invoice / Sales Number" />
|
||||
<label string="__user__ for User Name" />
|
||||
</page>
|
||||
<page string="Disclaimers">
|
||||
<separator string="Disclaimers Message" colspan="4" />
|
||||
<field name="disclaimers" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Permission">
|
||||
<separator string="Access Permission"
|
||||
colspan="4" />
|
||||
<field name="users_id" select="1"
|
||||
colspan="4" nolabel="1" />
|
||||
</page>
|
||||
|
||||
<!--page string="Statistics">
|
||||
<field name="server_statistics"
|
||||
mode="graph,tree" colspan="4" nolabel="1" />
|
||||
</page-->
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_smtpclient_tree">
|
||||
<field name="name">email.smtpclient.form</field>
|
||||
<field name="model">email.smtpclient</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="SMTP Server">
|
||||
<field name="name" />
|
||||
<field name="pstate"/>
|
||||
<field name="from_email" />
|
||||
<field name="user" />
|
||||
<field name="server" />
|
||||
<field name="port" />
|
||||
<field name="type" />
|
||||
<field name="ssl" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window"
|
||||
id="action_email_smtpclient_tree">
|
||||
<field name="name">Email Server</field>
|
||||
<field name="res_model">email.smtpclient</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="view_id" ref="email_smtpclient_tree" />
|
||||
</record>
|
||||
|
||||
<menuitem name="Email Services" id="menu_smtpclient_administration_server" parent="base.menu_config"/>
|
||||
|
||||
<menuitem name="SMTP Servers" id="menu_smtpclient_administration_smtp_server" parent="menu_smtpclient_administration_server" action="action_email_smtpclient_tree"/>
|
||||
|
||||
<record model="ir.ui.view" id="email_smtpclient_history_tree">
|
||||
<field name="name">email.smtpclient.history.tree</field>
|
||||
<field name="model">email.smtpclient.history</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Server History">
|
||||
<field name="server_id" />
|
||||
<field name="user_id" />
|
||||
<field name="date_create" />
|
||||
<field name="name" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_smtpclient_history_form">
|
||||
<field name="name">email.smtpclient.history.form</field>
|
||||
<field name="model">email.smtpclient.history</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Server History">
|
||||
<field name="server_id"
|
||||
domain="[('id','=',parent.id)]" select="1"/>
|
||||
<field name="date_create" select="1"/>
|
||||
<field name="name" colspan="4" select="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window"
|
||||
id="action_email_smtpclient_history_tree">
|
||||
<field name="name">Sent Email History</field>
|
||||
<field name="res_model">email.smtpclient.history</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="view_id" ref="email_smtpclient_history_tree" />
|
||||
</record>
|
||||
|
||||
<menuitem name="Sent Email History" id="menu_smtpclient_administration_server_history" parent="menu_smtpclient_administration_smtp_server" action="action_email_smtpclient_history_tree"/>
|
||||
|
||||
<act_window context="{'server_id': active_id}" domain="[('server_id', '=', active_id)]" id="act_mail_server_2_mail_history" name="Email History" res_model="email.smtpclient.history" src_model="email.smtpclient"/>
|
||||
|
||||
|
||||
<!-- MessageQueue Views -->
|
||||
<record model="ir.ui.view" id="email_smtpclient_queue_tree">
|
||||
<field name="name">email.smtpclient.queue.tree</field>
|
||||
<field name="model">email.smtpclient.queue</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Message Queue">
|
||||
<field name="date_create" />
|
||||
<field name="priority"/>
|
||||
<field name="to" />
|
||||
<field name="name" />
|
||||
<field name="server_id" />
|
||||
<field name="state" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="email_smtpclient_queue_form">
|
||||
<field name="name">email.smtpclient.queue.form</field>
|
||||
<field name="model">email.smtpclient.queue</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Message Queue">
|
||||
<notebook>
|
||||
<page string="General">
|
||||
<field name="server_id" select="1"/>
|
||||
<field name="to" select="1"/>
|
||||
<field name="priority"/>
|
||||
<field name="name" colspan="4" select="1"/>
|
||||
<separator string="Message" colspan="4" />
|
||||
<field name="body" colspan="4" select="1" nolabel="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="date_create" select="1"/>
|
||||
</page>
|
||||
<page string="Error">
|
||||
<separator string="Last Error occured" colspan="4"/>
|
||||
<field name="error" select="2" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Message">
|
||||
<separator string="Message with All Headers" colspan="4"/>
|
||||
<field name="serialized_message" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_email_smtpclient_queue_tree">
|
||||
<field name="name">Message Queue</field>
|
||||
<field name="res_model">email.smtpclient.queue</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="email_smtpclient_queue_tree" />
|
||||
</record>
|
||||
<menuitem name="Message Queue" id="menu_smtpclient_administration_smtp_server_queue" parent="menu_smtpclient_administration_smtp_server" action="action_email_smtpclient_queue_tree"/>
|
||||
|
||||
<act_window context="{'server_id': active_id}" domain="[('server_id', '=', active_id), ('state','!=', 'send')]" id="act_mail_server_2_mail_queue" name="Message Queus" res_model="email.smtpclient.queue" src_model="email.smtpclient"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<wizard
|
||||
string="Send Verification Code"
|
||||
model="email.smtpclient"
|
||||
name="email.sendcode"
|
||||
id="wizard_email_sendcode"/>
|
||||
|
||||
<wizard
|
||||
string="Verify Server"
|
||||
model="email.smtpclient"
|
||||
name="email.verifycode"
|
||||
id="wizard_email_verifycode"/>
|
||||
|
||||
<wizard
|
||||
string="Send Test Email"
|
||||
model="email.smtpclient"
|
||||
name="email.testemail"
|
||||
id="wizard_email_testemail"/>
|
||||
|
||||
<wizard id="base.res_partner_mass_mailing_wizard"
|
||||
model="res.partner"
|
||||
name="res.partner.spam_send.smtpclient"
|
||||
string="Mass Mailing"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,8 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,8 +18,9 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard_fetch_mail
|
||||
|
||||
|
||||
import sendcode
|
||||
import verifycode
|
||||
import testemail
|
||||
import wizard_spam
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
from osv import osv
|
||||
import time
|
||||
import sys
|
||||
from tools.translate import _
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Send Code">
|
||||
<field name="emailto" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'emailto': {'string': 'Email Address', 'required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the address Email where you want to get the Verification Code'}
|
||||
}
|
||||
|
||||
class sendcode(wizard.interface):
|
||||
|
||||
def check_code(self, cr, uid, data, context):
|
||||
code = pooler.get_pool(cr.dbname).get('email.smtpclient').browse(cr, uid, [data['id']])[0].code
|
||||
if code:
|
||||
raise osv.except_osv(_('Error'), _('Verification Code Already Generated !'))
|
||||
return {}
|
||||
|
||||
|
||||
def send_code(self, cr, uid, data, context):
|
||||
state = pooler.get_pool(cr.dbname).get('email.smtpclient').test_verify_email(cr, uid, [data['id']], data['form']['emailto'])
|
||||
if not state:
|
||||
raise osv.except_osv(_('Error'), _('Verification Failed. Please check the Server Configuration!'))
|
||||
|
||||
return {}
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [check_code],
|
||||
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('send','Send Code')]}
|
||||
},
|
||||
'send': {
|
||||
'actions': [send_code],
|
||||
'result': {'type':'state', 'state':'end'}
|
||||
}
|
||||
}
|
||||
sendcode('email.sendcode')
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Test Email">
|
||||
<field name="emailto" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'emailto': {'string': 'Email Address', 'required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the address Email where you want to get the Test Email'}
|
||||
}
|
||||
|
||||
class testemail(wizard.interface):
|
||||
|
||||
def send_code(self, cr, uid, data, context):
|
||||
state = pooler.get_pool(cr.dbname).get('email.smtpclient').test_verify_email(cr, uid, [data['id']], data['form']['emailto'], test=True)
|
||||
if not state:
|
||||
raise osv.except_osv(_('Error'), _('Verification Failed. Please check the Server Configuration!'))
|
||||
return {}
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('send','Send Email')]}
|
||||
},
|
||||
'send': {
|
||||
'actions': [send_code],
|
||||
'result': {'type':'state', 'state':'end'}
|
||||
}
|
||||
}
|
||||
testemail('email.testemail')
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Verify Code">
|
||||
<field name="code" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'code': {'string': 'Verification Code','required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the verification code thay you get in your verification Email'}
|
||||
}
|
||||
class verifycode(wizard.interface):
|
||||
|
||||
def checkcode(self, cr, uid, data, context):
|
||||
|
||||
server_pool = pooler.get_pool(cr.dbname).get('email.smtpclient')
|
||||
cron_pool = pooler.get_pool(cr.dbname).get('ir.cron')
|
||||
|
||||
server = server_pool.browse(cr, uid, data['id'], context)
|
||||
state = server.state
|
||||
|
||||
if state == 'confirm':
|
||||
raise osv.except_osv(_('Error'), _('Server already verified!'))
|
||||
|
||||
code = server.code
|
||||
if code == data['form']['code']:
|
||||
if server_pool.create_process(cr, uid, [data['id']], context={}):
|
||||
server_pool.write(cr, uid, [data['id']], {'state':'confirm', 'pstate':'running'})
|
||||
print 'process created'
|
||||
else:
|
||||
raise osv.except_osv(_('Error'), _('Verification failed. Invalid Verification Code!'))
|
||||
|
||||
return {}
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('check','Verify Code')]}
|
||||
},
|
||||
'check': {
|
||||
'actions': [checkcode],
|
||||
'result': {'type':'state', 'state':'end'}
|
||||
}
|
||||
}
|
||||
verifycode('email.verifycode')
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
import tools
|
||||
import re
|
||||
|
||||
email_send_form = '''<?xml version="1.0"?>
|
||||
<form string="Mass Mailing">
|
||||
<field name="smtp_server" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="subject" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="text" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
email_send_fields = {
|
||||
'smtp_server': {'string':"SMTP Server", 'type':'many2one', 'relation':'email.smtpclient', 'required':True},
|
||||
'subject': {'string':'Subject', 'type':'char', 'size':64, 'required':True},
|
||||
'text': {'string':'Message', 'type':'text_tag', 'required':True}
|
||||
}
|
||||
|
||||
def merge_message(self, cr, uid, message, object, partner):
|
||||
|
||||
def merge(match):
|
||||
exp = str(match.group()[2:-2]).strip()
|
||||
result = eval(exp, {'object':object, 'partner':partner})
|
||||
if result in (None, False):
|
||||
return str("--------")
|
||||
return str(result)
|
||||
|
||||
com = re.compile('(\[\[.+?\]\])')
|
||||
msg = com.sub(merge, message)
|
||||
|
||||
return msg
|
||||
|
||||
# this sends an email to ALL the addresses of the selected partners.
|
||||
def _mass_mail_send(self, cr, uid, data, context):
|
||||
nbr = 0
|
||||
partners = pooler.get_pool(cr.dbname).get('res.partner').browse(cr, uid, data['ids'], context)
|
||||
email_server = pooler.get_pool(cr.dbname).get('email.smtpclient')
|
||||
|
||||
for partner in partners:
|
||||
for adr in partner.address:
|
||||
if adr.email:
|
||||
name = adr.name or partner.name
|
||||
to = adr.email
|
||||
|
||||
subject = merge_message(self, cr, uid, data['form']['subject'], adr, partner)
|
||||
message = merge_message(self, cr, uid, data['form']['text'], adr, partner)
|
||||
|
||||
email_server.send_email(cr, uid, data['form']['smtp_server'], to, subject, message)
|
||||
nbr += 1
|
||||
pooler.get_pool(cr.dbname).get('res.partner.event').create(cr, uid,
|
||||
{'name': 'Email sent through mass mailing',
|
||||
'partner_id': partner.id,
|
||||
'description': data['form']['text'], })
|
||||
#TODO: log number of message sent
|
||||
return {'email_sent': nbr}
|
||||
|
||||
class part_email(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch': email_send_form, 'fields': email_send_fields, 'state':[('end','Cancel'), ('send','Send Email')]}
|
||||
},
|
||||
'send': {
|
||||
'actions': [_mass_mail_send],
|
||||
'result': {'type': 'state', 'state':'end'}
|
||||
}
|
||||
}
|
||||
part_email('res.partner.spam_send.smtpclient')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-28 14:28+0000\n"
|
||||
"PO-Revision-Date: 2010-04-15 13:35+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock
|
||||
@@ -370,7 +370,7 @@ msgstr "Beschaffungslager"
|
||||
#: model:ir.actions.act_window,name:stock.action_production_lot_form
|
||||
#: model:ir.ui.menu,name:stock.menu_action_production_lot_form
|
||||
msgid "Production Lots"
|
||||
msgstr "Fertigungslos"
|
||||
msgstr "Fertigungslose"
|
||||
|
||||
#. module: stock
|
||||
#: rml:stock.picking.list:0
|
||||
@@ -688,7 +688,6 @@ msgstr "Lagerort beim Partner"
|
||||
msgid ""
|
||||
"Tracking lot is the code that will be put on the logistical unit/pallet"
|
||||
msgstr ""
|
||||
"Losnummer ist der Code, der die logistische Einheit / Palette identifiziert"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.tracking:0
|
||||
@@ -1888,7 +1887,7 @@ msgstr "STOCK_MEDIA_PAUSE"
|
||||
#. module: stock
|
||||
#: view:product.product:0
|
||||
msgid "Lots"
|
||||
msgstr "Lose"
|
||||
msgstr "Fertigungslose"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.picking,move_type:0
|
||||
@@ -1898,7 +1897,7 @@ msgstr "Alles zusammenpacken"
|
||||
#. module: stock
|
||||
#: field:product.product,track_outgoing:0
|
||||
msgid "Track Outging Lots"
|
||||
msgstr "Verfolge Warenversand"
|
||||
msgstr "Verfolge Warenversand (Lose)"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_stock_line_date
|
||||
@@ -2113,7 +2112,7 @@ msgstr "Projekt Administrator"
|
||||
#: model:ir.ui.menu,name:stock.menu_stock_report_prodlots
|
||||
#: view:stock.report.prodlots:0
|
||||
msgid "Stock by Lots"
|
||||
msgstr "Bestand Fertigungslos"
|
||||
msgstr "Bestand je Fertigungslos"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,auto_validate:0
|
||||
@@ -2226,7 +2225,7 @@ msgstr "STOCK_REVERT_TO_SAVED"
|
||||
#. module: stock
|
||||
#: field:product.product,track_production:0
|
||||
msgid "Track Production Lots"
|
||||
msgstr "Fertigungsserie"
|
||||
msgstr "Verfolge Produktion (Lose)"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
|
||||
@@ -335,7 +335,7 @@ class product_template(osv.osv):
|
||||
'stock.location',
|
||||
type='many2one',
|
||||
relation='stock.location',
|
||||
string="Requisition Location",
|
||||
string="Procurement Location",
|
||||
method=True,
|
||||
view_load=True,
|
||||
domain=[('usage','like','procurement')],
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="product_search_form_view_stock" model="ir.ui.view">
|
||||
<record id="product_search_form_view_stock" model="ir.ui.view">
|
||||
<field name="name">product.search.stock.form</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="type">search</field>
|
||||
<field name="inherit_id" ref="product.product_search_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="pricelist_id" select="1" widget="selection" position="before">
|
||||
<field name="location_id" select="1" widget="selection" context="{'location': self}" />
|
||||
<separator orientation="vertical"/>
|
||||
</field>
|
||||
<field name="pricelist_id" select="1" widget="selection" position="before">
|
||||
<field name="location_id" select="1" widget="selection" context="{'location': self}" />
|
||||
<separator orientation="vertical"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_category_property_form" model="ir.ui.view">
|
||||
<field name="name">product.category.stock.property.form.inherit</field>
|
||||
<field name="model">product.category</field>
|
||||
@@ -54,20 +54,21 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_product_standard_price_form" model="ir.ui.view">
|
||||
<record id="view_product_standard_price_form" model="ir.ui.view">
|
||||
<field name="name">product.product.standard.price.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="standard_price" position="replace">
|
||||
<group col="4" colspan="2">
|
||||
<field name="standard_price" readonly="True"/>
|
||||
<button name="%(action_view_change_standard_price)d" string="Change Price" type="action" icon="gtk-execute"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<field name="standard_price" position="replace">
|
||||
<label string="Cost Price" align="1.0"/>
|
||||
<group col="2" colspan="1">
|
||||
<field name="standard_price" readonly="True" nolabel="1"/>
|
||||
<button name="%(action_view_change_standard_price)d" string="Change Price" type="action" icon="gtk-execute"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_normal_property_acc_form" model="ir.ui.view">
|
||||
<field name="name">product.normal.stock.acc.property.form.inherit</field>
|
||||
@@ -77,8 +78,8 @@
|
||||
<field name="priority">26</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="property_account_expense" position="after">
|
||||
<field name="property_stock_account_output" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="property_stock_account_input" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="property_stock_account_output" domain="[('type','<>','view'),('type','<>','consolidation')]" groups="base.group_extended"/>
|
||||
<field name="property_stock_account_input" domain="[('type','<>','view'),('type','<>','consolidation')]" groups="base.group_extended"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
@@ -112,7 +113,7 @@
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="store" position="after">
|
||||
<group col="2" colspan="2" name="store">
|
||||
<group col="2" colspan="2" name="store" groups="base.group_extended">
|
||||
<separator string="Counter-Part Locations Properties" colspan="2"/>
|
||||
<field name="property_stock_procurement" widget="selection" domain="[('usage','=','procurement')]"/>
|
||||
<field name="property_stock_production" widget="selection"/>
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Location">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-stock" name="in_location" string="Internal Locations" domain="[('location_id.usage', '=', 'internal')]" help="Internal Locations" />
|
||||
<filter icon="terp-stock" string="Customer Locations" domain="[('location_id.usage', '=', 'customer')]" help="Customer Locations" />
|
||||
<filter icon="terp-stock" string="Supplier Locations" domain="[('location_id.usage', '=', 'supplier')]" help="Supplier Locations" />
|
||||
<filter icon="terp-stock" name="in_location" string="Internal" domain="[('location_id.usage', '=', 'internal')]" help="Internal Locations" />
|
||||
<filter icon="terp-stock" string="Customer" domain="[('location_id.usage', '=', 'customer')]" help="Customer Locations" />
|
||||
<filter icon="terp-stock" string="Supplier" domain="[('location_id.usage', '=', 'supplier')]" help="Supplier Locations" />
|
||||
|
||||
<separator orientation="vertical"/>
|
||||
<field name="location_id" select="1" />
|
||||
<field name="product_id" select="1" />
|
||||
<field name="location_id" select="1"/>
|
||||
<field name="product_id" select="1" default="1"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="10">
|
||||
@@ -35,7 +35,7 @@
|
||||
<form string="Stock by Lots">
|
||||
<field name="location_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="name"/>
|
||||
</form>
|
||||
</field>
|
||||
@@ -49,18 +49,31 @@
|
||||
<tree string="Stock by Lots">
|
||||
<field name="location_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_report_prodlots_graph" model="ir.ui.view">
|
||||
<field name="name">stock.report.prodlots.view</field>
|
||||
<field name="model">stock.report.prodlots</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Stock by Lots" type="bar">
|
||||
<field name="product_id"/>
|
||||
<field name="name"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_stock_report_prodlots_form" model="ir.actions.act_window">
|
||||
<field name="name">Inventory by Location</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">stock.report.prodlots</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="context">{'full':'1',"search_default_in_location":1}</field>
|
||||
<field name="search_view_id" ref="view_stock_report_prodlots_filter" />
|
||||
</record>
|
||||
|
||||
+31
-31
@@ -108,7 +108,7 @@
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</page><page string="Posted Inventory">
|
||||
</page><page string="Posted Inventory" groups="base.group_extended">
|
||||
<field colspan="4" name="move_ids" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -304,7 +304,7 @@
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="product_qty" select="1"/>
|
||||
<field name="product_uom" select="1" string="UOM"/>
|
||||
<field name="prodlot_id" select="1"/>
|
||||
<field name="prodlot_id" select="1" groups="base.group_extended"/>
|
||||
<field name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
<field name="picking_id"/>
|
||||
<field name="location_id" select="1"/>
|
||||
@@ -326,7 +326,7 @@
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="product_qty" select="1"/>
|
||||
<field name="product_uom" select="1" string="UOM"/>
|
||||
<field name="prodlot_id" select="1"/>
|
||||
<field name="prodlot_id" select="1" groups="base.group_extended"/>
|
||||
<field name="product_packaging" domain="[('product_id','=',product_id)]"/>
|
||||
<field name="picking_id"/>
|
||||
<field name="location_id" select="1"/>
|
||||
@@ -607,7 +607,7 @@
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
@@ -639,7 +639,7 @@
|
||||
<field name="date_planned"/>
|
||||
<field name="address_id" select="1" context="{'contact_display':'partner'}"/>
|
||||
<field groups="base.group_extended" name="product_packaging"/>
|
||||
<field name="prodlot_id" select="2"
|
||||
<field name="prodlot_id" select="2" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -656,7 +656,7 @@
|
||||
<button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Return Picking History">
|
||||
<page string="Return Picking History" groups="base.group_extended">
|
||||
<field name="move_stock_return_history" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -769,7 +769,7 @@
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
@@ -778,6 +778,7 @@
|
||||
name="%(stock.track_line)d"
|
||||
string="Split in production lots"
|
||||
type="action" icon="gtk-justify-fill"
|
||||
groups="base.group_extended"
|
||||
states="draft,waiting,confirmed,assigned" />
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action"
|
||||
@@ -799,7 +800,7 @@
|
||||
<field invisible="1" name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field groups="base.group_extended" name="product_packaging"/>
|
||||
<field name="prodlot_id" select="2"
|
||||
<field name="prodlot_id" select="2" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -958,7 +959,7 @@
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
@@ -989,7 +990,7 @@
|
||||
<field invisible="1" name="date"/>
|
||||
<field name="date_planned"/>
|
||||
<field groups="base.group_extended" name="product_packaging"/>
|
||||
<field name="prodlot_id" select="1"
|
||||
<field name="prodlot_id" select="1" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -1144,7 +1145,7 @@
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="state"/>
|
||||
<button
|
||||
name="%(stock.track_line)d"
|
||||
@@ -1173,7 +1174,7 @@
|
||||
<newline/>
|
||||
<field groups="base.group_extended" name="product_packaging"/>
|
||||
<newline/>
|
||||
<field name="prodlot_id" select="1"
|
||||
<field name="prodlot_id" select="1" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -1320,7 +1321,7 @@
|
||||
<field name="product_qty" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="picking_id" select="1"/>
|
||||
<field name="prodlot_id"/>
|
||||
<field name="prodlot_id" groups="base.group_extended"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="date_planned"/>
|
||||
@@ -1368,7 +1369,7 @@
|
||||
<group colspan="2" col="4">
|
||||
<separator string="Traceability" colspan="4" />
|
||||
<field name="tracking_id" select="1" colspan="4" />
|
||||
<field name="prodlot_id" select="2"
|
||||
<field name="prodlot_id" select="2" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -1398,13 +1399,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stock Moves">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-stock" string="Available" domain="[('state','=','assigned')]" help="Available Moves"/>
|
||||
<filter icon="terp-stock" string="Confirmed" domain="[('state','=','confirmed')]" help="Confirmed Moves"/>
|
||||
<filter icon="terp-stock" string="Waiting" domain="[('state','=','waiting')]" help="Waiting"/>
|
||||
<filter icon="terp-stock" string="Available" domain="[('state','=','done')]" help="Done"/>
|
||||
<filter icon="terp-stock" string="Available" domain="[('state','in',('assigned','confirmed','waiting'))]" help="Future"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="location_id" select="1"/>
|
||||
<field name="location_dest_id" select="1"/>
|
||||
<field name="product_id" select="1"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field name="product_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="8">
|
||||
@@ -1439,12 +1439,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="grey:state in ('cancel','done');black:state not in ('cancel','done')" string="Moves">
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="origin" string="Latest Requisition"/>
|
||||
<field name="origin" string="Latest Procurement"/>
|
||||
<field name="partner_id" string="Supplier"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty" />
|
||||
<field name="product_uom" string="UOM"/>
|
||||
<field name="prodlot_id" string="Lot"/>
|
||||
<field name="prodlot_id" string="Lot" groups="base.group_extended"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="backorder_id"/>
|
||||
<field name="state"/>
|
||||
@@ -1464,22 +1464,22 @@
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<separator colspan="4" string="Move Information"/>
|
||||
<field name="location_id" select="1"/>
|
||||
<field name="location_dest_id" select="1"/>
|
||||
<field colspan="4" name="product_id" select="1" on_change="onchange_product_id(product_id,location_id,location_dest_id)"/>
|
||||
<field name="location_id"/>
|
||||
<field name="location_dest_id"/>
|
||||
<field colspan="4" name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id)"/>
|
||||
<field name="product_qty" select="2" on_change="onchange_quantity(product_id, product_qty, product_uom, product_uos)"/>
|
||||
<field name="product_uom" select="2"/>
|
||||
<field name="product_uos" select="2"/>
|
||||
<field colspan="4" name="name" select="2"/>
|
||||
<field name="date"/>
|
||||
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="date_planned"/>
|
||||
<field name="priority"/>
|
||||
<field name="address_id" select="2" context="{'contact_display':'partner'}"/>
|
||||
<newline/>
|
||||
<field name="picking_id" select="2"/>
|
||||
<newline/>
|
||||
<field name="prodlot_id" select="2"
|
||||
<field name="prodlot_id" select="2" groups="base.group_extended"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=?',product_id)]"
|
||||
on_change="onchange_lot_id(prodlot_id,product_qty, location_id, product_id)"/>
|
||||
@@ -1488,7 +1488,7 @@
|
||||
<label/>
|
||||
<button name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
|
||||
<separator colspan="4" string="Move State"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="state"/>
|
||||
<group col="5" colspan="2">
|
||||
<button name="action_confirm" states="draft" string="Confirm" type="object" icon="gtk-apply"/>
|
||||
<button name="action_assign" states="confirmed" string="Set Available" type="object" icon="gtk-yes"/>
|
||||
@@ -1517,8 +1517,8 @@
|
||||
<filter icon="terp-stock" string="Back Orders" domain="[('backorder_id','!=',False)]" help="Back Orders"/>
|
||||
<filter icon="terp-stock" string="Planned Today" domain="[('date_planned::date','=',time.strftime('%%Y-%%m-%%d'))]" help="Orders planned for today"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="origin" string="Latest Requisition" select="1"/>
|
||||
<field name="partner_id" string="Supplier" select="1"/>
|
||||
<field name="origin" string="Latest Procurement"/>
|
||||
<field name="partner_id" string="Supplier"/>
|
||||
<field name="product_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
@@ -1568,7 +1568,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Incoterms">
|
||||
<field name="code"/>
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field colspan="4" name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -7,77 +7,81 @@ 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:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"PO-Revision-Date: 2010-04-15 11:04+0000\n"
|
||||
"Last-Translator: geopop65 <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock_location
|
||||
#: help:stock.location.path,delay:0
|
||||
msgid "Number of days to do this transition"
|
||||
msgstr ""
|
||||
msgstr "Număr de zile pentru efectuarea acestei tranziţii"
|
||||
|
||||
#. module: stock_location
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "XML invalid pentru arhitectura machetei de afișare !"
|
||||
|
||||
#. module: stock_location
|
||||
#: model:ir.module.module,shortdesc:stock_location.module_meta_information
|
||||
msgid "Stock Location Paths"
|
||||
msgstr ""
|
||||
msgstr "Trasee locaţii de stocare"
|
||||
|
||||
#. module: stock_location
|
||||
#: 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 să nu conţină nici un caracter "
|
||||
"special !"
|
||||
|
||||
#. module: stock_location
|
||||
#: selection:stock.location.path,auto:0
|
||||
msgid "Automatic No Step Added"
|
||||
msgstr ""
|
||||
msgstr "Automatic fără adăugare de paşi"
|
||||
|
||||
#. module: stock_location
|
||||
#: help:product.product,path_ids:0
|
||||
msgid ""
|
||||
"These rules set the right path of the product in the whole location tree."
|
||||
msgstr ""
|
||||
"Aceste reguli stabilesc traseul corect spre produs în întregul arbore de "
|
||||
"locaţii."
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,location_from_id:0
|
||||
msgid "Source Location"
|
||||
msgstr ""
|
||||
msgstr "Locaţie Sursă"
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,location_dest_id:0
|
||||
msgid "Destination Location"
|
||||
msgstr ""
|
||||
msgstr "Locaţie destinaţie"
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,auto:0
|
||||
#: selection:stock.location.path,auto:0
|
||||
msgid "Automatic Move"
|
||||
msgstr ""
|
||||
msgstr "Mişcare automată"
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,product_id:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
msgstr "Produse"
|
||||
|
||||
#. module: stock_location
|
||||
#: selection:stock.location.path,auto:0
|
||||
msgid "Manual Operation"
|
||||
msgstr ""
|
||||
msgstr "Operare manuală"
|
||||
|
||||
#. module: stock_location
|
||||
#: model:ir.model,name:stock_location.model_stock_location_path
|
||||
msgid "stock.location.path"
|
||||
msgstr ""
|
||||
msgstr "stock.location.path"
|
||||
|
||||
#. module: stock_location
|
||||
#: help:stock.location.path,auto:0
|
||||
@@ -89,25 +93,31 @@ msgid ""
|
||||
"move has to be validated by a worker. With 'Automatic No Step Added', the "
|
||||
"location is replaced in the original move."
|
||||
msgstr ""
|
||||
"Se foloseşte pentru definirea traseului de urmat pentru produs în arborele "
|
||||
"de locaţii.\n"
|
||||
"Valoarea 'Mişcare automată' va crea o mişcare de stoc după cea curentă şi va "
|
||||
"fi validată automat. Cu 'Operare manuală', mişcarea de stoc va trebui "
|
||||
"validată de un operator. Cu 'Automat fără adăugare de paşi' locaţia este "
|
||||
"înlocuită în mişcarea originală."
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,name:0
|
||||
msgid "Operation"
|
||||
msgstr ""
|
||||
msgstr "Operație"
|
||||
|
||||
#. module: stock_location
|
||||
#: view:product.product:0
|
||||
#: field:product.product,path_ids:0
|
||||
#: view:stock.location.path:0
|
||||
msgid "Location Paths"
|
||||
msgstr ""
|
||||
msgstr "Trasee locaţii"
|
||||
|
||||
#. module: stock_location
|
||||
#: field:stock.location.path,delay:0
|
||||
msgid "Delay (days)"
|
||||
msgstr ""
|
||||
msgstr "Întârziere (zile)"
|
||||
|
||||
#. module: stock_location
|
||||
#: view:product.product:0
|
||||
msgid "Procurement & Locations"
|
||||
msgstr ""
|
||||
msgstr "Aprovizionare & Locaţii"
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Requisition & Locations">
|
||||
<page string="Procurement & Locations">
|
||||
<field name="path_ids" editable="bottom" colspan="4" nolabel="1">
|
||||
<tree string="Location Paths" editable="bottom">
|
||||
<field name="location_from_id"/>
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:34+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"PO-Revision-Date: 2010-04-15 00:45+0000\n"
|
||||
"Last-Translator: Bundo <bundo@bundo.biz>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-03-30 04:13+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock_no_autopicking
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"
|
||||
|
||||
#. module: stock_no_autopicking
|
||||
#: field:product.product,auto_pick:0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user