"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-04-10 14:08+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2010-03-30 10:18+0000\n"
+"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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:16+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
#: model:ir.module.module,description:account_chart.module_meta_information
msgid "Remove minimal account chart"
-msgstr ""
+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 13:01+0000\n"
-"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
+"PO-Revision-Date: 2010-03-30 19:31+0000\n"
+"Last-Translator: Boris <boris.t.ivanov@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 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
-msgstr ""
+msgstr "Функция ня партньора"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
-msgstr ""
+msgstr "Текущ"
#. module: base_contact
#: field:res.partner.contact,first_name:0
msgid "First Name"
-msgstr "Собствено име"
+msgstr "Собствено Име"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
-msgstr ""
+msgstr "Друго"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
#. 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
"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:16+0000\n"
-"Last-Translator: Sergei Kostigoff <sergei.kostigoff@gmail.com>\n"
+"PO-Revision-Date: 2010-03-30 10:23+0000\n"
+"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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:12+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
#. module: board_account
#: view:board.board:0
msgid "Aged receivables"
-msgstr ""
+msgstr "Повременный расход"
#. module: board_account
#: model:ir.module.module,shortdesc:board_account.module_meta_information
msgid "Board for accountant"
-msgstr ""
+msgstr "Панель контролёра счетов"
#. module: board_account
#: model:ir.actions.act_window,name:board_account.action_aged_income
#. module: board_account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: board_account
#: model:ir.ui.menu,name:board_account.next_id_68
#. module: board_account
#: view:board.board:0
msgid "Account Board"
-msgstr ""
+msgstr "Панель счетов"
#. module: board_account
#: view:board.board:0
msgid "Aged income"
-msgstr ""
+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:27+0000\n"
-"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
+"PO-Revision-Date: 2010-03-30 10:26+0000\n"
+"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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:00+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_project
#. module: board_project
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: board_project
#: view:board.board:0
#. module: board_project
#: model:ir.module.module,shortdesc:board_project.module_meta_information
msgid "Board for project users"
-msgstr ""
+msgstr "Панель для пользователей проекта"
#. module: board_project
#: model:ir.actions.act_window,name:board_project.action_project_pipeline_user
#. module: board_project
#: view:board.board:0
msgid "My Planning"
-msgstr ""
+msgstr "Мой план"
#. module: board_project
#: view:board.board:0
#. module: board_project
#: view:board.board:0
msgid "My Timesheet"
-msgstr ""
+msgstr "Мой табель"
'crm_lead_menu.xml',
'crm_meeting_wizard.xml',
'crm_meeting_view.xml',
- 'crm_meeting_menu.xml',
'crm_phonecall_wizard.xml',
'crm_phonecall_view.xml',
'crm_phonecall_menu.xml',
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={}):
+ def history(self, cr, uid, ids, keyword, history=False, email=False, details=None, email_from=False, context={}):
cases = self.browse(cr, uid, ids, context=context)
- return self.__history(cr, uid, cases, keyword=keyword,\
- history=history, email=email, details=details,\
+ return self._history(cr, uid, cases, keyword=keyword,\
+ history=history, email=email, details=details, email_from=email_from, \
context=context)
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, context={}):
- model_obj = self.pool.get('ir.model')
+ model_obj = self.pool.get('ir.model')
+ if email and type(email) == type([]):
+ email = ','.join(email)
+ if email_from and type(email_from) == type([]):
+ email_from = ','.join(email_from)
+
for case in cases:
model_ids = model_obj.search(cr, uid, [('model','=',case._name)])
data = {
obj = self.pool.get('crm.case.history')
data['description'] = details or case.description
data['email_to'] = email or \
+ (case.section_id and case.section_id.reply_to) or \
(case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or False
+ case.user_id.address_id.email) or tools.config.get('email_from',False)
data['email_from'] = email_from or \
+ (case.section_id and case.section_id.reply_to) or \
(case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or False
+ case.user_id.address_id.email) or tools.config.get('email_from',False)
res = obj.create(cr, uid, data, context)
return True
_history = __history
if case.section_id.reply_to and case.email_from:
src = case.email_from
dest = case.section_id.reply_to
- body = case.email_last or case.description
+ body = ""
+ body = case.email_last or case.description
if not destination:
src, dest = dest, src
- if case.user_id.signature:
- body += '\n\n%s' % (case.user_id.signature or '')
+ if body and case.user_id.signature:
+ body += '\n\n%s' % (case.user_id.signature)
+
+ body = self.format_body(body)
dest = [dest]
attach_to_send = None
src,
dest,
"Reminder: [%s] %s" % (str(case.id), case.name, ),
- self.format_body(body),
+ body,
reply_to=case.section_id.reply_to,
openobject_id=str(case.id),
attach=attach_to_send
)
- if flag:
- raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
- else:
- raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
+ self._history(cr, uid, [case], _('Send'), history=True, email=dest, details=body, email_from=src)
+ #if flag:
+ # raise osv.except_osv(_('Email!'),("Email Successfully Sent"))
+ #else:
+ # raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully"))
return True
def _check(self, cr, uid, ids=False, context={}):
class base_action_rule(osv.osv):
_inherit = 'base.action.rule'
_description = 'Action Rules'
+
+ def email_send(self, cr, uid, obj, emails, body, emailfrom=tools.config.get('email_from',False), context={}):
+ body = self.format_mail(obj, body)
+ if not emailfrom:
+ if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and obj.user_id.address_id.email:
+ emailfrom = obj.user_id.address_id.email
+
+ name = '[%d] %s' % (obj.id, tools.ustr(obj.name))
+ emailfrom = tools.ustr(emailfrom)
+ if hasattr(obj, 'section_id') and obj.section_id and obj.section_id.reply_to:
+ reply_to = obj.section_id.reply_to
+ else:
+ reply_to = emailfrom
+ if not emailfrom:
+ raise osv.except_osv(_('Error!'),
+ _("No E-Mail ID Found for your Company address!"))
+ return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id))
def do_check(self, cr, uid, action, obj, context={}):
ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context)
res = super(base_action_rule, self).do_action(cr, uid, action, model_obj, obj, context=context)
write = {}
- if action.act_section_id:
+ if hasattr(action, act_section_id) and action.act_section_id:
obj.section_id = action.act_section_id
write['section_id'] = action.act_section_id.id
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.claim'}"
icon="gtk-undo" type="action" />
</form>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.fundraising'}"
icon="gtk-undo" type="action" />
</form>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.helpdesk'}"
icon="gtk-undo" type="action" />
</form>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.lead'}"
icon="gtk-undo" type="action" />
</form>
class crm_cases(osv.osv):
_name = "crm.case"
- _inherit = "crm.case"
+ _inherit = "crm.case"
def msg_new(self, cr, uid, msg):
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'],
- 'email_from': msg['From'],
- 'email_cc': msg['Cc'],
+ 'name': msg_subject,
+ 'email_from': msg_from,
+ 'email_cc': msg_cc,
'user_id': False,
- 'description': msg_body['body'],
+ 'description': body,
}
- res = mailgate_obj.partner_get(cr, uid, msg['From'])
+ res = mailgate_obj.partner_get(cr, uid, msg_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, email=msg['From'])
+ self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from)
return res
def msg_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
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, email=msg['From'])
+ self._history(cr, uid, cases, _('Receive'), history=True, details=body_data, email_from=msg['From'])
getattr(self,act)(cr, uid, select)
return res
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.opportunity'}"
icon="gtk-undo" type="action" />
</form>
<tree string="Case logs">
<field name="date"/>
<field name="name"/>
- <field name="som"/>
<field name="user_id"/>
<field name="section_id"/>
+ <!--
+ <field name="som"/>
<field name="canal_id"/>
+ -->
</tree>
</field>
</record>
<tree string="Case History">
<field name="date"/>
<field name="name"/>
- <field name="som"/>
<field name="user_id"/>
+ <!--
+ <field name="som"/>
<field name="canal_id"/>
+ -->
</tree>
</field>
</record>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(action_crm_reply_mail)d"
+ name="%(action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'crm.case'}"
icon="gtk-undo" type="action" />
</form>
"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-03-04 10:04+0000\n"
-"Last-Translator: xavi <xgilest@gmail.com>\n"
+"PO-Revision-Date: 2010-03-30 21:03+0000\n"
+"Last-Translator: Luis Gerardo Cruz Garcia <lgcruz@morfosys.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 03:59+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
"This property defines the list of date/time exceptions for "
"arecurring calendar component."
msgstr ""
+"Esta propiedad define la lista de excepciones (días/horas) para un evento de "
+"calendario recurrente"
#. module: crm
#: help:crm.case.rule,act_mail_to_user:0
#. module: crm
#: view:crm.meeting:0
msgid "Exception Dates"
-msgstr ""
+msgstr "Fechas de excepción"
#. module: crm
#: selection:crm.case.rule,trg_date_type:0
#. module: crm
#: field:crm.case.rule,regex_history:0
msgid "Regular Expression on Case History"
-msgstr ""
+msgstr "Expresiones Regulares en el Historial del Caso"
#. module: crm
#: model:ir.model,name:crm.model_crm_email_add_cc
msgid "Email Add CC"
-msgstr ""
+msgstr "Email añadir CC"
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
msgid "Opportunity Meeting"
-msgstr ""
+msgstr "Oportunidad de Reunión"
#. module: crm
#: help:crm.case,canal_id:0
#. module: crm
#: view:crm.meeting:0
msgid "Exception Rules"
-msgstr ""
+msgstr "Reglas de Excepción"
#. module: crm
#: field:crm.menu.config_wizard,opportunity:0
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim1
msgid "Accepted as Claim"
-msgstr ""
+msgstr "Aceptado como reclamación"
#. module: crm
#: view:crm.case.rule:0
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead6
msgid "Dead"
-msgstr ""
+msgstr "Muerto"
#. module: crm
#: view:crm.meeting:0
msgid "Confirm Meeting"
-msgstr ""
+msgstr "Confirmar reunión"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead1
#: model:crm.case.categ,name:crm.categ_oppor1
msgid "Existing Customer"
-msgstr ""
+msgstr "Cliente existente"
#. module: crm
#: model:crm.case.category2,name:crm.category_meet2
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree
#: view:report.crm.case.section.categ.stage:0
msgid "Cases by Section, Category and Stage"
-msgstr ""
+msgstr "Casos por sección, categoría y fase"
#. module: crm
#: help:crm.case.rule,act_mail_to_watchers:0
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
+"Active esta casilla en caso que quiera que la regla sea marcada CC ( copia "
+"de email para cualquier otra persona definida en las acciones)"
#. module: crm
#: field:crm.meeting,class:0
msgid "Privacy"
-msgstr ""
+msgstr "Privada"
#. module: crm
#: view:crm.case.rule:0
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1
msgid "Create Opportunity"
-msgstr ""
+msgstr "Crear oportunidad"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Tree"
-msgstr ""
+msgstr "Árbol de reuniones"
#. module: crm
#: code:addons/crm/crm.py:0
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_categ_meet
msgid "All Meetings"
-msgstr ""
+msgstr "Todas las reuniones"
#. module: crm
#: model:ir.module.module,shortdesc:crm.module_meta_information
#: view:crm.email.add.cc:0
#: model:ir.actions.act_window,name:crm.action_view_crm_email_add_cc_wizard
msgid "Add CC"
-msgstr ""
+msgstr "Agregar CC"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "June"
-msgstr ""
+msgstr "Junio"
#. module: crm
#: field:crm.segmentation,som_interval_default:0
#. module: crm
#: model:crm.case.stage,name:crm.stage_job7
msgid "Refused by Company"
-msgstr ""
+msgstr "Rechazado por la compañía"
#. module: crm
#: field:crm.case,planned_revenue:0
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "October"
-msgstr ""
+msgstr "Octubre"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor3
msgid "Value Proposition"
-msgstr ""
+msgstr "Propuesta de valor"
#. module: crm
#: view:crm.case.rule:0
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor2
msgid "New Business"
-msgstr ""
+msgstr "Nuevo negocio"
#. module: crm
#: help:crm.case,email_from:0
msgid "These people will receive email."
-msgstr ""
+msgstr "Estas personas recibirán un email."
#. module: crm
#: help:crm.case.section,calendar:0
msgid "Allows to show calendar"
-msgstr ""
+msgstr "Permite mostrar el calendario"
#. module: crm
#: view:crm.job:0
#: view:crm.opportunity:0
#: view:crm.phonecall:0
msgid " Today "
-msgstr ""
+msgstr " Hoy "
#. module: crm
#: wizard_view:crm.job.reschedule_phone_call,init:0
#: wizard_view:crm.opportunity.reschedule_phone_call,init:0
msgid "Phone Call Description"
-msgstr ""
+msgstr "Descripción de la llamada"
#. module: crm
#: view:crm.case.categ:0
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim3
msgid "Policy Claims"
-msgstr ""
+msgstr "Política de reclamaciones"
#. module: crm
#: code:addons/crm/crm.py:0
#. module: crm
#: view:crm.phonecall:0
msgid "Assigned to"
-msgstr ""
+msgstr "Asignada a"
#. module: crm
#: view:res.partner.events:0
#. module: crm
#: model:crm.case.stage,name:crm.stage_job4
msgid "Contract Proposed"
-msgstr ""
+msgstr "Contrato propuesto"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_job_req_main
msgid "Jobs - Hiring Process"
-msgstr ""
+msgstr "Trabajos - Proceso de selección de personal"
#. module: crm
#: view:crm.case:0
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Related Cases"
-msgstr ""
+msgstr "Casos Relacionados"
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "September"
-msgstr ""
+msgstr "Setiembre"
#. module: crm
#: view:crm.case:0
#. module: crm
#: view:crm.claim:0
msgid "New Claims"
-msgstr ""
+msgstr "Nuevas Reclamaciones"
#. module: crm
#: view:crm.meeting:0
msgid "Meetings Form"
-msgstr ""
+msgstr "Formulario de reuniones"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor5
msgid "Negotiation/Review"
-msgstr ""
+msgstr "Negociación/Revisión"
#. module: crm
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
#, python-format
msgid "A partner is already defined on this phonecall."
-msgstr ""
+msgstr "Una empresa ya esta definida para esta llamada."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage
msgid "Cases by Opportunities and Stage"
-msgstr ""
+msgstr "Casos por oportunidades y fase"
#. module: crm
#: view:crm.claim:0
msgid "Date of Claim"
-msgstr ""
+msgstr "Fecha de reclamación"
#. module: crm
#: view:crm.segmentation.line:0
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all
msgid "All Leads"
-msgstr ""
+msgstr "Todas las iniciativas"
#. module: crm
#: view:crm.lead:0
msgid "Leads Form"
-msgstr ""
+msgstr "Formulario de iniciativas"
#. module: crm
#: view:crm.segmentation:0
#. module: crm
#: model:crm.case.stage,name:crm.stage_job5
msgid "Contract Signed"
-msgstr ""
+msgstr "Contrato firmado"
#. module: crm
#: wizard_view:caldav.crm.subscribe,init:0
msgid "Subscribe to Remote ICS"
-msgstr ""
+msgstr "Subcribirse a ICS remotos"
#. module: crm
#: model:crm.case.category2,name:crm.category_oppor1
msgid "Existing Business"
-msgstr ""
+msgstr "Negocio existente"
#. module: crm
#: field:crm.case,probability:0
#. module: crm
#: model:ir.model,name:crm.model_crm_lead
msgid "Leads Cases"
-msgstr ""
+msgstr "Casos Oportunidades"
#. module: crm
#: help:crm.case.section,reply_to:0
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor
#, python-format
msgid "Opportunity"
-msgstr ""
+msgstr "Oportunidad"
#. module: crm
#: view:crm.case:0
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Emails"
-msgstr ""
+msgstr "Emails"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead7
msgid "Television"
-msgstr ""
+msgstr "Televisión"
#. module: crm
#: view:crm.segmentation:0
#. module: crm
#: model:crm.case.categ,name:crm.categ_claim1
msgid "Factual Claims"
-msgstr ""
+msgstr "Reclamaciones objetivas"
#. module: crm
#: view:crm.phonecall:0
msgid "Search Phonecalls"
-msgstr ""
+msgstr "Buscar llamadas"
#. module: crm
#: wizard_button:crm.lead.opportunity_set,create_partner,create:0
#: wizard_button:crm.phonecall.opportunity_set,create_partner,create:0
msgid "Continue"
-msgstr ""
+msgstr "Continue"
#. module: crm
#: field:crm.segmentation,som_interval:0
#. module: crm
#: help:caldav.crm.export,init,name:0
msgid "Save in .ics format"
-msgstr ""
+msgstr "Salvar en formato .ics"
#. module: crm
#: wizard_field:crm.new.send.mail,init,text:0
#: wizard_field:crm.send.mail,init,text:0
msgid "Message"
-msgstr ""
+msgstr "Mensaje"
#. module: crm
#: help:crm.segmentation,exclusif:0
#. module: crm
#: model:crm.case.category2,name:crm.category_lead6
msgid "Radio"
-msgstr ""
+msgstr "Radio"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity_assign_wizard
#. module: crm
#: view:crm.case.history:0
msgid "Search Histories"
-msgstr ""
+msgstr "Buscar en Historial"
#. module: crm
#: help:crm.case.stage,sequence:0
msgid "Gives the sequence order when displaying a list of case stages."
msgstr ""
+"Da el orden de secuencia cuando se muestra un lista de etápas de caso."
#. module: crm
#: model:crm.case.section,name:crm.section_support3
#: model:ir.ui.menu,name:crm.menu_crm_case_opp
#: model:process.node,name:crm.process_node_opportunities0
msgid "Opportunities"
-msgstr ""
+msgstr "Oportunidades"
#. module: crm
#: help:crm.segmentation,name:0
"These people will receive a copy of the future communication between partner "
"and users by email"
msgstr ""
+"Estas personas recibirán una copia de toda comunicación entre el partner y "
+"los usuarios."
#. module: crm
#: selection:report.crm.case.section.categ.categ2,month:0
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "March"
-msgstr ""
+msgstr "Marzo"
#. module: crm
#: view:crm.case.rule:0
msgid "Server Action to be Triggered"
-msgstr ""
+msgstr "Acción del servidor a ser ejecutada"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_rule-act
#. module: crm
#: wizard_field:crm.new.send.mail,init,state:0
msgid "Set State to"
-msgstr ""
+msgstr "Establecer estado a"
#. module: crm
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
#, python-format
msgid "There is no mail to reply!"
-msgstr ""
+msgstr "Este correo no puede ser contestado"
#. module: crm
#: wizard_button:crm.job.partner_create,init,confirm:0
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_partner_create
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_partner_create
msgid "Create Partner"
-msgstr ""
+msgstr "Crear empresa"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
#. module: crm
#: view:crm.fundraising:0
msgid "My Funds"
-msgstr ""
+msgstr "Mis donaciones"
#. module: crm
#: field:crm.case,partner_mobile:0
msgid "Mobile"
-msgstr ""
+msgstr "Móvil"
#. module: crm
#: field:crm.case.rule,name:0
#. module: crm
#: model:crm.case.categ,name:crm.categ_job2
msgid "Junior Developer"
-msgstr ""
+msgstr "Desarrollador junior"
#. module: crm
#: view:crm.meeting:0
msgid "My Meetings"
-msgstr ""
+msgstr "Mis reuniones"
#. module: crm
#: field:crm.case.categ,name:0
#. module: crm
#: model:crm.case.category2,name:crm.category_claim2
msgid "Preventive"
-msgstr ""
+msgstr "Preventivo"
#. module: crm
#: field:crm.case.rule,act_email_cc:0
#. module: crm
#: wizard_view:caldav.crm.export,init:0
msgid "Export ICS"
-msgstr ""
+msgstr "Exportar ICS"
#. module: crm
#: code:addons/crm/crm_claim.py:0
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "You can not assign Closed Case."
-msgstr ""
+msgstr "No se puede asignar un caso cerrado."
#. module: crm
#: help:crm.case.rule,act_remind_partner:0
#: view:crm.meeting:0
#, python-format
msgid "Meetings"
-msgstr ""
+msgstr "Reuniones"
#. module: crm
#: view:crm.case.rule:0
#: wizard_button:caldav.crm.import,init,end:0
#: wizard_button:caldav.crm.subscribe,init,end:0
msgid "_Cancel"
-msgstr ""
+msgstr "Cancelar"
#. module: crm
#: field:crm.case,category2_id:0
msgid "Category Name"
-msgstr ""
+msgstr "Nombre de Categoría"
#. module: crm
#: view:crm.segmentation:0
#. module: crm
#: view:crm.meeting:0
msgid "Recurrency Rule"
-msgstr ""
+msgstr "Regla concurrente"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_categ
#: view:crm.phonecall:0
#: wizard_field:crm.send.mail,init,subject:0
msgid "Subject"
-msgstr ""
+msgstr "Asunto"
#. module: crm
#: field:crm.meeting,attendees:0
msgid "Attendees"
-msgstr ""
+msgstr "Asistentes"
#. module: crm
#: model:ir.module.module,description:crm.module_meta_information
#. module: crm
#: model:process.transition,note:crm.process_transition_leadpartner0
msgid "Prospect is converting to business partner"
-msgstr ""
+msgstr "El prospecto se convierte a partner"
#. module: crm
#: view:crm.case.rule:0
#. module: crm
#: view:crm.claim:0
msgid "Pending Claims"
-msgstr ""
+msgstr "Reclamaciones Pendientes"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_stage
msgid "Cases by Opportunities, Category and Stage"
-msgstr ""
+msgstr "Casos por oportunidades, categoría y etapa"
#. module: crm
#: model:crm.case.category2,name:crm.category_lead4
msgid "Print"
-msgstr ""
+msgstr "Imprimir"
#. module: crm
#: field:crm.case,som:0
#: field:report.crm.case.section.categ.categ2,category2_id:0
#: field:report.crm.case.section.categ2,category2_id:0
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#. module: crm
#: view:crm.job:0
msgid "Candidate Refused"
-msgstr ""
+msgstr "Candidato rechazado"
#. module: crm
#: view:crm.segmentation:0
#: view:crm.phonecall:0
#: model:process.node,name:crm.process_node_meeting0
msgid "Meeting"
-msgstr ""
+msgstr "Reunión"
#. module: crm
#: view:crm.case.rule:0
#. module: crm
#: model:ir.model,name:crm.model_report_crm_case_section_categ_categ2
msgid "Cases by section, Category and Category2"
-msgstr ""
+msgstr "Casos por sección, categoría y categoría2"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor6
msgid "Closed Won"
-msgstr ""
+msgstr "Cerrado-Ganado"
#. module: crm
#: model:ir.actions.act_window,name:crm.act_crm_case_categ_crm_case_opened
#: field:report.crm.case.section.categ2,stage_id:0
#: field:report.crm.case.section.stage,stage_id:0
msgid "Stage"
-msgstr ""
+msgstr "Fase"
#. module: crm
#: constraint:ir.ui.view:0
"If the active field is set to true, it will allow you to hide the case "
"section without removing it."
msgstr ""
+"Si el campo activo esta en verdadero, te permitira esconder la sección del "
+"caso sin removerla"
#. module: crm
#: model:crm.case.categ,name:crm.categ_fund2
msgid "Learning And Education"
-msgstr ""
+msgstr "Aprendizaje y educación"
#. module: crm
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "Are you sure you want to create a partner based on this phonecall ?"
-msgstr ""
+msgstr "Estas seguro que deseas crear una empresa basado en esta llamada?"
#. module: crm
#: view:crm.case.stage:0
#: model:ir.actions.act_window,name:crm.crm_case_stage_act
#: model:ir.ui.menu,name:crm.menu_crm_case_stage_act
msgid "Stages"
-msgstr ""
+msgstr "Etapas"
#. module: crm
#: wizard_field:crm.case.opportunity.partner_opportunity,init,planned_revenue:0
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
-"PO-Revision-Date: 2010-03-22 18:16+0000\n"
+"PO-Revision-Date: 2010-03-30 20:39+0000\n"
"Last-Translator: smii <Unknown>\n"
"Language-Team: Finnish <fi@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:58+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
#. module: crm
#: model:crm.case.category2,name:crm.category_job1
msgid "Graduate"
-msgstr ""
+msgstr "Valmistua"
#. module: crm
#: wizard_view:crm.job.meeting_set,init:0
"Note that you can also use the calendar view to graphically schedule your "
"next meeting."
msgstr ""
+"Huomaa, että voit käyttää kalenterinäkymää myös suunnitellaksesi graafisesti "
+"seuraavan kokouksesi."
#. module: crm
#: view:crm.lead:0
msgid "Leads Tree"
-msgstr ""
+msgstr "Opaspuu"
#. module: crm
#: field:crm.meeting,caldav_url:0
#. module: crm
#: view:crm.meeting:0
msgid "Attendee"
-msgstr ""
+msgstr "Osanottaja"
#. module: crm
#: code:addons/crm/crm.py:0
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound
msgid "Inbound"
-msgstr ""
+msgstr "Saapuva"
#. module: crm
#: constraint:crm.case.section:0
msgid "Error ! You cannot create recursive sections."
-msgstr ""
+msgstr "Virhe! Et voi luoda rekursiivisia osioita."
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm
#: view:report.crm.case.section.categ2:0
#: view:report.crm.case.section.stage:0
msgid "This Year"
-msgstr ""
+msgstr "Tänä vuonna"
#. module: crm
#: field:crm.case.rule,act_remind_partner:0
#. module: crm
#: view:crm.job:0
msgid "Contract Data"
-msgstr ""
+msgstr "Sopimuksen tiedot (data)"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
#. module: crm
#: field:crm.menu.config_wizard,document_ics:0
msgid "Shared Calendar"
-msgstr ""
+msgstr "Jaettu kalenteri"
#. module: crm
#: field:crm.case.section,reply_to:0
msgid "Reply-To"
-msgstr ""
+msgstr "Vastaus osoitteeseen"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_lead_categ
msgid "Cases by Leads and Type"
-msgstr ""
+msgstr "Tapahtumat johdon ja tyypin mukaan"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
#: field:report.crm.case.section.categ2,amount_revenue:0
#: field:report.crm.case.section.stage,amount_revenue:0
msgid "Est.Revenue"
-msgstr ""
+msgstr "Arvioitu tuotto"
#. module: crm
#: model:crm.case.stage,name:crm.stage_job1
msgid "Initial Jobs Demand"
-msgstr ""
+msgstr "Alkutöiden tarve"
#. module: crm
#: field:crm.case.rule,trg_priority_to:0
#. module: crm
#: view:crm.claim:0
msgid "Claims Info"
-msgstr ""
+msgstr "Vaade tiedot"
#. module: crm
#: field:crm.case.category2,name:0
msgid "Case Category2 Name"
-msgstr ""
+msgstr "Tapahtuma kategoria2 nimi"
#. module: crm
#: wizard_view:crm.lead.opportunity_set,opportunity:0
#: model:ir.actions.wizard,name:crm.wizard_crm_lead_opportunity_set
#: model:ir.actions.wizard,name:crm.wizard_crm_phonecall_opportunity_set
msgid "Convert To Opportunity"
-msgstr ""
+msgstr "Muunna mahdollisuudeksi"
#. module: crm
#: model:crm.case.stage,name:crm.stage_phone2
#: view:crm.phonecall:0
msgid "Held"
-msgstr ""
+msgstr "Pysäytetty"
#. module: crm
#: view:crm.case:0
#. module: crm
#: selection:crm.new.send.mail,init,state:0
msgid "Unchanged"
-msgstr ""
+msgstr "Muuttamaton"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
#: wizard_view:crm.phonecall.opportunity_set,create_partner:0
#: wizard_view:crm.phonecall.partner_create,init:0
msgid "Convert To Partner"
-msgstr ""
+msgstr "Muunna kumppaniksi"
#. module: crm
#: field:crm.case.rule,trg_state_from:0
#. module: crm
#: view:crm.opportunity:0
msgid "Source"
-msgstr ""
+msgstr "Lähde"
#. module: crm
#: field:crm.meeting,location:0
msgid "Location"
-msgstr ""
+msgstr "Sijainti"
#. module: crm
#: view:crm.fundraising:0
msgid "Payment Mode"
-msgstr ""
+msgstr "Maksutapa"
#. module: crm
#: help:crm.case.rule,trg_date_range:0
#: view:crm.job:0
#: view:crm.lead:0
msgid "Stage: "
-msgstr ""
+msgstr "Vaihe: "
#. module: crm
#: view:crm.case.section:0
#. module: crm
#: model:process.node,note:crm.process_node_meeting0
msgid "Schedule a normal or phone meeting"
-msgstr ""
+msgstr "Ajoita normaali puhelinkokous"
#. module: crm
#: code:addons/crm/crm.py:0
#: code:addons/crm/crm_phonecall.py:0
#, python-format
msgid "Error !"
-msgstr ""
+msgstr "Virhe!"
#. module: crm
#: view:crm.case.rule:0
#. module: crm
#: model:crm.case.category2,name:crm.category_lead1
msgid "Telesales"
-msgstr ""
+msgstr "Puhelinmyynnit"
#. module: crm
#: model:ir.ui.menu,name:crm.menu_crm_case_history-act_main
#. module: crm
#: field:crm.case,create_date:0
msgid "Created"
-msgstr ""
+msgstr "Luotu"
#. module: crm
#: view:crm.lead:0
#: wizard_field:crm.opportunity.reschedule_phone_call,init,deadline:0
#: view:crm.phonecall:0
msgid "Planned Date"
-msgstr ""
+msgstr "Suunniteltu päivämäärä"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Hours"
-msgstr ""
+msgstr "Tunnit"
#. module: crm
#: help:crm.menu.config_wizard,phonecall:0
#: selection:report.crm.case.section.categ2,month:0
#: selection:report.crm.case.section.stage,month:0
msgid "July"
-msgstr ""
+msgstr "heinäkuu"
#. module: crm
#: model:crm.case.stage,name:crm.stage_oppor1
#. module: crm
#: field:crm.case,partner_name2:0
msgid "Employee Email"
-msgstr ""
+msgstr "Työntekijän sähköposti"
#. module: crm
#: model:ir.model,name:crm.model_crm_meeting
#. module: crm
#: view:crm.job:0
msgid "Job Info"
-msgstr ""
+msgstr "Työtehtävän tiedot"
#. module: crm
#: view:crm.meeting:0
msgid "Cancel Meeting"
-msgstr ""
+msgstr "Peruuta kokous/tapaaminen"
#. module: crm
#: model:crm.case.section,name:crm.section_support0
msgid "Jobs"
-msgstr ""
+msgstr "Työpaikat"
#. module: crm
#: view:crm.case.rule:0
#: model:crm.case.stage,name:crm.stage_phone3
#: view:crm.phonecall:0
msgid "Not Held"
-msgstr ""
+msgstr "Ei pidätetty"
#. module: crm
#: field:crm.case.rule,act_mail_to_user:0
#. module: crm
#: view:crm.job:0
msgid "Jobs - Recruitment Form"
-msgstr ""
+msgstr "Työpaikat - Rekrytointilomake"
#. module: crm
#: model:crm.case.category2,name:crm.category_claim1
msgid "Corrective"
-msgstr ""
+msgstr "Tarkennus"
#. module: crm
#: model:ir.model,name:crm.model_crm_opportunity
#: field:report.crm.case.section.categ2,month:0
#: field:report.crm.case.section.stage,month:0
msgid "Month"
-msgstr ""
+msgstr "Kuukausi"
#. module: crm
#: model:crm.case.section,name:crm.section_support2
#: wizard_button:crm.new.send.mail,init,send:0
#: wizard_button:crm.send.mail,init,send:0
msgid "Send Email"
-msgstr ""
+msgstr "Lähetä sähköpostia"
#. module: crm
#: wizard_view:crm.new.send.mail,init:0
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund3
msgid "Credit Card"
-msgstr ""
+msgstr "Luottokortti"
#. module: crm
#: code:addons/crm/crm.py:0
"No E-Mail ID Found for the Responsible Partner or missing reply address in "
"section!"
msgstr ""
+"Ei löydettyä sähköposti ID:tä vastaavalle kumppanille tai puuttuva "
+"vastausosoite tässä osiossa!"
#. module: crm
#: view:crm.job:0
#. module: crm
#: field:crm.case.history,log_id:0
msgid "Log"
-msgstr ""
+msgstr "Loki"
#. module: crm
#: help:crm.menu.config_wizard,fund:0
msgid ""
"This may help associations in their fund raising process and tracking."
-msgstr ""
+msgstr "Tämä saattaa auttaa yhteisöjä varainhankinnassa ja sen seurannassa."
#. module: crm
#: view:crm.meeting:0
msgid "Reset to Unconfirmed"
-msgstr ""
+msgstr "Palauta vahvistamattomaksi"
#. module: crm
#: view:crm.case:0
#. module: crm
#: view:crm.case.rule:0
msgid "Note"
-msgstr ""
+msgstr "Huomautus"
#. module: crm
#: field:report.crm.case.section.categ.categ2,delay_close:0
#: field:report.crm.case.section.categ2,delay_close:0
#: field:report.crm.case.section.stage,delay_close:0
msgid "Delay Close"
-msgstr ""
+msgstr "Viivytä sulkemista"
#. module: crm
#: selection:crm.case,priority:0
#: selection:crm.case.rule,trg_priority_from:0
#: selection:crm.case.rule,trg_priority_to:0
msgid "Low"
-msgstr ""
+msgstr "Matala"
#. module: crm
#: field:crm.case,date_closed:0
#: selection:report.crm.case.section.categ2,state:0
#: selection:report.crm.case.section.stage,state:0
msgid "Closed"
-msgstr ""
+msgstr "Suljettu"
#. module: crm
#: view:crm.job:0
msgid "Candidate Name2"
-msgstr ""
+msgstr "Ehdokasnimi 2"
#. module: crm
#: code:addons/crm/crm.py:0
#, python-format
msgid "cancel"
-msgstr ""
+msgstr "Peruuta"
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet2
msgid "Internal Meeting"
-msgstr ""
+msgstr "Sisäinen kokous"
#. module: crm
#: view:crm.case:0
#: view:crm.lead:0
#: view:crm.opportunity:0
msgid "Events"
-msgstr ""
+msgstr "Tapahtumat"
#. module: crm
#: help:crm.menu.config_wizard,lead:0
"Allows you to track and manage leads which are pre-sales requests or "
"contacts, the very first contact with a customer request."
msgstr ""
+"Sallii sinun seuraavan ja hallinoimaan oppaita jotka ovat esi-myynti "
+"pyyntöjä tai yhteystietoja. Ensimmäinen yhteydenotto asiakkaan pyyntöön."
#. module: crm
#: help:crm.case,som:0
#. module: crm
#: model:crm.case.categ,name:crm.categ_meet1
msgid "Customer Meeting"
-msgstr ""
+msgstr "Asiakastapaaminen"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc2:0
#. module: crm
#: view:crm.job:0
msgid "Degree"
-msgstr ""
+msgstr "Tutkinto"
#. module: crm
#: wizard_field:crm.new.send.mail,init,doc1:0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone
#, python-format
msgid "Phone Calls"
-msgstr ""
+msgstr "Puhelinsoitot"
#. module: crm
#: help:crm.case,active:0
#. module: crm
#: field:crm.case,partner_phone:0
msgid "Phone"
-msgstr ""
+msgstr "Puhelin"
#. module: crm
#: model:crm.case.category2,name:crm.categ2_fund2
msgid "Cheque"
-msgstr ""
+msgstr "Šekki"
#. module: crm
#: field:crm.case,active:0
#: field:crm.case.rule,active:0
#: field:crm.case.section,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktiivinen"
#. module: crm
#: help:crm.case.rule,act_remind_attach:0
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
msgid ">"
-msgstr ""
+msgstr ">"
#. module: crm
#: view:crm.job:0
#. module: crm
#: model:ir.actions.wizard,name:crm.wizard_crm_send_mail
msgid "Send Mail"
-msgstr ""
+msgstr "Lähetä sähköpostia"
#. module: crm
#: selection:crm.case.rule,trg_date_range_type:0
msgid "Months"
-msgstr ""
+msgstr "Kuukautta"
#. module: crm
#: view:crm.claim.assign_wizard:0
#. module: crm
#: model:process.node,note:crm.process_node_opportunities0
msgid "When a real project/opportunity is detected"
-msgstr ""
+msgstr "Kun todellinen projekti/mahdollisuus on löydetty"
#. module: crm
#: wizard_view:crm.job.partner_create,init:0
#: wizard_field:crm.lead.opportunity_set,create_partner,action:0
#: wizard_field:crm.phonecall.opportunity_set,create_partner,action:0
msgid "Action"
-msgstr ""
+msgstr "Toiminto"
#. module: crm
#: code:addons/crm/crm_claim.py:0
#: model:ir.ui.menu,name:crm.menu_crm_case_claims
#, python-format
msgid "Claims"
-msgstr ""
+msgstr "Vaateet"
#. module: crm
#: field:crm.segmentation,som_interval_decrease:0
#. module: crm
#: model:ir.model,name:crm.model_crm_case_category2
msgid "Category2 of case"
-msgstr ""
+msgstr "tapahtuman kategoria2"
#. module: crm
#: wizard_field:crm.new.send.mail,init,to:0
#. module: crm
#: model:ir.ui.menu,name:crm.menu_presale
msgid "Sales"
-msgstr ""
+msgstr "Myynnit"
#. module: crm
#: view:crm.case:0
#: view:crm.phonecall:0
msgid "General"
-msgstr ""
+msgstr "Yleiset"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead2
msgid "Assigned"
-msgstr ""
+msgstr "Määrätty"
#. module: crm
#: model:crm.case.stage,name:crm.stage_lead5
msgid "Recycled"
-msgstr ""
+msgstr "Kierrätetty"
#. module: crm
#: model:crm.case.categ,name:crm.categ_lead8
#: model:crm.case.categ,name:crm.categ_oppor8
msgid "Other"
-msgstr ""
+msgstr "Muu"
#. module: crm
#: view:crm.case:0
#: selection:crm.new.send.mail,init,state:0
#: view:crm.opportunity:0
msgid "Done"
-msgstr ""
+msgstr "Valmis"
#. module: crm
#: field:crm.segmentation,som_interval_max:0
#: selection:report.crm.case.section.stage,state:0
#, python-format
msgid "Open"
-msgstr ""
+msgstr "Avoin"
#. module: crm
#: selection:crm.meeting,class:0
#: field:crm.opportunity.assign_wizard,user_id:0
#: field:crm.phonecall.assign_wizard,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Vastuullinen"
#. module: crm
#: model:crm.case.stage,name:crm.stage_claim4
#: model:crm.case.stage,name:crm.stage_meet3
msgid "Invalid"
-msgstr ""
+msgstr "Virheellinen"
#. module: crm
#: wizard_button:crm.job.meeting_set,init,order:0
#: wizard_button:crm.phonecall.meeting_set,init,order:0
msgid "Set Meeting"
-msgstr ""
+msgstr "Aseta kokous"
#. module: crm
#: field:crm.menu.config_wizard,meeting:0
email_re = re.compile(r"([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6})")
case_re = re.compile(r"\[([0-9]+)\]", re.UNICODE)
command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE)
-reference_re = re.compile("<.*-tinycrm-(\\d+)@(.*)>", re.UNICODE)
+reference_re = re.compile("<.*-openobject-(\\d+)@(.*)>", re.UNICODE)
priorities = {
'1': '1 (Highest)',
'partner_id': adr[0].get('partner_id', False) and adr[0]['partner_id'][0] or False
}
+ 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:x[0].decode(x[1] or 'ascii', 'replace'), s))
+ s = decode_header(s)
+ return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), s))
def msg_new(self, msg):
message = self.msg_body_get(msg)
+ msg_subject = self._decode_header(msg['Subject'])
+ msg_from = self._decode_header(msg['From'])
+ msg_cc = self._decode_header(msg['Cc'] or '')
+
data = {
- 'name': self._decode_header(msg['Subject']),
- 'email_from': self._decode_header(msg['From']),
- 'email_cc': self._decode_header(msg['Cc'] or ''),
+ 'name': msg_subject,
+ 'email_from': msg_from,
+ 'email_cc': msg_cc,
'user_id': False,
'description': message['body'],
}
- data.update(self.partner_get(self._decode_header(msg['From'])))
+ data.update(self.partner_get(msg_from))
try:
id = self.rpc(self.model, 'create', data)
- self.rpc(self.model, 'history', [id], 'Receive', True, msg['From'], message['body'])
+ self.rpc(self.model, 'history', [id], 'Receive', True, False, message['body'], msg['From'])
#self.rpc(self.model, 'case_open', [id])
except Exception, e:
if getattr(e, 'faultCode', '') and 'AccessError' in e.faultCode:
if part.get_content_maintype()=='text':
buf = part.get_payload(decode=True)
if buf:
- txt = buf.decode(part.get_charsets()[0] or 'ascii', 'replace')
+ 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':
self.rpc(self.model, act, [id])
self.rpc(self.model, 'write', [id], data)
- self.rpc(self.model, 'history', [id], 'Receive', True, details=body['body'], email_from=msg['From'])
+ self.rpc(self.model, 'history', [id], 'Receive', True, False, body['body'], msg['From'])
return id
def msg_send(self, msg, emails, priority=None):
# 'description':body,
#}
#self.rpc(self.model, 'write', [id], data)
- self.rpc(self.model, 'history', [id], 'Receive', True, details=message['body'], email_from=msg['From'])
+ self.rpc(self.model, 'history', [id], 'Receive', True, False, message['body'], msg['From'])
return id
def msg_test(self, msg, case_str):
if not case_str:
return (False, False)
+ res = self.rpc(self.model, 'search', [('id', '=', int(case_str))])
+ if not res:
+ return (False, False)
+
emails = self.rpc(self.model, 'emails_get', int(case_str))
return (int(case_str), emails)
if case_str:
case_str = case_str.group(1)
else:
- case_str = case_re.search(msg.get('Subject', ''))
+ case_str = case_re.search(msg.get('Subject', ''))
if case_str:
- case_str = case_str.group(1)
+ case_str = case_str.group(1)
(case_id, emails) = self.msg_test(msg, case_str)
if case_id:
if emails[0] and self.email_get(emails[0])==self.email_get(self._decode_header(msg['From'])):
}
def action_cancel(self, cr, uid, ids, context=None):
- """
- Closes Phonecall to Opportunity form
- @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 Phonecall to Opportunity's IDs
- @param context: A standard dictionary for contextual values
+ """ Closes Phonecall to Opportunity form
"""
return {'type':'ir.actions.act_window_close'}
def action_send(self, cr, uid, ids, context=None):
""" This sends an email to ALL the addresses of the selected partners.
- @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 Phonecall to Opportunity's IDs
- @param context: A standard dictionary for contextual values
"""
if not context:
context = {}
if case.user_id.signature:
body += '\n\n%s' % (case.user_id.signature)
-
- case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body)
+ 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)
+
flag = tools.email_send(
email_from,
emails,
data['subject'],
- case_pool.format_body(body),
+ body,
attach=attach,
reply_to=case.section_id.reply_to,
- openobject_id=str(case.id),
- )
+ openobject_id=str(case.id),
+ )
if flag:
if data['state'] == 'unchanged':
pass
# 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):
"""
This function gets default values
- @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 fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- @return : default values of fields.
"""
if not context:
context = {}
if 'email_to' in fields:
res.update({'email_to': case.email_from})
if 'email_from' in fields:
- res.update({'email_from': (case.user_id and case.user_id.address_id and \
+ res.update({'email_from': (case.section_id and case.section_id.reply_to) or \
+ (case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from',False)})
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
def get_reply_defaults(self, cr, uid, fields, context=None):
"""
This function gets default values for reply mail
- @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 fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- @return : default values of fields.
"""
hist_obj = self.pool.get('crm.case.history')
res_ids = context and context.get('active_ids', []) or []
model = hist.log_id.model_id.model
model_pool = self.pool.get(model)
case = model_pool.browse(cr, uid, hist.log_id.res_id)
- if 'email_to' in fields and hist.email_to:
- res.update({'email_to': hist.email_to})
+ if 'email_to' in fields:
+ res.update({'email_to': case.email_from or hist.email_from or False})
if 'email_from' in fields:
- res.update({'email_from': (case.user_id and case.user_id.address_id and \
- case.user_id.address_id.email) or tools.config.get('email_from',False)})
+ res.update({'email_from': (case.section_id and case.section_id.reply_to) or \
+ (case.user_id and case.user_id.address_id and \
+ case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from',False)})
if 'text' in fields:
header = '-------- Original Message --------'
- sender = 'From: %s' %(hist.email_from or tools.config.get('email_from',False))
- to = 'To: %s' % (hist.email_to)
- sentdate = 'Sent: %s' % (hist.date)
+ sender = 'From: %s' %(hist.email_from or '')
+ to = 'To: %s' % (hist.email_to or '')
+ sentdate = 'Date: %s' % (hist.date)
desc = '\n%s'%(hist.description)
original = [header, sender, to, sentdate, desc]
original = '\n'.join(original)
- res.update({'text': '\n\n%s'%(original)})
+ res['text']=original
if 'subject' in fields:
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
- #if 'state' in fields:
- # res.update({'state': 'pending'})
+ if 'state' in fields:
+ res['state']='pending'
return res
def view_init(self, cr, uid, fields_list, context=None):
<!-- Send New Mail view -->
- <record model="ir.ui.view" id="crm_send_new_mail_view">
- <field name="name">crm.new.send.mail.form</field>
+ <record model="ir.ui.view" id="crm_send_mail_view">
+ <field name="name">crm.send.mail.form</field>
<field name="model">crm.send.mail</field>
<field name="type">form</field>
<field name="arch" type="xml">
- <form string="Send New Mail" col="2">
+ <form string="Send Mail" col="2">
<field name="email_from" />
<field name="email_to" />
<field name="email_cc" />
<!-- Send New Mail action -->
<record model="ir.actions.act_window" id="action_crm_send_mail">
- <field name="name">Send New Mail</field>
+ <field name="name">Send Mail</field>
<field name="res_model">crm.send.mail</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
- <field name="view_id" ref="crm_send_new_mail_view"/>
+ <field name="view_id" ref="crm_send_mail_view"/>
<field name="target">new</field>
- </record>
-
-
- <!-- Reply to Mail view -->
-
- <record model="ir.ui.view" id="crm_reply_mail_view">
- <field name="name">crm.mail.reply.form</field>
- <field name="model">crm.send.mail</field>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <form string="Reply to last Mail" col="2">
- <field name="email_from" />
- <field name="email_to" />
- <field name="email_cc" />
- <field name="subject" />
- <field name="doc1" />
- <field name="doc2" />
- <field name="doc3" />
- <separator string="" colspan="4"/>
- <field name="text" nolabel="1" colspan="4"/>
- <separator string=" " colspan="4"/>
- <group colspan="4" col="3" >
- <label string=" " />
- <button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
- <button name="action_send" type="object" string="_Send Reply" icon="gtk-go-forward" />
- </group>
- </form>
- </field>
- </record>
-
-<!-- Reply to Mail action -->
-
- <record model="ir.actions.act_window" id="action_crm_reply_mail">
- <field name="name">Reply to last Mail</field>
- <field name="res_model">crm.send.mail</field>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- <field name="view_id" ref="crm_reply_mail_view"/>
- <field name="target">new</field>
- </record>
-
+ </record>
</data>
</openerp>
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(crm.action_crm_reply_mail)d"
+ name="%(crm.action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'hr.applicant'}"
icon="gtk-undo" type="action" />
</form>
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2008-11-01 16:03+0000\n"
-"Last-Translator: Sergei Kostigoff <sergei.kostigoff@gmail.com>\n"
+"PO-Revision-Date: 2010-03-30 10:33+0000\n"
+"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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:05+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
#. module: idea
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: idea
#: selection:idea.idea,my_vote:0
#. module: idea
#: model:ir.module.module,shortdesc:idea.module_meta_information
msgid "Idea Manager"
-msgstr ""
+msgstr "Менеджер идеи"
#. module: idea
#: model:ir.ui.menu,name:idea.menu_idea_vote_stat
"managers can obtain an easy view on best ideas from all the users. Once "
"installed, check the menu 'Ideas' in the 'Tools' main menu."
msgstr ""
+"Этот модуль позволяет вашему пользователю легко и эффективно участвовать в "
+"инновациях бизнеса. Он позволяет каждому выразить идеи о различных вопросах. "
+"После этого, другие пользователи могут прокомментировать эти идеи и провести "
+"голосование за идеи. Каждая идея как счет основанный на различных "
+"голосованиях. Менеджеры могут получить легкий взгляд на самые лучшие идеии "
+"от всех пользователей. Как только установлено, проверите меню «идеи» в "
+"главном меню «Инструменты»."
#. module: idea
#: field:idea.comment,create_date:0
#. module: idea
#: model:ir.model,name:idea.model_idea_idea
msgid "idea.idea"
-msgstr ""
+msgstr "идеи.идеи"
#. module: idea
#: model:ir.actions.act_window,name:idea.action_idea_idea_draft_my
#: view:idea.idea:0
#: view:idea.vote.stat:0
msgid "vote_stat of ideas"
-msgstr ""
+msgstr "Статистика голосования"
#. module: idea
#: view:idea.comment:0
}
return res
- def _decode_header(self, s):
+ 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:x[0].decode(x[1] or 'ascii', 'replace'), 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)
if part.get_content_maintype()=='text':
buf = part.get_payload(decode=True)
if buf:
- txt = buf.decode(part.get_charsets()[0] or 'ascii', 'replace')
+ 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':
del msg['Subject']
msg['Subject'] = '[%s] %s' %(str(res_id), subject)
- em = [user_email, from_email] + (cc_email or '').split(',')
+ 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)
+ 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'):
"Project-Id-Version: OpenERP Server 5.0.1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-01-11 20:49+0000\n"
+"PO-Revision-Date: 2010-03-30 14:06+0000\n"
"Last-Translator: TeMPO <info@tempo-consulting.fr>\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:54+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr "Production sur stock"
+msgstr "Sur stock"
#. module: mrp
#: field:mrp.workcenter,name:0
#. module: mrp
#: model:ir.model,name:mrp.model_stock_warehouse_orderpoint
msgid "Orderpoint minimum rule"
-msgstr "Règle de point de commande minimum"
+msgstr "Règle de stock minimum"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_servicemts0
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-09-08 15:56+0000\n"
-"Last-Translator: Sergei Kostigoff <sergei.kostigoff@gmail.com>\n"
+"PO-Revision-Date: 2010-03-30 10:42+0000\n"
+"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.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 03:55+0000\n"
+"X-Launchpad-Export-Date: 2010-03-31 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
msgid "Moves Created"
-msgstr ""
+msgstr "Перемещение создано"
#. module: mrp
#: rml:mrp.production.order:0
msgid "No. Of Cycles"
-msgstr ""
+msgstr "№ цикла"
#. module: mrp
#: help:mrp.procurement.compute.all,init,automatic:0
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
msgid "Manufacturing Resource Planning"
-msgstr ""
+msgstr "Планирование материальных ресурсов"
#. module: mrp
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
-msgstr ""
+msgstr "Недопустимое имя модели в определении действия"
#. module: mrp
#: field:mrp.bom.revision,indice:0
msgid "Revision"
-msgstr ""
+msgstr "Ревизия"
#. module: mrp
#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2
#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2
msgid "Compute Stock Minimum Rules Only"
-msgstr ""
+msgstr "Правила вычисления минимального запаса"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action5
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5
msgid "Exceptions Procurements"
-msgstr ""
+msgstr "Исключения поставок"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Workcenters"
-msgstr ""
+msgstr "Используемые мощности маршрута"
#. module: mrp
#: help:mrp.property,composition:0
#: model:ir.actions.act_window,name:mrp.mrp_routing_action
#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action
msgid "Routings"
-msgstr ""
+msgstr "Маршруты"
#. module: mrp
#: field:mrp.production,picking_id:0
#. module: mrp
#: model:process.node,name:mrp.process_node_stock0
msgid "Stockable Stock"
-msgstr ""
+msgstr "Склад для складирования"
#. module: mrp
#: field:mrp.procurement,origin:0
#. module: mrp
#: view:mrp.production:0
msgid "Finished Products"
-msgstr ""
+msgstr "Конечный продукт"
#. module: mrp
#: wizard_field:mrp.procurement.compute.all,init,automatic:0
#. module: mrp
#: selection:mrp.bom,method:0
msgid "Set / Pack"
-msgstr ""
+msgstr "Установить / Упаковать"
#. module: mrp
#: constraint:ir.ui.view:0
#. module: mrp
#: view:res.company:0
msgid "MRP & Logistic Scheduler"
-msgstr ""
+msgstr "ПМР и Логистическое планирование"
#. module: mrp
#: help:mrp.workcenter,capacity_per_cycle:0
@return: True
- """
-
+ """
result = {}
for bom in self.browse(cr, uid, ids, context=context):
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
sids = self.pool.get('mrp.bom').search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
if sids:
bom2 = self.pool.get('mrp.bom').browse(cr, uid, sids[0], context=context)
- result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
- print "name",name
- print "arg",arg
- print "result",result
+ result[bom.id] += map(lambda x: x.id, bom2.bom_lines)
return result
def _compute_type(self, cr, uid, ids, field_name, arg, context):
res = dict(map(lambda x: (x,''), ids))
'update_xml': [
'project_issue_wizard.xml',
'project_issue_view.xml',
- 'project_issue_menu.xml',
- 'project_feature_menu.xml',
+# 'project_issue_menu.xml',
+# 'project_feature_menu.xml',
'report/project_issue_report_view.xml',
'security/project_issue_security.xml',
'security/ir.model.access.csv',
<field name="description" colspan="4" nolabel="1"/>
<button colspan="4"
string="Reply to Last Email"
- name="%(crm.action_crm_reply_mail)d"
+ name="%(crm.action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'project.issue'}"
icon="gtk-undo" type="action" />
</form>
<field name="invoiced_rate" widget="progressbar"/>
<field name="amount_untaxed" sum="Total Untaxed amount"/>
<field name="amount_total" sum="Total amount"/>
- <field name="user_id"/>
<field name="state"/>
</tree>
</field>
"wizard/stock_inventory_set_stock_zero_view.xml",
"wizard/stock_fill_inventory_view.xml",
"wizard/stock_invoice_onshipping_view.xml",
+ "wizard/stock_inventory_merge_view.xml",
"wizard/stock_location_product_view.xml",
"wizard/stock_inventory_line_split_view.xml",
"wizard/stock_change_standard_price_view.xml",
-
+ "wizard/stock_picking_make_view.xml",
"wizard/stock_traceability_view.xml",
"stock_workflow.xml",
"stock_incoterms.xml",
<field name="min_date" select="1"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
- <button name="%(make_picking)d"
+ <button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
<field name="min_date" select="1"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
- <button name="%(make_picking)d"
+ <button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
<field name="backorder_id" select="2" readonly="1"/>
<field name="origin" select="2" readonly="1"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
- <button name="%(make_picking)d"
+ <button name="%(act_stock_make_picking_wizard)d"
states="assigned"
string="Make Picking"
type="action"
<field name="invoice_state" select="2" string="Invoice Control"/>
<field name="type"/>
<field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/>
- <button name="%(make_picking)d"
+ <button name="%(act_stock_make_picking_wizard)d"
states="confirmed,assigned"
string="Make Picking"
type="action"
model="stock.picking"
multi="True"
name="stock.move.split"
- string="Split move line"/>
-
+ string="Split move line"/>
- <wizard
- id="make_picking"
- model="stock.picking"
- menu="False"
- keyword="client_action_multi"
- name="stock.picking.make"
- string="Make Picking"/>
+
<wizard
id="return_picking"
name="stock.return.picking"
string="Return picking"/>
- <wizard
- id="split_inventory_lots"
- model="stock.inventory.line"
- multi="True"
- name="stock.inventory.line.split"
- string="Split inventory lines"/>
-
- <!--wizard
- string="Merge inventories"
- model="stock.inventory"
- name="inventory.merge"
- keyword="client_action_multi"
- multi="True"
- id="wizard_merge_inventory"/-->
-
+ <wizard
+ id="split_inventory_lots"
+ model="stock.inventory.line"
+ multi="True"
+ name="stock.inventory.line.split"
+ string="Split inventory lines"/>
</data>
</openerp>
import stock_move
import stock_partial_picking
import stock_partial_move
-import wizard_picking_make
+import stock_picking_make
import wizard_replacement
import wizard_return
import wizard_split_lot_line
import wizard_ups
-import inventory_merge
+import stock_inventory_merge
import stock_inventory_set_stock_zero
import stock_fill_inventory
import stock_inventory_line_split
import stock_invoice_onshipping
import stock_location_product
import stock_change_standard_price
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
}
def do_merge(self, cr, uid, ids, context):
-
+ """
+ To merge selected Inventories.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+
+ """
invent_obj = self.pool.get('stock.inventory')
invent_line_obj = self.pool.get('stock.inventory.line')
raise osv.except_osv(_('Warning'),
_('Please select at least two inventories.'))
-
-
for inventory in invent_obj.browse(cr, uid, context['active_ids'], context=context):
- print"-------active-ids----",context['active_ids']
if inventory.state == "done":
raise osv.except_osv(_('Warning'),
_('Merging is only allowed on draft inventories.'))
--- /dev/null
+<?xml version="1.0"?>
+<openerp>
+ <data>
+
+ <record id="name_form" model="ir.ui.view">
+ <field name="name">stock.inventory.merge.form</field>
+ <field name="model">stock.inventory.merge</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Merge inventories">
+ <separator colspan="4" string="Merge inventories" />
+ <label string="Do you want to merge theses inventories ?"/>
+ <button special="cancel" string="Cancel" icon='gtk-cancel'/>
+ <button name="do_merge" string="Yes" type="object" icon="gtk-apply"/>
+ </form>
+ </field>
+ </record>
+ <act_window name="Merge inventories"
+ res_model="stock.inventory.merge"
+ src_model="stock.inventory"
+ view_mode="form"
+ target="new"
+ key2="client_action_multi"
+ id="action_view_stock_merge_inventories"/>
+
+ </data>
+</openerp>
##############################################################################
from osv import fields, osv
-from service import web_services
-from tools.misc import UpdateableStr, UpdateableDict
-from tools.translate import _
import netsvc
-import pooler
-import time
-import wizard
class stock_picking_make(osv.osv_memory):
- _name = "stock.picking.make"
- _description = "Make picking"
+ _name = 'stock.picking.make'
+ _description = "Make Picking"
+
_columns = {
- 'pickings': fields.many2many('stock.picking', 'Picking', required=True),
- }
-
-ARCH = '''<?xml version="1.0"?>
-<form string="Make picking">
- <field name="pickings" nolabel="1" colspan="4"
- width="600" height="300"/>
-</form>'''
-
-FIELDS = {
- 'pickings': {
- 'string': 'Picking',
- 'type': 'many2many',
- 'relation': 'stock.picking',
- 'readonly': True,
- },
-}
-
-def _get_value(obj, cursor, user, data, context):
- pool = pooler.get_pool(cursor.dbname)
- picking_obj = pool.get('stock.picking')
-
- picking_ids = picking_obj.search(cursor, user, [
- ('id', 'in', data['ids']),
- ('state', '<>', 'done'),
- ('state', '<>', 'cancel')], context=context)
- return {'pickings': picking_ids}
-
-def _make_packing(obj, cursor, user, data, context):
- wkf_service = netsvc.LocalService('workflow')
- pool = pooler.get_pool(cursor.dbname)
- picking_obj = pool.get('stock.picking')
- ids = data['form']['pickings'][0][2]
- print"-------ids--------",ids
- picking_obj.force_assign(cursor, user, ids)
- picking_obj.action_move(cursor, user, ids)
- for picking_id in ids:
- wkf_service.trg_validate(user, 'stock.picking', picking_id,
- 'button_done', cursor)
- return {}
-
-class stock_picking_make(wizard.interface):
- states = {
- 'init': {
- 'actions': [_get_value],
- 'result': {
- 'type': 'form',
- 'arch': ARCH,
- 'fields': FIELDS,
- 'state': [
- ('end', 'Cancel', 'gtk-cancel'),
- ('make', 'Ok', 'gtk-apply', True)
- ],
- },
- },
- 'make': {
- 'actions': [_make_packing],
- 'result': {
- 'type': 'state',
- 'state':'end',
- },
- },
+ 'picking_ids': fields.many2many('stock.picking', 'stock_picking_ids', 'parent_id', 'child_id', 'Pickings'),
}
-stock_picking_make('stock.picking.make')
+ def default_get(self, cursor, user, fields, context):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(stock_picking_make, self).default_get(cursor, user, fields, context=context)
+ record_ids = context and context.get('active_ids',False) or False
+ if record_ids:
+ picking_obj = self.pool.get('stock.picking')
+ picking_ids = picking_obj.search(cursor, user, [
+ ('id', 'in', record_ids),
+ ('state', '<>', 'done'),
+ ('state', '<>', 'cancel')], context=context)
+ res['picking_ids'] = picking_ids
+ return res
+
+ def make_packing(self, cursor, user, ids, context):
+ """
+ Make Picking.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ record_ids = context and context.get('active_ids',False) or False
+ wkf_service = netsvc.LocalService('workflow')
+ picking_obj = self.pool.get('stock.picking')
+ data = self.read(cursor, user, ids[0])
+ pick_ids = data['picking_ids']
+ picking_obj.force_assign(cursor, user, pick_ids)
+ picking_obj.action_move(cursor, user, pick_ids)
+ for picking_id in ids:
+ wkf_service.trg_validate(user, 'stock.picking', picking_id,
+ 'button_done', cursor)
+ return {}
+
+stock_picking_make()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="view_stock_make_picking_wizard" model="ir.ui.view">
+ <field name="name">Make Picking</field>
+ <field name="model">stock.picking.make</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Make Picking">
+ <field name="picking_ids" nolabel="1" colspan="4"
+ width="600" height="300"/>
+ <separator string="" colspan="4" />
+ <button icon='gtk-cancel' special="cancel"
+ string="Cancel" />
+ <button name="make_packing" string="Ok"
+ type="object" icon="gtk-apply" />
+ </form>
+ </field>
+ </record>
+
+ <record id="act_stock_make_picking_wizard" model="ir.actions.act_window">
+ <field name="name">Make Picking</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">stock.picking.make</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+ </data>
+</openerp>