[Merge]Merge lp:openobject-addons

bzr revid: vja@tinyerp.com-20130218111012-obj639csjp6auh8p
bzr revid: vja@tinyerp.com-20130219052437-eoivr1lizrapqmkd
This commit is contained in:
Vishmita
2013-02-19 10:54:37 +05:30
102 changed files with 3581 additions and 816 deletions
@@ -39,6 +39,8 @@ class account_financial_report(osv.osv):
_description = "Account Report"
def _get_level(self, cr, uid, ids, field_name, arg, context=None):
'''Returns a dictionary with key=the ID of a record and value = the level of this
record in the tree structure.'''
res = {}
for report in self.browse(cr, uid, ids, context=context):
level = 0
@@ -48,6 +50,8 @@ class account_financial_report(osv.osv):
return res
def _get_children_by_order(self, cr, uid, ids, context=None):
'''returns a dictionary with the key= the ID of a record and value = all its children,
computed recursively, and sorted by sequence. Ready for the printing'''
res = []
for id in ids:
res.append(id)
@@ -56,6 +60,12 @@ class account_financial_report(osv.osv):
return res
def _get_balance(self, cr, uid, ids, field_names, args, context=None):
'''returns a dictionary with key=the ID of a record and value=the balance amount
computed for this record. If the record is of type :
'accounts' : it's the sum of the linked accounts
'account_type' : it's the sum of leaf accoutns with such an account_type
'account_report' : it's the amount of the related report
'sum' : it's the sum of the children of this record (aka a 'view' record)'''
account_obj = self.pool.get('account.account')
res = {}
for report in self.browse(cr, uid, ids, context=context):
+23 -16
View File
@@ -23,7 +23,6 @@ import time
from lxml import etree
import openerp.addons.decimal_precision as dp
from openerp import netsvc
from openerp import pooler
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
@@ -80,11 +79,10 @@ class account_invoice(osv.osv):
def _reconciled(self, cr, uid, ids, name, args, context=None):
res = {}
wf_service = netsvc.LocalService("workflow")
for inv in self.browse(cr, uid, ids, context=context):
res[inv.id] = self.test_paid(cr, uid, [inv.id])
if not res[inv.id] and inv.state == 'paid':
wf_service.trg_validate(uid, 'account.invoice', inv.id, 'open_test', cr)
self.signal_open_test(cr, uid, [inv.id])
return res
def _get_reference_type(self, cr, uid, context=None):
@@ -308,7 +306,7 @@ class account_invoice(osv.osv):
'''
Find the partner for which the accounting entries will be created
'''
#if the chosen partner is not a company and has a parent company, use the parent for the journal entries
#if the chosen partner is not a company and has a parent company, use the parent for the journal entries
#because you want to invoice 'Agrolait, accounting department' but the journal items are for 'Agrolait'
part = inv.partner_id
if part.parent_id and not part.is_company:
@@ -419,7 +417,7 @@ class account_invoice(osv.osv):
try:
compose_form_id = ir_model_data.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')[1]
except ValueError:
compose_form_id = False
compose_form_id = False
ctx = dict(context)
ctx.update({
'default_model': 'account.invoice',
@@ -540,11 +538,11 @@ class account_invoice(osv.osv):
return result
def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice):
res = {}
res = {}
if not date_invoice:
date_invoice = time.strftime('%Y-%m-%d')
if not payment_term_id:
return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term
return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term
pterm_list = self.pool.get('account.payment.term').compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
if pterm_list:
pterm_list = [line[0] for line in pterm_list]
@@ -560,35 +558,41 @@ class account_invoice(osv.osv):
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id=False):
return {'value': {}}
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id):
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id, context=None):
val = {}
dom = {}
obj_journal = self.pool.get('account.journal')
account_obj = self.pool.get('account.account')
inv_line_obj = self.pool.get('account.invoice.line')
if company_id and part_id and type:
acc_id = False
partner_obj = self.pool.get('res.partner').browse(cr,uid,part_id)
partner_obj = self.pool.get('res.partner').browse(cr, uid, part_id, context=context)
if partner_obj.property_account_payable and partner_obj.property_account_receivable:
if partner_obj.property_account_payable.company_id.id != company_id and partner_obj.property_account_receivable.company_id.id != company_id:
property_obj = self.pool.get('ir.property')
rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('res_id','=','res.partner,'+str(part_id)+''),('company_id','=',company_id)])
if not rec_pro_id:
rec_pro_id = property_obj.search(cr, uid, [('name','=','property_account_receivable'),('company_id','=',company_id)])
if not pay_pro_id:
pay_pro_id = property_obj.search(cr, uid, [('name','=','property_account_payable'),('company_id','=',company_id)])
rec_line_data = property_obj.read(cr, uid, rec_pro_id, ['name','value_reference','res_id'])
pay_line_data = property_obj.read(cr, uid, pay_pro_id, ['name','value_reference','res_id'])
rec_res_id = rec_line_data and rec_line_data[0].get('value_reference',False) and int(rec_line_data[0]['value_reference'].split(',')[1]) or False
pay_res_id = pay_line_data and pay_line_data[0].get('value_reference',False) and int(pay_line_data[0]['value_reference'].split(',')[1]) or False
if not rec_res_id and not pay_res_id:
raise osv.except_osv(_('Configuration Error!'),
_('Cannot find a chart of account, you should create one from Settings\Configuration\Accounting menu.'))
raise self.pool.get('res.config.settings').get_config_warning(cr, _('Cannot find any chart of account: you can create a new one from %(menu:account.menu_account_config)s.'), context=context)
if type in ('out_invoice', 'out_refund'):
acc_id = rec_res_id
else:
acc_id = pay_res_id
val= {'account_id': acc_id}
if ids:
if company_id:
@@ -638,10 +642,8 @@ class account_invoice(osv.osv):
# go from canceled state to draft state
def action_cancel_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
wf_service = netsvc.LocalService("workflow")
for inv_id in ids:
wf_service.trg_delete(uid, 'account.invoice', inv_id, cr)
wf_service.trg_create(uid, 'account.invoice', inv_id, cr)
self.delete_workflow(cr, uid, ids)
self.create_workflow(cr, uid, ids)
return True
# Workflow stuff
@@ -1394,7 +1396,12 @@ class account_invoice_line(osv.osv):
# XXX this gets the default account for the user's company,
# it should get the default account for the invoice's company
# however, the invoice's company does not reach this point
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
if context is None:
context = {}
if context.get('type') in ('out_invoice','out_refund'):
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
else:
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category', context=context)
return prop and prop.id or False
_defaults = {
+2 -2
View File
@@ -257,7 +257,7 @@
<group>
<field name="move_id" groups="account.group_account_user"/>
<field name="period_id" domain="[('state', '=', 'draft'), ('company_id', '=', company_id)]" groups="account.group_account_user"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id,context)" widget="selection" groups="base.group_multi_company"/>
</group>
</group>
</page>
@@ -390,7 +390,7 @@
<page string="Other Info">
<group col="4">
<group>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id,context)" widget="selection" groups="base.group_multi_company"/>
<field name="user_id" groups="base.group_user"/>
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/>
<field name="period_id" domain="[('state', '=', 'draft'), ('company_id', '=', company_id)]"
+2 -2
View File
@@ -151,12 +151,12 @@ class account_config_settings(osv.osv_memory):
self.write(cr, uid, [id], vals, context)
return id
def onchange_company_id(self, cr, uid, ids, company_id):
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
# update related fields
values = {}
values['currency_id'] = False
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id)
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
+1 -1
View File
@@ -33,7 +33,7 @@
<label for="company_id" string="Select Company"/>
<field name="company_id"
widget="selection"
on_change="onchange_company_id(company_id)"
on_change="onchange_company_id(company_id, context)"
class="oe_inline"/>
</div>
<div>
@@ -23,7 +23,6 @@ import time
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import netsvc
class account_invoice_refund(osv.osv_memory):
@@ -90,7 +89,6 @@ class account_invoice_refund(osv.osv_memory):
account_m_line_obj = self.pool.get('account.move.line')
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
wf_service = netsvc.LocalService('workflow')
inv_tax_obj = self.pool.get('account.invoice.tax')
inv_line_obj = self.pool.get('account.invoice.line')
res_users_obj = self.pool.get('res.users')
@@ -161,8 +159,7 @@ class account_invoice_refund(osv.osv_memory):
to_reconcile_ids[line.account_id.id] = [line.id]
if type(line.reconcile_id) != osv.orm.browse_null:
reconcile_obj.unlink(cr, uid, line.reconcile_id.id)
wf_service.trg_validate(uid, 'account.invoice', \
refund.id, 'invoice_open', cr)
inv_obj.signal_invoice_open(cr, uid, [refund.id])
refund = inv_obj.browse(cr, uid, refund_id[0], context=context)
for tmpline in refund.move_id.line_id:
if tmpline.account_id.id == inv.account_id.id:
@@ -21,7 +21,6 @@
from openerp.osv import osv
from openerp.tools.translate import _
from openerp import netsvc
from openerp import pooler
class account_invoice_confirm(osv.osv_memory):
@@ -33,16 +32,16 @@ class account_invoice_confirm(osv.osv_memory):
_description = "Confirm the selected invoices"
def invoice_confirm(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService('workflow')
if context is None:
context = {}
pool_obj = pooler.get_pool(cr.dbname)
data_inv = pool_obj.get('account.invoice').read(cr, uid, context['active_ids'], ['state'], context=context)
account_invoice_obj = pool_obj.get('account.invoice')
data_inv = account_invoice_obj.read(cr, uid, context['active_ids'], ['state'], context=context)
for record in data_inv:
if record['state'] not in ('draft','proforma','proforma2'):
raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-Forma' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_open', cr)
account_invoice_obj.signal_invoice_open(cr, uid, [ record['id'] ])
return {'type': 'ir.actions.act_window_close'}
account_invoice_confirm()
@@ -59,14 +58,13 @@ class account_invoice_cancel(osv.osv_memory):
def invoice_cancel(self, cr, uid, ids, context=None):
if context is None:
context = {}
wf_service = netsvc.LocalService('workflow')
pool_obj = pooler.get_pool(cr.dbname)
data_inv = pool_obj.get('account.invoice').read(cr, uid, context['active_ids'], ['state'], context=context)
account_invoice_obj = pool_obj.get('account.invoice')
data_inv = account_invoice_obj.read(cr, uid, context['active_ids'], ['state'], context=context)
for record in data_inv:
if record['state'] in ('cancel','paid'):
raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' or 'Done' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_cancel', cr)
account_invoice_obj.signal_invoice_cancel(cr , uid, [record['id']])
return {'type': 'ir.actions.act_window_close'}
account_invoice_cancel()
+1 -2
View File
@@ -35,8 +35,7 @@ class account_state_open(osv.osv_memory):
data_inv = obj_invoice.browse(cr, uid, context['active_ids'][0], context=context)
if data_inv.reconciled:
raise osv.except_osv(_('Warning!'), _('Invoice is already reconciled.'))
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', context['active_ids'][0], 'open_test', cr)
obj_invoice.signal_open_test(cr, uid, context['active_ids'][0])
return {'type': 'ir.actions.act_window_close'}
account_state_open()
+40 -39
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2010-12-20 23:20+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2013-02-15 10:57+0000\n"
"Last-Translator: gobi <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: 2012-12-22 05:42+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -29,12 +29,12 @@ msgstr "Бүлэглэх..."
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "To Invoice"
msgstr ""
msgstr "Үнийн нэхэмжлэл"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Remaining"
msgstr ""
msgstr "Үлдэгдэл"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -71,12 +71,12 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "⇒ Invoice"
msgstr ""
msgstr "⇒ Нэхэмжлэл"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_invoiced:0
msgid "Invoiced Amount"
msgstr "Нэхэмжилсэн дүн"
msgstr "Нэхэмжлэлийн дүн"
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_invoiced_date:0
@@ -86,7 +86,7 @@ msgstr "Эцсийн өртөгийг нэхэмжилсэн огноо"
#. module: account_analytic_analysis
#: help:account.analytic.account,fix_price_to_invoice:0
msgid "Sum of quotations for this contract."
msgstr ""
msgstr "Энэ гэрээний ханшийн нийлбэр."
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_invoiced:0
@@ -120,7 +120,7 @@ msgstr "Аналитик данс"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Partner"
msgstr ""
msgstr "Харилцагч"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -149,12 +149,12 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "End Date"
msgstr "Дуусах огноо"
msgstr "Дуусан огноо"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Account Manager"
msgstr ""
msgstr "Дансны менежер"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_hours_to_invoice:0
@@ -164,12 +164,12 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Expected"
msgstr ""
msgstr "Тооцоолсон"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts not assigned"
msgstr ""
msgstr "Гэрээнүүд оноогдоогүй байна"
#. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0
@@ -205,6 +205,7 @@ msgstr "Бодит зөрүүний хэмжээ (%)"
#: help:account.analytic.account,remaining_hours:0
msgid "Computed using the formula: Maximum Time - Total Worked Time"
msgstr ""
"Тооцоололд ашиглагдсан томъёо: Хамгийн их хугацаа - Нийт ажилласан хугацаа"
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_quantity:0
@@ -218,7 +219,7 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Nothing to invoice, create"
msgstr ""
msgstr "Нэхэмжлэх, үүсгэх зүйлс алга"
#. module: account_analytic_analysis
#: model:res.groups,name:account_analytic_analysis.group_template_required
@@ -228,7 +229,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
msgid "Total Worked Time"
msgstr ""
msgstr "Нийт ажилласан хугацаа"
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin:0
@@ -238,7 +239,7 @@ msgstr "Бодит зөрүү"
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month
msgid "Hours summary by month"
msgstr "Hours summary by month"
msgstr "Сарын цагийн хураангуй"
#. module: account_analytic_analysis
#: help:account.analytic.account,real_margin_rate:0
@@ -248,12 +249,12 @@ msgstr "Томъёг ашиглан тооцоолох: (Бодит зөрүү/
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "or view"
msgstr ""
msgstr "эсвэл үзэх"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Customer Contracts"
msgstr ""
msgstr "Захиалагчийн гэрээнүүд"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -270,7 +271,7 @@ msgstr "Сар"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
msgid "Time & Materials to Invoice"
msgstr ""
msgstr "Хугацаа & Нэхэмжлэлийн материал"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all
@@ -281,12 +282,12 @@ msgstr "Гэрээнүүд"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Start Date"
msgstr ""
msgstr "Эхлэх огноо"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Invoiced"
msgstr ""
msgstr "Нэхэмжилсэн"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -305,7 +306,7 @@ msgstr "Захиалагчтай шинэчлэхээр хүлээж байга
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Timesheets"
msgstr ""
msgstr "Цагийн хуудас"
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_qtt_non_invoiced:0
@@ -329,7 +330,7 @@ msgstr "Тоо ширхэг хязгаараас давсан"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Status"
msgstr ""
msgstr "Төлөв"
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_theorical:0
@@ -350,7 +351,7 @@ msgstr "OpenERP-д гэрээ нь харилцагч бүхий шинжилг
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order
msgid "Sales Orders"
msgstr ""
msgstr "Борлуулалтын захиалгууд"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
@@ -437,12 +438,12 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,toinvoice_total:0
msgid "Total to Invoice"
msgstr ""
msgstr "Нийт нэхэмжлэл"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Sale Orders"
msgstr ""
msgstr "Борлуулалтын захиалга"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -452,7 +453,7 @@ msgstr "Нээх"
#. module: account_analytic_analysis
#: field:account.analytic.account,invoiced_total:0
msgid "Total Invoiced"
msgstr ""
msgstr "Нийт нэхэмжлэл"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_ca:0
@@ -468,7 +469,7 @@ msgstr "Сүүлийн нэхэмжлэлийн огноо"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Units Remaining"
msgstr ""
msgstr "Нэгжийн үлдэгдэл"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_hr_tree_invoiced_all
@@ -497,7 +498,7 @@ msgstr "Нэхэмжлэх"
#. module: account_analytic_analysis
#: field:account.analytic.account,total_cost:0
msgid "Total Costs"
msgstr "Нийт өртөг"
msgstr "Нийт зардал"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_total:0
@@ -526,7 +527,7 @@ msgstr "Онолын Хязгаар"
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_total:0
msgid "Total Remaining"
msgstr ""
msgstr "Нийт үлдэгдэл"
#. module: account_analytic_analysis
#: help:account.analytic.account,real_margin:0
@@ -536,12 +537,12 @@ msgstr "Томъёг ашиглан тооцоолох: Нэхэмжилсэн
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_est:0
msgid "Estimation of Hours to Invoice"
msgstr ""
msgstr "Нэхэмжлэх цагийн тооцоолол"
#. module: account_analytic_analysis
#: field:account.analytic.account,fix_price_invoices:0
msgid "Fixed Price"
msgstr ""
msgstr "Тогтмол үнэ"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_date:0
@@ -551,23 +552,23 @@ msgstr "Энэ данс дээр хйигдсэн сүүлийн ажлын ог
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_sale_config_settings
msgid "sale.config.settings"
msgstr ""
msgstr "sale.config.settings"
#. module: account_analytic_analysis
#: field:sale.config.settings,group_template_required:0
msgid "Mandatory use of templates."
msgstr ""
msgstr "Үлгэрүүдийн зайлшгүй хэрэглээ"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.template_of_contract_action
#: model:ir.ui.menu,name:account_analytic_analysis.menu_template_of_contract_action
msgid "Contract Template"
msgstr ""
msgstr "Гэрээний загвар"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Units Done"
msgstr ""
msgstr "Хийгдсэн Нэгжүүд"
#. module: account_analytic_analysis
#: help:account.analytic.account,total_cost:0
@@ -581,7 +582,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,est_total:0
msgid "Total Estimation"
msgstr ""
msgstr "Нийт таамаг тооцоо"
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_ca:0
@@ -617,7 +618,7 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Total"
msgstr ""
msgstr "Нийт"
#~ msgid ""
#~ "Number of hours that can be invoiced plus those that already have been "
+4 -1
View File
@@ -331,6 +331,9 @@ class account_asset_asset(osv.osv):
depreciation_obj = self.pool.get('account.asset.depreciation.line')
period = period_obj.browse(cr, uid, period_id, context=context)
depreciation_ids = depreciation_obj.search(cr, uid, [('asset_id', 'in', ids), ('depreciation_date', '<=', period.date_stop), ('depreciation_date', '>=', period.date_start), ('move_check', '=', False)], context=context)
if context is None:
context = {}
context.update({'depreciation_date':period.date_stop})
return depreciation_obj.create_move(cr, uid, depreciation_ids, context=context)
def create(self, cr, uid, vals, context=None):
@@ -388,7 +391,7 @@ class account_asset_depreciation_line(osv.osv):
created_move_ids = []
asset_ids = []
for line in self.browse(cr, uid, ids, context=context):
depreciation_date = time.strftime('%Y-%m-%d')
depreciation_date = context.get('depreciation_date') or time.strftime('%Y-%m-%d')
period_ids = period_obj.find(cr, uid, depreciation_date, context=context)
company_currency = line.asset_id.company_id.currency_id.id
current_currency = line.asset_id.currency_id.id
+36 -12
View File
@@ -238,7 +238,12 @@ class res_partner(osv.osv):
from report import account_followup_print
assert len(ids) == 1
if context is None:
context = {}
partner = self.browse(cr, uid, ids[0], context=context)
#copy the context to not change global context. Overwrite it because _() looks for the lang in local variable 'context'.
#Set the language to use = the partner language
context = dict(context, lang=partner.lang)
followup_table = ''
if partner.unreconciled_aml_ids:
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
@@ -251,13 +256,14 @@ class res_partner(osv.osv):
followup_table += '''
<table border="2" width=100%%>
<tr>
<td>Invoice date</td>
<td>Reference</td>
<td>Due date</td>
<td>Amount (%s)</td>
<td>Lit.</td>
<td>''' + _("Invoice Date") + '''</td>
<td>''' + _("Description") + '''</td>
<td>''' + _("Reference") + '''</td>
<td>''' + _("Due Date") + '''</td>
<td>''' + _("Amount") + " (%s)" % (currency.symbol) + '''</td>
<td>''' + _("Lit.") + '''</td>
</tr>
''' % (currency.symbol)
'''
total = 0
for aml in currency_dict['line']:
block = aml['blocked'] and 'X' or ' '
@@ -268,13 +274,28 @@ class res_partner(osv.osv):
if date <= current_date and aml['balance'] > 0:
strbegin = "<TD><B>"
strend = "</B></TD>"
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['name'] + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
total = rml_parse.formatLang(total, dp='Account', currency_obj=currency)
followup_table += '''<tr> </tr>
</table>
<center>Amount due: %s </center>''' % (total)
<center>''' + _("Amount due") + ''' : %s </center>''' % (total)
return followup_table
def write(self, cr, uid, ids, vals, context=None):
if vals.get("payment_responsible_id", False):
for part in self.browse(cr, uid, ids, context=context):
if part.payment_responsible_id <> vals["payment_responsible_id"]:
#Find partner_id of user put as responsible
responsible_partner_id = self.pool.get("res.users").browse(cr, uid, vals['payment_responsible_id'], context=context).partner_id.id
self.pool.get("mail.thread").message_post(cr, uid, 0,
body = _("You became responsible to do the next action for the payment follow-up of") + " <b><a href='#id=" + str(part.id) + "&view_type=form&model=res.partner'> " + part.name + " </a></b>",
type = 'comment',
subtype = "mail.mt_comment", context = context,
model = 'res.partner', res_id = part.id,
notified_partner_ids = [(6, 0, [responsible_partner_id])],
partner_ids = [(6, 0, [responsible_partner_id])])
return super(res_partner, self).write(cr, uid, ids, vals, context=context)
def action_done(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False}, context=context)
@@ -408,13 +429,16 @@ class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'payment_responsible_id':fields.many2one('res.users', ondelete='set null', string='Follow-up Responsible',
help="Optionally you can assign a user to this field, which will make him responsible for the action."),
'payment_note':fields.text('Customer Payment Promise', help="Payment Note"),
help="Optionally you can assign a user to this field, which will make him responsible for the action.",
track_visibility="onchange"),
'payment_note':fields.text('Customer Payment Promise', help="Payment Note", track_visibility="onchange"),
'payment_next_action':fields.text('Next Action',
help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. "),
help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. ",
track_visibility="onchange"),
'payment_next_action_date':fields.date('Next Action Date',
help="This is when the manual follow-up is needed. " \
"The date will be set to the current date when the partner gets a follow-up level that requires a manual action. Can be practical to set manually e.g. to see if he keeps his promises."),
"The date will be set to the current date when the partner gets a follow-up level that requires a manual action. "\
"Can be practical to set manually e.g. to see if he keeps his promises."),
'unreconciled_aml_ids':fields.one2many('account.move.line', 'partner_id', domain=['&', ('reconcile_id', '=', False), '&',
('account_id.active','=', True), '&', ('account_id.type', '=', 'receivable'), ('state', '!=', 'draft')]),
'latest_followup_date':fields.function(_get_latest, method=True, type='date', string="Latest Follow-up Date",
@@ -35,10 +35,10 @@
<filter string="Follow-ups To Do" domain="[('payment_next_action_date', '&lt;=', time.strftime('%%Y-%%m-%%d')), ('payment_amount_overdue', '>', 0.0)]" name="todo"/>
<separator/>
<filter string="No Responsible" domain="[('payment_responsible_id', '=', False)]"/>
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]"/>
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/>
</group>
<group expand="1" string="Group By...">
<filter string="Responsible" context="{'group_by':'payment_responsible_id'}"/>
<filter string="Follow-up Responsible" context="{'group_by':'payment_responsible_id'}"/>
</group>
</search>
</field>
@@ -132,6 +132,18 @@
<!-- Menus about followup of customers -->
<menuitem id="account_followup_s" action="action_customer_followup"
parent="menu_finance_followup" name="Do Manual Follow-Ups" sequence="3"/>
<record id="action_customer_my_followup" model="ir.actions.act_window">
<field name="name">My Follow-Ups</field>
<field name="view_id" ref="customer_followup_tree"/>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('payment_amount_due', '>', 0.0)]</field>
<field name="context">{'Followupfirst':True, 'search_default_todo': True, 'search_default_my': True} </field>
<field name="search_view_id" ref="customer_followup_search_view"/>
</record>
<menuitem id="base.menu_sales_followup" parent="base.menu_base_partner" name="Payment Follow-up" groups="account.group_account_invoice" sequence="2"/>
<menuitem id="menu_sale_followup" parent="base.menu_sales_followup" sequence="10"
action="action_customer_my_followup" groups="account.group_account_invoice"/>
</data>
</openerp>
@@ -44,8 +44,7 @@ class TestAccountFollowup(TransactionCase):
'quantity': 5,
'price_unit':200
})]})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', self.invoice_id, 'invoice_open', cr)
self.registry('account.invoice').signal_invoice_open(cr, uid, [self.invoice_id])
self.voucher = self.registry("account.voucher")
@@ -26,6 +26,8 @@ from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import SUPERUSER_ID
class account_followup_stat_by_partner(osv.osv):
_name = "account_followup.stat.by.partner"
_description = "Follow-up Statistics by Partner"
@@ -127,7 +129,7 @@ class account_followup_print(osv.osv_memory):
'email_body': fields.text('Email Body'),
'summary': fields.text('Summary', readonly=True),
'test_print': fields.boolean('Test Print',
help='Check if you want to print follow-ups without changing follow-ups level.'),
help='Check if you want to print follow-ups without changing follow-up level.'),
}
def _get_followup(self, cr, uid, context=None):
@@ -204,7 +206,7 @@ class account_followup_print(osv.osv_memory):
if not part.unreconciled_aml_ids:
partners_to_clear.append(part.id)
self.pool.get('res.partner').action_done(cr, uid, partners_to_clear, context=context)
return len(ids)
return len(partners_to_clear)
def do_process(self, cr, uid, ids, context=None):
if context is None:
@@ -313,6 +315,13 @@ class account_followup_print(osv.osv_memory):
if stat_line_id not in partner_list:
partner_list.append(stat_line_id)
to_update[str(id)]= {'level': fups[followup_line_id][1], 'partner_id': stat_line_id}
#Remove partners that are other companies in OpenERP
comp_obj = self.pool.get("res.company")
comp_ids = comp_obj.search(cr, SUPERUSER_ID, [], context=context)
for comp in comp_obj.browse(cr, SUPERUSER_ID, comp_ids, context=context):
company_partner_wiz_id = comp.partner_id.id * 10000 + company_id
if company_partner_wiz_id in partner_list:
partner_list.remove(company_partner_wiz_id)
return {'partner_ids': partner_list, 'to_update': to_update}
account_followup_print()
+2 -6
View File
@@ -23,7 +23,6 @@ import logging
import time
from openerp.osv import fields, osv
from openerp import netsvc
_logger = logging.getLogger(__name__)
@@ -120,9 +119,7 @@ class payment_order(osv.osv):
def set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_create(uid, 'payment.order', id, cr)
self.create_workflow(cr, uid, ids)
return True
def action_open(self, cr, uid, ids, *args):
@@ -135,9 +132,8 @@ class payment_order(osv.osv):
return True
def set_done(self, cr, uid, ids, *args):
wf_service = netsvc.LocalService("workflow")
self.write(cr, uid, ids, {'date_done': time.strftime('%Y-%m-%d')})
wf_service.trg_validate(uid, 'payment.order', ids[0], 'done', cr)
self.signal_done(cr, uid, [ids[0]])
return True
def copy(self, cr, uid, id, default=None, context=None):
+241
View File
@@ -0,0 +1,241 @@
# Arabic translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-18 11:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic <ar@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: 2013-02-19 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: account_test
#: view:accounting.assert.test:0
msgid ""
"Code should always set a variable named `result` with the result of your "
"test, that can be a list or\n"
"a dictionary. If `result` is an empty list, it means that the test was "
"succesful. Otherwise it will\n"
"try to translate and print what is inside `result`.\n"
"\n"
"If the result of your test is a dictionary, you can set a variable named "
"`column_order` to choose in\n"
"what order you want to print `result`'s content.\n"
"\n"
"Should you need them, you can also use the following variables into your "
"code:\n"
" * cr: cursor to the database\n"
" * uid: ID of the current user\n"
"\n"
"In any ways, the code must be legal python statements with correct "
"indentation (if needed).\n"
"\n"
"Example: \n"
" sql = '''SELECT id, name, ref, date\n"
" FROM account_move_line \n"
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
"= 'view')\n"
" '''\n"
" cr.execute(sql)\n"
" result = cr.dictfetchall()"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_02
msgid "Test 2: Opening a fiscal year"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05
msgid ""
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
"Payable and Receivable Accounts"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_03
msgid ""
"Check if movement lines are balanced and have the same date and period"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,name:0
msgid "Test Name"
msgstr ""
#. module: account_test
#: report:account.test.assert.print:0
msgid "Accouting tests on"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_01
msgid "Test 1: General balance"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06
msgid "Check that paid/reconciled invoices are not in 'Open' state"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05_2
msgid ""
"Check that reconciled account moves, that define Payable and Receivable "
"accounts, are belonging to reconciled invoices"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Tests"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,desc:0
msgid "Test Description"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Description"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06_1
msgid "Check that there's no move for any account with « View » account type"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_08
msgid "Test 9 : Accounts and partners on account moves"
msgstr ""
#. module: account_test
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
#: model:ir.ui.menu,name:account_test.menu_action_license
msgid "Accounting Tests"
msgstr ""
#. module: account_test
#: code:addons/account_test/report/account_test_report.py:74
#, python-format
msgid "The test was passed successfully"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,active:0
msgid "Active"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06
msgid "Test 6 : Invoices status"
msgstr ""
#. module: account_test
#: model:ir.model,name:account_test.model_accounting_assert_test
msgid "accounting.assert.test"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05
msgid ""
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,code_exec:0
msgid "Python code"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_07
msgid ""
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
"statement lines"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_07
msgid "Test 8 : Closing balance on bank statements"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_03
msgid "Test 3: Movement lines"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05_2
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Expression"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_04
msgid "Test 4: Totally reconciled mouvements"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_04
msgid "Check if the totally reconciled movements are balanced"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_02
msgid ""
"Check if the balance of the new opened fiscal year matches with last year's "
"balance"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Python Code"
msgstr ""
#. module: account_test
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create Accounting Test.\n"
" </p>\n"
" "
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_01
msgid "Check the balance: Debit sum = Credit sum"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_08
msgid "Check that general accounts and partners on account moves are active"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06_1
msgid "Test 7: « View  » account type"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Code Help"
msgstr ""
+17 -12
View File
@@ -22,7 +22,6 @@
import time
from lxml import etree
from openerp import netsvc
from openerp.osv import fields, osv
import openerp.addons.decimal_precision as dp
from openerp.tools.translate import _
@@ -50,13 +49,25 @@ class account_config_settings(osv.osv_memory):
'company_id', 'income_currency_exchange_account_id',
type='many2one',
relation='account.account',
string="Gain Exchange Rate Account"),
string="Gain Exchange Rate Account",
domain="[('type', '=', 'other')]"),
'expense_currency_exchange_account_id': fields.related(
'company_id', 'expense_currency_exchange_account_id',
type="many2one",
relation='account.account',
string="Loss Exchange Rate Account"),
string="Loss Exchange Rate Account",
domain="[('type', '=', 'other')]"),
}
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id, context=context)
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False,
'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False})
else:
res['value'].update({'income_currency_exchange_account_id': False,
'expense_currency_exchange_account_id': False})
return res
class account_voucher(osv.osv):
def _check_paid(self, cr, uid, ids, name, args, context=None):
@@ -820,10 +831,7 @@ class account_voucher(osv.osv):
return vals
def button_proforma_voucher(self, cr, uid, ids, context=None):
context = context or {}
wf_service = netsvc.LocalService("workflow")
for vid in ids:
wf_service.trg_validate(uid, 'account.voucher', vid, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, ids)
return {'type': 'ir.actions.act_window_close'}
def proforma_voucher(self, cr, uid, ids, context=None):
@@ -831,9 +839,7 @@ class account_voucher(osv.osv):
return True
def action_cancel_draft(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
for voucher_id in ids:
wf_service.trg_create(uid, 'account.voucher', voucher_id, cr)
self.create_workflow(cr, uid, ids)
self.write(cr, uid, ids, {'state':'draft'})
return True
@@ -1508,7 +1514,6 @@ class account_bank_statement(osv.osv):
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, next_number, context=None):
voucher_obj = self.pool.get('account.voucher')
wf_service = netsvc.LocalService("workflow")
move_line_obj = self.pool.get('account.move.line')
bank_st_line_obj = self.pool.get('account.bank.statement.line')
st_line = bank_st_line_obj.browse(cr, uid, st_line_id, context=context)
@@ -1516,7 +1521,7 @@ class account_bank_statement(osv.osv):
voucher_obj.write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
if st_line.voucher_id.state == 'cancel':
voucher_obj.action_cancel_draft(cr, uid, [st_line.voucher_id.id], context=context)
wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)
voucher_obj.signal_proforma_voucher(cr, uid, [st_line.voucher_id.id])
v = voucher_obj.browse(cr, uid, st_line.voucher_id.id, context=context)
bank_st_line_obj.write(cr, uid, [st_line_id], {
+2 -10
View File
@@ -159,8 +159,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case1'))
data = []
@@ -183,10 +181,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -257,8 +253,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case1'))
data = []
@@ -281,10 +275,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
@@ -131,8 +131,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2_suppl'))
data = []
@@ -162,10 +160,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -237,8 +233,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2_suppl'))
data = []
@@ -268,10 +262,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
@@ -182,8 +182,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -258,8 +257,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
@@ -163,8 +163,6 @@
I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2b'))
data = []
@@ -180,10 +178,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -247,8 +243,6 @@
and I fully reconcil the 2 previous invoices
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2b'))
data = []
@@ -271,10 +265,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
+2 -10
View File
@@ -118,8 +118,6 @@
I fill amounts 100 for the invoice of 150€ and 20 for the invoice of 80€
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case3'))
data = []
@@ -142,10 +140,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -209,8 +205,6 @@
I fill amounts 50 for the invoice of 150€ and 70 for the invoice of 80€
-
!python {model: account.voucher}: |
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case3'))
data = []
@@ -233,10 +227,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
@@ -144,8 +144,7 @@
!python {model: account.voucher}: |
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -61,8 +61,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
Finally i will Confirm the state of the invoice is paid
@@ -65,8 +65,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
I check that move lines are reconciled meaning voucher is paid
-
@@ -307,8 +307,9 @@
</group>
<group>
<field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
<field name="period_id"/>
<field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="e.g. 003/10"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
<field name="name" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="account_id"
+14 -61
View File
@@ -1,75 +1,28 @@
# Russian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-03 16:03+0000\n"
"PO-Revision-Date: 2012-12-07 08:15+0000\n"
"Last-Translator: Denis Karataev <dskarataev@gmail.com>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-13 09:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@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: 2012-12-08 04:59+0000\n"
"X-Generator: Launchpad (build 16341)\n"
"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
#. module: auth_crypt
#: field:res.users,password_crypt:0
msgid "Encrypted Password"
msgstr "Зашифрованный пароль"
#. module: auth_crypt
#: model:ir.model,name:auth_crypt.model_res_users
msgid "Users"
msgstr "Пользователи"
#~ msgid "res.users"
#~ msgstr "res.users"
#, python-format
#~ msgid "Error"
#~ msgstr "Error"
#, python-format
#~ msgid "Please specify the password !"
#~ msgstr "Необходимо указать пароль!"
#~ msgid "The chosen company is not in the allowed companies for this user"
#~ msgstr ""
#~ "Выбранная организация отсутствует в списке разрешённых для этого пользователя"
#~ msgid "You can not have two users with the same login !"
#~ msgstr "Не может быть двух пользователей с одинаковым именем пользователя!"
#~ msgid "Base - Password Encryption"
#~ msgstr "Основной - Шифрование паролей"
#~ msgid ""
#~ "This module replaces the cleartext password in the database with a password "
#~ "hash,\n"
#~ "preventing anyone from reading the original password.\n"
#~ "For your existing user base, the removal of the cleartext passwords occurs "
#~ "the first time\n"
#~ "a user logs into the database, after installing base_crypt.\n"
#~ "After installing this module it won't be possible to recover a forgotten "
#~ "password for your\n"
#~ "users, the only solution is for an admin to set a new password.\n"
#~ "\n"
#~ "Note: installing this module does not mean you can ignore basic security "
#~ "measures,\n"
#~ "as the password is still transmitted unencrypted on the network (by the "
#~ "client),\n"
#~ "unless you are using a secure protocol such as XML-RPCS.\n"
#~ " "
#~ msgstr ""
#~ "Этот модуль заменяет текстовые пароли в базе данных на их хэши,\n"
#~ "предотвращая хищение оригинальных паролей.\n"
#~ "Для существующей базы пользователей, удаление текстового пароля происходит "
#~ "при\n"
#~ "первом входе пользователя после установки base_crypt.\n"
#~ "После установки этого модуля станет невозможно восстановление пароля \n"
#~ "пользователя. Возможна будет только замена пароля.\n"
#~ "\n"
#~ "Прим.: установка этого модуля не избавляет от необходимости соблюдать\n"
#~ "базовые меры безопасности, поскольку пароли всё ещё передаются открытым\n"
#~ "текстом по сети, если не используется безопасный протокол вроде XML-RPCS.\n"
#~ " "
+9
View File
@@ -2,8 +2,10 @@ import functools
import logging
import simplejson
import werkzeug.utils
from werkzeug.exceptions import BadRequest
import openerp
from openerp import SUPERUSER_ID
import openerp.addons.web.http as oeweb
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
@@ -69,6 +71,13 @@ class OAuthController(oeweb.Controller):
# auth_signup is not installed
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,))
url = "/#action=login&oauth_error=1"
except openerp.exceptions.AccessDenied:
# oauth credentials not valid, user could be on a temporary session
_logger.info('OAuth2: access denied, redirect to main page in case a valid session exists, without setting cookies')
url = "/#action=login&oauth_error=3"
redirect = werkzeug.utils.redirect(url, 303)
redirect.autocorrect_location_header = False
return redirect
except Exception, e:
# signup error
_logger.exception("OAuth2: %s" % str(e))
+23
View File
@@ -0,0 +1,23 @@
# Russian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-13 09:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@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: 2013-02-14 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: auth_oauth_signup
#: model:ir.model,name:auth_oauth_signup.model_res_users
msgid "Users"
msgstr "Пользователи"
+2
View File
@@ -36,6 +36,8 @@ class res_users(osv.Model):
login = super(res_users, self)._auth_oauth_signin(cr, uid, provider, validation, params, context=context)
except openerp.exceptions.AccessDenied:
if context and context.get('no_user_creation'):
return None
state = simplejson.loads(params['state'])
token = state.get('t')
oauth_uid = validation['user_id']
+3 -1
View File
@@ -260,13 +260,15 @@ class res_users(osv.Model):
template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_signup', 'reset_password_email')
mail_obj = self.pool.get('mail.mail')
assert template._name == 'email.template'
for user in self.browse(cr, uid, ids, context):
if not user.email:
raise osv.except_osv(_("Cannot send email: user has no email address."), user.name)
mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, True, context=context)
mail_state = mail_obj.read(cr, uid, mail_id, ['state'], context=context)
if mail_state and mail_state['state'] == 'exception':
raise osv.except_osv(_("Cannot send email: no outgoing email server configured.\nYou can configure it under Settings/General Settings."), user.name)
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Cannot send email: no outgoing email server configured.\nYou can configure it under %(menu:base_setup.menu_general_configuration)s."), context)
else:
return {
'type': 'ir.actions.client',
+338
View File
@@ -0,0 +1,338 @@
# Czech translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-15 15:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech <cs@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: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: base_action_rule
#: selection:base.action.rule.lead.test,state:0
msgid "In Progress"
msgstr "Probíhá"
#. module: base_action_rule
#: view:base.action.rule:0
msgid ""
"- In this same \"Search\" view, select the menu \"Save Current Filter\", "
"enter the name (Ex: Create the 01/01/2012) and add the option \"Share with "
"all users\""
msgstr ""
"- V tomto zobrazení \"Vyhledat\" zvolte nabídku \"Uložit aktuální filtr\", "
"zadejte jméno (Např.: Vytvořeno 01.01.2012) a přidejte volbu \"sdílet se "
"všemi uživateli\""
#. module: base_action_rule
#: model:ir.model,name:base_action_rule.model_base_action_rule
msgid "Action Rules"
msgstr "Pravidla akcí"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Select a filter or a timer as condition."
msgstr "Zvolte jako podmínku filtr nebo časovač"
#. module: base_action_rule
#: field:base.action.rule.lead.test,user_id:0
msgid "Responsible"
msgstr "Zodpovídá"
#. module: base_action_rule
#: help:base.action.rule,server_action_ids:0
msgid "Examples: email reminders, call object service, etc."
msgstr "Například: připomenutí e-mailu, volání služby, apod."
#. module: base_action_rule
#: field:base.action.rule,act_followers:0
msgid "Add Followers"
msgstr "Přidejte na vědomí"
#. module: base_action_rule
#: field:base.action.rule,act_user_id:0
msgid "Set Responsible"
msgstr "Nastavte odpovědnou osobu"
#. module: base_action_rule
#: help:base.action.rule,trg_date_range:0
msgid ""
"Delay after the trigger date.You can put a negative number if you need a "
"delay before thetrigger date, like sending a reminder 15 minutes before a "
"meeting."
msgstr ""
"Zpoždění po datu spuštění. Můžete zadat záporné číslo, pokud potřebujete "
"prodlevu před datem spuštění, jako zaslání připomenutí 15 minut před "
"schůzkou."
#. module: base_action_rule
#: model:ir.model,name:base_action_rule.model_base_action_rule_lead_test
msgid "base.action.rule.lead.test"
msgstr "base.action.rule.lead.test"
#. module: base_action_rule
#: selection:base.action.rule.lead.test,state:0
msgid "Closed"
msgstr "Uzavřeno"
#. module: base_action_rule
#: selection:base.action.rule.lead.test,state:0
msgid "New"
msgstr "Nové"
#. module: base_action_rule
#: field:base.action.rule,trg_date_range:0
msgid "Delay after trigger date"
msgstr "Po datu spuštění"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions"
msgstr "Podmínky"
#. module: base_action_rule
#: selection:base.action.rule.lead.test,state:0
msgid "Pending"
msgstr "Čekající"
#. module: base_action_rule
#: field:base.action.rule.lead.test,state:0
msgid "Status"
msgstr "Stav"
#. module: base_action_rule
#: field:base.action.rule,filter_pre_id:0
msgid "Before Update Filter"
msgstr "Filtr před aktualizací"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Action Rule"
msgstr "Pravidlo akce"
#. module: base_action_rule
#: help:base.action.rule,filter_id:0
msgid ""
"If present, this condition must be satisfied after the update of the record."
msgstr "Existuje-li, musí být tato podmínka po aktualizaci záznamu splněna."
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Fields to Change"
msgstr "Pole, která je možno měnit"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "The filter must therefore be available in this page."
msgstr "Filtr musí být na této straně k dispozici."
#. module: base_action_rule
#: field:base.action.rule,filter_id:0
msgid "After Update Filter"
msgstr "Filtr po aktualizaci"
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Hours"
msgstr "hodin"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "To create a new filter:"
msgstr "Nový filtr vytvoříte:"
#. module: base_action_rule
#: field:base.action.rule,active:0
#: field:base.action.rule.lead.test,active:0
msgid "Active"
msgstr "Aktivní"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Delay After Trigger Date"
msgstr "Zpoždění po datu spuštění"
#. module: base_action_rule
#: view:base.action.rule:0
msgid ""
"An action rule is checked when you create or modify the \"Related Document "
"Model\". The precondition filter is checked right before the modification "
"while the postcondition filter is checked after the modification. A "
"precondition filter will therefore not work during a creation."
msgstr ""
"Pravidlo akce je ověřováno při vytváření nebo úpravě \"souvisejícího modelu "
"dokumentu\". Platnost filtru s podmínkou před je ověřována před úpravou, "
"zatímco platnost filtru s podmínkou po je kontrolována po úpravě. Filtr s "
"podmínkou před nebude tedy pracovat při vytváření."
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Filter Condition"
msgstr "Podmínka filtru"
#. module: base_action_rule
#: view:base.action.rule:0
msgid ""
"- Go to your \"Related Document Model\" page and set the filter parameters "
"in the \"Search\" view (Example of filter based on Leads/Opportunities: "
"Creation Date \"is equal to\" 01/01/2012)"
msgstr ""
"- Přejděte na stránku \"Přiřazený model dokumentu\" a nastavte parametry "
"filtru v zobrazení \"Hledat\" (Příklad filtru na základě Zájemci / "
"Příležitosti: Datum vytvoření \"je\" 01.01.2012)"
#. module: base_action_rule
#: field:base.action.rule,name:0
msgid "Rule Name"
msgstr "Název pravidla"
#. module: base_action_rule
#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
msgid "Automated Actions"
msgstr "Automatické akce"
#. module: base_action_rule
#: help:base.action.rule,sequence:0
msgid "Gives the sequence order when displaying a list of rules."
msgstr "Udává pořadí příkazů při zobrazení seznamu pravidel."
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Months"
msgstr "měsíců"
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Days"
msgstr "dnů"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Timer"
msgstr "Časovač"
#. module: base_action_rule
#: field:base.action.rule,trg_date_range_type:0
msgid "Delay type"
msgstr "Typ zpoždění"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Server actions to run"
msgstr "Akce serveru ke spuštění"
#. module: base_action_rule
#: help:base.action.rule,active:0
msgid "When unchecked, the rule is hidden and will not be executed."
msgstr "Pokud neoznačíte, pravidlo nebude vidět neprovede se."
#. module: base_action_rule
#: selection:base.action.rule.lead.test,state:0
msgid "Cancelled"
msgstr "Zrušeno"
#. module: base_action_rule
#: field:base.action.rule,model:0
msgid "Model"
msgstr "Model"
#. module: base_action_rule
#: field:base.action.rule,last_run:0
msgid "Last Run"
msgstr "Naposledy spuštěno"
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Minutes"
msgstr "minut"
#. module: base_action_rule
#: field:base.action.rule,model_id:0
msgid "Related Document Model"
msgstr "Související model dokumentu"
#. module: base_action_rule
#: help:base.action.rule,filter_pre_id:0
msgid ""
"If present, this condition must be satisfied before the update of the record."
msgstr "Existuje-li, musí být podmínka spolněna po aktualizaci záznamu."
#. module: base_action_rule
#: field:base.action.rule,sequence:0
msgid "Sequence"
msgstr "Pořadí"
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Actions"
msgstr "Akce"
#. module: base_action_rule
#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to setup a new automated action rule. \n"
" </p><p>\n"
" Use automated actions to automatically trigger actions for\n"
" various screens. Example: a lead created by a specific user "
"may\n"
" be automatically set to a specific sales team, or an\n"
" opportunity which still has status pending after 14 days "
"might\n"
" trigger an automatic reminder email.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Klepni pro vytvoření nového automatického pravidla akce. \n"
" </p><p>\n"
" Automatické akce používejte pro různé automaticky spouštěné\n"
" akce. Například: a zájemce vytvořený konkrétním uživatelem "
"může\n"
" být automaticky přiřazen do určité obchodní skupiny, nebo\n"
" příležitost, která je 14 dnů ve stavu \"čekající\" může "
"odeslat\n"
" upozorňující e-mail.\n"
" </p>\n"
" "
#. module: base_action_rule
#: field:base.action.rule,create_date:0
msgid "Create Date"
msgstr "Datum vytvoření"
#. module: base_action_rule
#: field:base.action.rule.lead.test,date_action_last:0
msgid "Last Action"
msgstr "Poslední akce"
#. module: base_action_rule
#: field:base.action.rule.lead.test,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: base_action_rule
#: field:base.action.rule,trg_date_id:0
msgid "Trigger Date"
msgstr "Datum spuštění"
#. module: base_action_rule
#: view:base.action.rule:0
#: field:base.action.rule,server_action_ids:0
msgid "Server Actions"
msgstr "Akce serveru"
#. module: base_action_rule
#: field:base.action.rule.lead.test,name:0
msgid "Subject"
msgstr "Předmět"
+4 -3
View File
@@ -234,11 +234,12 @@
<field name="arch" type="xml">
<search string="Search Meetings">
<field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<field name="partner_ids"/>
<field name="categ_ids"/>
<field name="user_id"/>
<separator/>
<filter string="My Meetings" help="My Meetings" domain="[('user_id','=',uid)]"/>
<field name="user_id"/>
<field name="partner_ids"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
</search>
</field>
</record>
+13 -4
View File
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-11-27 23:56+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-15 16:22+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: Hungarian <hu@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: 2012-12-22 06:07+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: contacts
#: model:ir.actions.act_window,help:contacts.action_contacts
@@ -29,6 +29,15 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Kattintson új kapcsolat hozzáadásához a címjegyzékhez.\n"
" </p><p>\n"
" OpenERP segít az összes tevékenység nyomon követésében ami \n"
" összefüggésben áll a vevőkkel; megbeszélésekkel, üzleti "
"lehetőségek történetével,\n"
" dokumentumokkal stb.\n"
" </p>\n"
" "
#. module: contacts
#: model:ir.actions.act_window,name:contacts.action_contacts
+9 -4
View File
@@ -567,7 +567,8 @@ class crm_lead(base_stage, format_address, osv.osv):
for opportunity in opportunities:
subject.append(opportunity.name)
title = "%s : %s" % (opportunity.type == 'opportunity' and _('Merged opportunity') or _('Merged lead'), opportunity.name)
details.append(self._mail_body(cr, uid, opportunity, CRM_LEAD_FIELDS_TO_MERGE, title=title, context=context))
fields = list(CRM_LEAD_FIELDS_TO_MERGE)
details.append(self._mail_body(cr, uid, opportunity, fields, title=title, context=context))
# Chatter message's subject
subject = subject[0] + ": " + ", ".join(subject[1:])
@@ -627,7 +628,10 @@ class crm_lead(base_stage, format_address, osv.osv):
opportunities = self.browse(cr, uid, ids, context=context)
sequenced_opps = []
for opportunity in opportunities:
sequenced_opps.append((opportunity.stage_id and opportunity.stage_id.state != 'cancel' and opportunity.stage_id.sequence or 0, opportunity))
if opportunity.stage_id and opportunity.stage_id.state != 'cancel':
sequenced_opps.append((opportunity.stage_id.sequence, opportunity))
else:
sequenced_opps.append((-1, opportunity))
sequenced_opps.sort(key=lambda tup: tup[0], reverse=True)
opportunities = [opportunity for sequence, opportunity in sequenced_opps]
ids = [opportunity.id for opportunity in opportunities]
@@ -636,7 +640,8 @@ class crm_lead(base_stage, format_address, osv.osv):
tail_opportunities = opportunities_rest
merged_data = self._merge_data(cr, uid, ids, highest, CRM_LEAD_FIELDS_TO_MERGE, context=context)
fields = list(CRM_LEAD_FIELDS_TO_MERGE)
merged_data = self._merge_data(cr, uid, ids, highest, fields, context=context)
# Merge messages and attachements into the first opportunity
self._merge_opportunity_history(cr, uid, highest.id, tail_opportunities, context=context)
@@ -651,7 +656,7 @@ class crm_lead(base_stage, format_address, osv.osv):
section_stages = self.pool.get('crm.case.section').read(cr, uid, merged_data['section_id'], ['stage_ids'], context=context)
if merged_data.get('stage_id') not in section_stages['stage_ids']:
stages_sequences = self.pool.get('crm.case.stage').search(cr, uid, [('id','in',section_stages['stage_ids'])], order='sequence', limit=1, context=context)
merged_data['stage_id'] = stages_sequences[0]
merged_data['stage_id'] = stages_sequences and stages_sequences[0] or False
# Write merged data into first opportunity
self.write(cr, uid, [highest.id], merged_data, context=context)
# Delete tail opportunities
+1
View File
@@ -327,6 +327,7 @@
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike',self)]"/>
<field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
<field name="user_id"/>
<field name="partner_id"/>
<field name="create_date"/>
<field name="country_id" context="{'invisible_country': False}"/>
<separator/>
+2 -2
View File
@@ -58,11 +58,11 @@ class crm_lead2opportunity_partner(osv.osv_memory):
if partner_id:
# Search for opportunities that have the same partner and that arent done or cancelled
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id)])
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
if email:
ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0])])
ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0]), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
@@ -21,7 +21,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
@@ -67,7 +67,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
@@ -18,7 +18,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
@@ -62,5 +62,66 @@
</field>
</record>
<record id="view_crm_lead_geo_assign_form" model="ir.ui.view">
<field name="name">crm.lead.lead.geo_assign.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
<field name="arch" type="xml">
<data>
<xpath expr="//notebook/page[@string='Extra Info']" position="after">
<page string="Assignation">
<group name="partner_assign_group">
<group string="Partner Assignation">
<field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','&lt;&gt;',False)]"/>
<label for="date_assign"/>
<div>
<field name="date_assign"/>
<button string="Forward"
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
name="%(crm_lead_forward_to_partner_act)d"
icon="terp-mail-forward" type="action"
context="{'default_composition_mode': 'forward', 'default_partner_ids': [partner_assigned_id]}"/>
</div>
</group>
<group string="Geo Assignation">
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<span/>
<button string="Geo Assign" name="action_assign_partner" type="object" colspan="1"
icon="gtk-apply"/>
</group>
</group>
</page>
</xpath>
</data>
</field>
</record>
<record id="view_crm_lead_geo_assign_tree" model="ir.ui.view">
<field name="name">crm.lead.lead.geo_assign.tree.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_tree_view_leads"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="partner_assigned_id"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="crm_lead_partner_filter">
<field name="name">crm.lead.partner.filter.assigned</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_leads_filter"/>
<field name="arch" type="xml">
<filter string="Team" position="after">
<filter string="Assigned Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
</filter>
<field name="partner_id" position="after">
<field name="partner_assigned_id"/>
</field>
</field>
</record>
</data>
</openerp>
+6 -1
View File
@@ -1,4 +1,5 @@
import simplejson
import urllib
import openerp.addons.web.http as openerpweb
import openerp.addons.web.controllers.main as webmain
@@ -14,11 +15,15 @@ class EDI(openerpweb.Controller):
modules_json = simplejson.dumps(modules)
js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in webmain.manifest_list(req, modules_str, 'js'))
css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in webmain.manifest_list(req, modules_str, 'css'))
# `url` may contain a full URL with a valid query string, we basically want to watch out for XML brackets and double-quotes
safe_url = urllib.quote_plus(url,':/?&;=')
return webmain.html_template % {
'js': js,
'css': css,
'modules': modules_json,
'init': 's.edi.edi_import("%s");' % url,
'init': 's.edi.edi_import("%s");' % safe_url,
}
@openerpweb.jsonrequest
+188
View File
@@ -0,0 +1,188 @@
# Mongolian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-19 02:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Mongolian <mn@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: 2013-02-19 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: google_docs
#: code:addons/google_docs/google_docs.py:139
#, python-format
msgid "Key Error!"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a presentation (slide show) document with url like "
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
".p`, the ID is `presentation:123456789`"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a text document with url like "
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
"`document:123456789`"
msgstr ""
#. module: google_docs
#: field:google.docs.config,gdocs_resource_id:0
msgid "Google Resource ID to Use as Template"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a drawing document with url like "
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
"`drawings:123456789`"
msgstr ""
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/xml/gdocs.xml:6
#, python-format
msgid "Add Google Doc..."
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"This is the id of the template document, on google side. You can find it "
"thanks to its URL:"
msgstr ""
#. module: google_docs
#: model:ir.model,name:google_docs.model_google_docs_config
msgid "Google Docs templates config"
msgstr ""
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/js/gdocs.js:25
#, python-format
msgid ""
"The user google credentials are not set yet. Contact your administrator for "
"help."
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a spreadsheet document with url like "
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
"the ID is `spreadsheet:123456789`"
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:101
#, python-format
msgid ""
"Your resource id is not correct. You can find the id in the google docs URL."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:125
#, python-format
msgid "Creating google docs may only be done by one at a time."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:56
#: code:addons/google_docs/google_docs.py:101
#: code:addons/google_docs/google_docs.py:125
#, python-format
msgid "Google Docs Error!"
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:56
#, python-format
msgid "Check your google configuration in Users/Users/Synchronization tab."
msgstr ""
#. module: google_docs
#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
msgid "Google Docs configuration"
msgstr ""
#. module: google_docs
#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
msgid "Models configuration"
msgstr "Моделийн тохиргоо"
#. module: google_docs
#: field:google.docs.config,model_id:0
msgid "Model"
msgstr "Модел"
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/js/gdocs.js:28
#, python-format
msgid "User Google credentials are not yet set."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:139
#, python-format
msgid "Your Google Doc Name Pattern's key does not found in object."
msgstr ""
#. module: google_docs
#: help:google.docs.config,name_template:0
msgid ""
"Choose how the new google docs will be named, on google side. Eg. "
"gdoc_%(field_name)s"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid "Google Docs Configuration"
msgstr ""
#. module: google_docs
#: help:google.docs.config,gdocs_resource_id:0
msgid ""
"\n"
"This is the id of the template document, on google side. You can find it "
"thanks to its URL: \n"
"*for a text document with url like "
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
"`document:123456789`\n"
"*for a spreadsheet document with url like "
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
"the ID is `spreadsheet:123456789`\n"
"*for a presentation (slide show) document with url like "
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
".p`, the ID is `presentation:123456789`\n"
"*for a drawing document with url like "
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
"`drawings:123456789`\n"
"...\n"
msgstr ""
#. module: google_docs
#: model:ir.model,name:google_docs.model_ir_attachment
msgid "ir.attachment"
msgstr ""
#. module: google_docs
#: field:google.docs.config,name_template:0
msgid "Google Doc Name Pattern"
msgstr ""
+188
View File
@@ -0,0 +1,188 @@
# Swedish translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-15 14:26+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: google_docs
#: code:addons/google_docs/google_docs.py:139
#, python-format
msgid "Key Error!"
msgstr "Nyckelfel!"
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a presentation (slide show) document with url like "
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
".p`, the ID is `presentation:123456789`"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a text document with url like "
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
"`document:123456789`"
msgstr ""
#. module: google_docs
#: field:google.docs.config,gdocs_resource_id:0
msgid "Google Resource ID to Use as Template"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a drawing document with url like "
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
"`drawings:123456789`"
msgstr ""
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/xml/gdocs.xml:6
#, python-format
msgid "Add Google Doc..."
msgstr "Lägg till Google-dokument..."
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"This is the id of the template document, on google side. You can find it "
"thanks to its URL:"
msgstr ""
#. module: google_docs
#: model:ir.model,name:google_docs.model_google_docs_config
msgid "Google Docs templates config"
msgstr ""
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/js/gdocs.js:25
#, python-format
msgid ""
"The user google credentials are not set yet. Contact your administrator for "
"help."
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid ""
"for a spreadsheet document with url like "
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
"the ID is `spreadsheet:123456789`"
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:101
#, python-format
msgid ""
"Your resource id is not correct. You can find the id in the google docs URL."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:125
#, python-format
msgid "Creating google docs may only be done by one at a time."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:56
#: code:addons/google_docs/google_docs.py:101
#: code:addons/google_docs/google_docs.py:125
#, python-format
msgid "Google Docs Error!"
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:56
#, python-format
msgid "Check your google configuration in Users/Users/Synchronization tab."
msgstr ""
#. module: google_docs
#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
msgid "Google Docs configuration"
msgstr ""
#. module: google_docs
#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
msgid "Models configuration"
msgstr ""
#. module: google_docs
#: field:google.docs.config,model_id:0
msgid "Model"
msgstr ""
#. module: google_docs
#. openerp-web
#: code:addons/google_docs/static/src/js/gdocs.js:28
#, python-format
msgid "User Google credentials are not yet set."
msgstr ""
#. module: google_docs
#: code:addons/google_docs/google_docs.py:139
#, python-format
msgid "Your Google Doc Name Pattern's key does not found in object."
msgstr ""
#. module: google_docs
#: help:google.docs.config,name_template:0
msgid ""
"Choose how the new google docs will be named, on google side. Eg. "
"gdoc_%(field_name)s"
msgstr ""
#. module: google_docs
#: view:google.docs.config:0
msgid "Google Docs Configuration"
msgstr ""
#. module: google_docs
#: help:google.docs.config,gdocs_resource_id:0
msgid ""
"\n"
"This is the id of the template document, on google side. You can find it "
"thanks to its URL: \n"
"*for a text document with url like "
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
"`document:123456789`\n"
"*for a spreadsheet document with url like "
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
"the ID is `spreadsheet:123456789`\n"
"*for a presentation (slide show) document with url like "
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
".p`, the ID is `presentation:123456789`\n"
"*for a drawing document with url like "
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
"`drawings:123456789`\n"
"...\n"
msgstr ""
#. module: google_docs
#: model:ir.model,name:google_docs.model_ir_attachment
msgid "ir.attachment"
msgstr ""
#. module: google_docs
#: field:google.docs.config,name_template:0
msgid "Google Doc Name Pattern"
msgstr ""
+42 -28
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2012-05-10 18:17+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-15 18:13+0000\n"
"Last-Translator: krnkris <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: 2012-12-22 05:48+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -24,7 +24,7 @@ msgstr "OpenERP felhasználó"
#. module: hr
#: field:hr.config.settings,module_hr_timesheet_sheet:0
msgid "Allow timesheets validation by managers"
msgstr ""
msgstr "Engedélyezze az időkimutatások vezetőség általi megerősítését"
#. module: hr
#: field:hr.job,requirements:0
@@ -58,11 +58,14 @@ msgid ""
"128x128px image, with aspect ratio preserved. Use this field in form views "
"or some kanban views."
msgstr ""
"Közepes méretű fotó az alkalmazottakról. Automatikusan átméretezett mint "
"128x128px kép, az arányok megtartása mellett. Használja ezt a mezőt a forma "
"nézetben és egyes kanban nézetben."
#. module: hr
#: view:hr.config.settings:0
msgid "Time Tracking"
msgstr ""
msgstr "Idő követés"
#. module: hr
#: view:hr.employee:0
@@ -78,12 +81,12 @@ msgstr "Saját osztály létrehozása"
#. module: hr
#: help:hr.job,no_of_employee:0
msgid "Number of employees currently occupying this job position."
msgstr ""
msgstr "Alakalmazottak száma akik jelenleg betöltik ezt az állás pozíciót."
#. module: hr
#: field:hr.config.settings,module_hr_evaluation:0
msgid "Organize employees periodic evaluation"
msgstr ""
msgstr "Alkalmazottak szervezése időközönkénti értékeléssel"
#. module: hr
#: view:hr.department:0
@@ -98,7 +101,7 @@ msgstr "Osztály, részleg"
#. module: hr
#: field:hr.employee,work_email:0
msgid "Work Email"
msgstr ""
msgstr "Munkahelyi e-mail"
#. module: hr
#: help:hr.employee,image:0
@@ -106,11 +109,13 @@ msgid ""
"This field holds the image used as photo for the employee, limited to "
"1024x1024px."
msgstr ""
"Ez a mező tartalmazza a képet amit az alkalmazottakhoz használ, limitált "
"méret 1024x1024px."
#. module: hr
#: help:hr.config.settings,module_hr_holidays:0
msgid "This installs the module hr_holidays."
msgstr ""
msgstr "Ez a hr_holidays modult telepíti."
#. module: hr
#: view:hr.job:0
@@ -125,7 +130,7 @@ msgstr "Toborzás folyamatban"
#. module: hr
#: field:hr.job,message_unread:0
msgid "Unread Messages"
msgstr ""
msgstr "Olvasatlan üzenetek"
#. module: hr
#: field:hr.department,company_id:0
@@ -143,33 +148,33 @@ msgstr "Várható felvételek"
#. module: hr
#: field:res.users,employee_ids:0
msgid "Related employees"
msgstr ""
msgstr "Ide kapcsolódó alkalmazottak"
#. module: hr
#: constraint:hr.employee.category:0
msgid "Error! You cannot create recursive Categories."
msgstr ""
msgstr "Hiba! Nem tud többszörös kategóriát létrehozni."
#. module: hr
#: help:hr.config.settings,module_hr_recruitment:0
msgid "This installs the module hr_recruitment."
msgstr ""
msgstr "Ez a hr_recruitment modult telepíti."
#. module: hr
#: view:hr.employee:0
msgid "Birth"
msgstr ""
msgstr "Született"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_view_categ_form
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
msgid "Employee Tags"
msgstr ""
msgstr "Alkalmazott címke"
#. module: hr
#: view:hr.job:0
msgid "Launch Recruitement"
msgstr ""
msgstr "Ebéd igénylés"
#. module: hr
#: model:process.transition,name:hr.process_transition_employeeuser0
@@ -194,22 +199,22 @@ msgstr "Házas"
#. module: hr
#: field:hr.job,message_ids:0
msgid "Messages"
msgstr ""
msgstr "Üzenetek"
#. module: hr
#: view:hr.config.settings:0
msgid "Talent Management"
msgstr ""
msgstr "Képesség kezelés"
#. module: hr
#: help:hr.config.settings,module_hr_timesheet_sheet:0
msgid "This installs the module hr_timesheet_sheet."
msgstr ""
msgstr "Ez a hr_timesheet_sheet modult telepíti."
#. module: hr
#: view:hr.employee:0
msgid "Mobile:"
msgstr ""
msgstr "Mobil:"
#. module: hr
#: view:hr.employee:0
@@ -219,12 +224,12 @@ msgstr "Beosztás"
#. module: hr
#: help:hr.job,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket."
#. module: hr
#: field:hr.employee,color:0
msgid "Color Index"
msgstr ""
msgstr "Szín meghatározó"
#. module: hr
#: model:process.transition,note:hr.process_transition_employeeuser0
@@ -232,11 +237,13 @@ msgid ""
"The Related user field on the Employee form allows to link the OpenERP user "
"(and her rights) to the employee."
msgstr ""
"Az alkalmazott űrlapján ide vonatkozó felhasználó mező lehetővé teszi az "
"OpenERP felhasználó (és jogosultságai) hozzárendelését az alkalmazottakhoz."
#. module: hr
#: field:hr.employee,image_medium:0
msgid "Medium-sized photo"
msgstr ""
msgstr "Közepes méretű fotó"
#. module: hr
#: field:hr.employee,identification_id:0
@@ -277,7 +284,7 @@ msgstr "Iroda címe"
#. module: hr
#: field:hr.job,message_follower_ids:0
msgid "Followers"
msgstr ""
msgstr "Követők"
#. module: hr
#: view:hr.employee:0
@@ -298,6 +305,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field anywhere a small image is "
"required."
msgstr ""
"Kis méretű fotó az alkalmazottról. Automatikusan átméretezve 64x64px képre, "
"az arányok megtartás mellett. Használja ezt mezőt bárhol ahol kisméretű "
"képet igényel."
#. module: hr
#: field:hr.employee,birthday:0
@@ -307,12 +317,12 @@ msgstr "Születési idő"
#. module: hr
#: help:hr.job,no_of_recruitment:0
msgid "Number of new employees you expect to recruit."
msgstr ""
msgstr "A felvenni kívánt alkalmazottak száma"
#. module: hr
#: model:ir.actions.client,name:hr.action_client_hr_menu
msgid "Open HR Menu"
msgstr ""
msgstr "Munkaügy HR menü megnyitása"
#. module: hr
#: help:hr.job,message_summary:0
@@ -320,6 +330,8 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés "
"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
#. module: hr
#: help:hr.config.settings,module_account_analytic_analysis:0
@@ -327,6 +339,8 @@ msgid ""
"This installs the module account_analytic_analysis, which will install sales "
"management too."
msgstr ""
"Ez az account_analytic_analysis modult telepíti, amely az értékesítés "
"kezelést is magában foglalja."
#. module: hr
#: view:board.board:0
@@ -343,7 +357,7 @@ msgstr "Munka"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "Current Number of Employees"
msgstr ""
msgstr "Jelenlegi alkalmazottak száma"
#. module: hr
#: field:hr.department,member_ids:0
-2
View File
@@ -21,7 +21,6 @@
import time
from openerp import netsvc
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -152,7 +151,6 @@ class hr_expense_expense(osv.osv):
account_journal = self.pool.get('account.journal')
voucher_obj = self.pool.get('account.voucher')
currency_obj = self.pool.get('res.currency')
wkf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
for exp in self.browse(cr, uid, ids, context=context):
+11 -17
View File
@@ -24,10 +24,9 @@
import datetime
import time
from itertools import groupby
from operator import itemgetter
from operator import attrgetter, itemgetter
import math
from openerp import netsvc
from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -304,10 +303,8 @@ class hr_holidays(osv.osv):
'manager_id': False,
'manager_id2': False,
})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_delete(uid, 'hr.holidays', id, cr)
wf_service.trg_create(uid, 'hr.holidays', id, cr)
self.delete_workflow(cr, uid, ids)
self.create_workflow(cr, uid, ids)
to_unlink = []
for record in self.browse(cr, uid, ids, context=context):
for record2 in record.linked_request_ids:
@@ -370,11 +367,11 @@ class hr_holidays(osv.osv):
'employee_id': emp.id
}
leave_ids.append(self.create(cr, uid, vals, context=None))
wf_service = netsvc.LocalService("workflow")
for leave_id in leave_ids:
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'confirm', cr)
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
# TODO is it necessary to interleave the calls?
self.signal_confirm(cr, uid, [leave_id])
self.signal_validate(cr, uid, [leave_id])
self.signal_second_validate(cr, uid, [leave_id])
return True
def holidays_confirm(self, cr, uid, ids, context=None):
@@ -404,9 +401,7 @@ class hr_holidays(osv.osv):
meeting_obj.unlink(cr, uid, [record.meeting_id.id])
# If a category that created several holidays, cancel all related
wf_service = netsvc.LocalService("workflow")
for request in record.linked_request_ids or []:
wf_service.trg_validate(uid, 'hr.holidays', request.id, 'refuse', cr)
self.signal_refuse(cr, uid, map(attrgetter('id'), record.linked_request_ids or []))
self._remove_resource_leave(cr, uid, ids, context=context)
return True
@@ -478,10 +473,9 @@ class hr_employee(osv.osv):
leave_id = holiday_obj.create(cr, uid, {'name': _('Leave Request for %s') % employee.name, 'employee_id': employee.id, 'holiday_status_id': status_id, 'type': 'remove', 'holiday_type': 'employee', 'number_of_days_temp': abs(diff)}, context=context)
else:
return False
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'confirm', cr)
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
holidays_obj.signal_confirm(cr, uid, [leave_id])
holidays_obj.signal_validate(cr, uid, [leave_id])
holidays_obj.signal_second_validate(cr, uid, [leave_id])
return True
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
+2 -4
View File
@@ -18,10 +18,8 @@
I again set to draft and then confirm.
-
!python {model: hr.holidays}: |
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
self.set_to_draft(cr, uid, [ref('hr_holidays_employee1_cl')])
wf_service.trg_validate(uid, 'hr.holidays', ref('hr_holidays_employee1_cl'), 'confirm', cr)
self.set_to_draft(cr, uid, [ref('hr_holidays_employee1_cl')])
self.signal_confirm(cr, uid, [ref('hr_holidays_employee1_cl')])
-
I validate the holiday request by clicking on "To Approve" button.
-
+3 -5
View File
@@ -26,7 +26,6 @@ from datetime import datetime
from datetime import timedelta
from dateutil import relativedelta
from openerp import netsvc
from openerp.osv import fields, osv
from openerp import tools
from openerp.tools.translate import _
@@ -331,13 +330,12 @@ class hr_payslip(osv.osv):
def refund_sheet(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
wf_service = netsvc.LocalService("workflow")
for payslip in self.browse(cr, uid, ids, context=context):
id_copy = self.copy(cr, uid, payslip.id, {'credit_note': True, 'name': _('Refund: ')+payslip.name}, context=context)
self.compute_sheet(cr, uid, [id_copy], context=context)
wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'hr_verify_sheet', cr)
wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'process_sheet', cr)
self.signal_hr_verify_sheet(cr, uid, [id_copy])
self.signal_process_sheet(cr, uid, [id_copy])
form_id = mod_obj.get_object_reference(cr, uid, 'hr_payroll', 'view_hr_payslip_form')
form_res = form_id and form_id[1] or False
tree_id = mod_obj.get_object_reference(cr, uid, 'hr_payroll', 'view_hr_payslip_tree')
@@ -104,10 +104,8 @@
I want to check cancel button. So I first cancel the sheet then make it set to draft.
-
!python {model: hr.payslip}: |
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
self.cancel_sheet(cr, uid, [ref("hr_payslip_0")], None)
wf_service.trg_validate(uid, 'hr.payslip', ref("hr_payslip_0"), 'draft', cr)
self.signal_draft(cr, uid, [ref("hr_payslip_0")])
-
Then I click on the "Confirm" button.
-
-1
View File
@@ -373,7 +373,6 @@ class hr_applicant(base_stage, osv.Model):
update_vals = {}
update_vals.update({
'description': msg.get('body'),
'email_from': msg.get('from'),
'email_cc': msg.get('cc'),
})
@@ -187,6 +187,8 @@
domain="[('date_action','&lt;&gt;',False)]" help="Filter and view on next actions and date"/>
<field name="job_id"/>
<field name="user_id"/>
<separator/>
<field name="categ_ids"/>
<group expand="0" string="Group By...">
<filter string="Responsible" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Department" domain="[]" context="{'group_by':'department_id'}"/>
@@ -115,6 +115,4 @@
I click on "Create Invoice" button to create Invoice and validate the invoice.
-
!python {model: hr.timesheet.invoice.create.final}: |
from openerp import netsvc
wkf_service = netsvc.LocalService("workflow")
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]})
@@ -114,6 +114,4 @@
I click on "Create Invoice" button to create Invoice and validate the invoice.
-
!python {model: hr.timesheet.invoice.create.final}: |
from openerp import netsvc
wkf_service = netsvc.LocalService("workflow")
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]})
@@ -25,7 +25,6 @@ from dateutil.relativedelta import relativedelta
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import netsvc
class hr_timesheet_sheet(osv.osv):
_name = "hr_timesheet_sheet.sheet"
@@ -93,8 +92,7 @@ class hr_timesheet_sheet(osv.osv):
self.check_employee_attendance_state(cr, uid, sheet.id, context=context)
di = sheet.user_id.company_id.timesheet_max_difference
if (abs(sheet.total_difference) < di) or not di:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'hr_timesheet_sheet.sheet', sheet.id, 'confirm', cr)
self.signal_confirm(cr, uid, [sheet.id])
else:
raise osv.except_osv(_('Warning!'), _('Please verify that the total difference of the sheet is lower than %.2f.') %(di,))
return True
@@ -192,9 +190,7 @@ class hr_timesheet_sheet(osv.osv):
def action_set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
wf_service = netsvc.LocalService('workflow')
for id in ids:
wf_service.trg_create(uid, self._name, id, cr)
self.create_workflow(cr, uid, ids)
return True
def name_get(self, cr, uid, ids, context=None):
+25 -16
View File
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2011-02-01 10:13+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-14 15:58+0000\n"
"Last-Translator: krnkris <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: 2012-12-22 05:59+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Documents"
msgstr ""
msgstr "Dokumentumok"
#. module: knowledge
#: model:ir.model,name:knowledge.model_knowledge_config_settings
msgid "knowledge.config.settings"
msgstr ""
msgstr "knowledge.config.settings"
#. module: knowledge
#: help:knowledge.config.settings,module_document_webdav:0
@@ -32,11 +32,13 @@ msgid ""
"Access your documents in OpenERP through WebDAV.\n"
" This installs the module document_webdav."
msgstr ""
"Az OpenERP dokumentumok WebDAV-on keresztüli elérése.\n"
" Ez a document_webdav modult telepíti."
#. module: knowledge
#: help:knowledge.config.settings,module_document_page:0
msgid "This installs the module document_page."
msgstr ""
msgstr "Ez a document_page modult telepíti."
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document2
@@ -47,12 +49,12 @@ msgstr "Csoportmunában készült tartalom"
#: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration
#: view:knowledge.config.settings:0
msgid "Configure Knowledge"
msgstr ""
msgstr "Tudástár beállítása"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Knowledge and Documents Management"
msgstr ""
msgstr "Tudástár és dokumentum kezelés"
#. module: knowledge
#: help:knowledge.config.settings,module_document:0
@@ -62,31 +64,36 @@ msgid ""
"and a document dashboard.\n"
" This installs the module document."
msgstr ""
"Ez egy komplett dokumentum kezelő rendszer, beleértve: felhasználó "
"hitelesítást,\n"
" teljes dokumentum keresőt (de a pptx és docx nem "
"támogatott), és egy dokumentum vezérlőpultot.\n"
" Ez a document modult telepíti."
#. module: knowledge
#: field:knowledge.config.settings,module_document_page:0
msgid "Create static web pages"
msgstr ""
msgstr "Statikus weboldalak készítése"
#. module: knowledge
#: field:knowledge.config.settings,module_document_ftp:0
msgid "Share repositories (FTP)"
msgstr ""
msgstr "Elérési út (FTP) megosztás"
#. module: knowledge
#: field:knowledge.config.settings,module_document:0
msgid "Manage documents"
msgstr ""
msgstr "Dokumentum kezelés"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Cancel"
msgstr ""
msgstr "Mégsem"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Apply"
msgstr ""
msgstr "Alkalmaz"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document_configuration
@@ -99,16 +106,18 @@ msgid ""
"Access your documents in OpenERP through an FTP interface.\n"
" This installs the module document_ftp."
msgstr ""
"Az OpenERP dokumentumok elérése egy FTP csatolón keresztül.\n"
" Ez a document_ftp modult telepíti."
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "or"
msgstr ""
msgstr "vagy"
#. module: knowledge
#: field:knowledge.config.settings,module_document_webdav:0
msgid "Share repositories (WebDAV)"
msgstr ""
msgstr "Elérési útvonal (webDAV) megosztás"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document
+18 -14
View File
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2010-12-19 23:48+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2013-02-15 10:59+0000\n"
"Last-Translator: erdenebold <erdenebold10@gmail.com>\n"
"Language-Team: Mongolian <mn@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: 2012-12-22 05:59+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Documents"
msgstr ""
msgstr "Баримтууд"
#. module: knowledge
#: model:ir.model,name:knowledge.model_knowledge_config_settings
msgid "knowledge.config.settings"
msgstr ""
msgstr "knowledge.config.settings"
#. module: knowledge
#: help:knowledge.config.settings,module_document_webdav:0
@@ -33,11 +33,13 @@ msgid ""
"Access your documents in OpenERP through WebDAV.\n"
" This installs the module document_webdav."
msgstr ""
"OpenERP бичиг баримтууд руу WebDAV-р хандана.\n"
" Энэ нь document_webdav модулийг суулгана."
#. module: knowledge
#: help:knowledge.config.settings,module_document_page:0
msgid "This installs the module document_page."
msgstr ""
msgstr "Энэ нь мdocument_page модулийг суулгана."
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document2
@@ -48,12 +50,12 @@ msgstr "Хамтарсан агуулга"
#: model:ir.actions.act_window,name:knowledge.action_knowledge_configuration
#: view:knowledge.config.settings:0
msgid "Configure Knowledge"
msgstr ""
msgstr "Баримтын Тохиргоо"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Knowledge and Documents Management"
msgstr ""
msgstr "Бичиг Баримт, Мэдлэгийн менежмент"
#. module: knowledge
#: help:knowledge.config.settings,module_document:0
@@ -67,7 +69,7 @@ msgstr ""
#. module: knowledge
#: field:knowledge.config.settings,module_document_page:0
msgid "Create static web pages"
msgstr ""
msgstr "Статик веб хуудас үүсгэх."
#. module: knowledge
#: field:knowledge.config.settings,module_document_ftp:0
@@ -77,17 +79,17 @@ msgstr ""
#. module: knowledge
#: field:knowledge.config.settings,module_document:0
msgid "Manage documents"
msgstr ""
msgstr "Бичиг баримтуудыг менежмент хийх"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Cancel"
msgstr ""
msgstr "Цуцлах"
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "Apply"
msgstr ""
msgstr "Ашиглах"
#. module: knowledge
#: model:ir.ui.menu,name:knowledge.menu_document_configuration
@@ -100,11 +102,13 @@ msgid ""
"Access your documents in OpenERP through an FTP interface.\n"
" This installs the module document_ftp."
msgstr ""
"OpenERP бичиг баримтууд руу FTP интерфейсээр хандана.\n"
"Энэ нь document_ftp модулийг суулгана."
#. module: knowledge
#: view:knowledge.config.settings:0
msgid "or"
msgstr ""
msgstr "эсвэл"
#. module: knowledge
#: field:knowledge.config.settings,module_document_webdav:0
@@ -26,7 +26,6 @@ from calendar import isleap
from openerp.tools.translate import _
from openerp.osv import fields, osv
from openerp import netsvc
import openerp.addons.decimal_precision as dp
DATETIME_FORMAT = "%Y-%m-%d"
@@ -179,7 +178,6 @@ class hr_payslip_run(osv.osv):
return res
def create_advice(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
payslip_pool = self.pool.get('hr.payslip')
payslip_line_pool = self.pool.get('hr.payslip.line')
advice_pool = self.pool.get('hr.payroll.advice')
@@ -198,8 +196,9 @@ class hr_payslip_run(osv.osv):
advice_id = advice_pool.create(cr, uid, advice_data, context=context)
slip_ids = []
for slip_id in run.slip_ids:
wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'hr_verify_sheet', cr)
wf_service.trg_validate(uid, 'hr.payslip', slip_id.id, 'process_sheet', cr)
# TODO is it necessary to interleave the calls ?
payslip_pool.signal_hr_verify_sheet(cr, uid, [slip_id.id])
payslip_pool.signal_process_sheet(cr, uid, [slip_id.id])
slip_ids.append(slip_id.id)
for slip in payslip_pool.browse(cr, uid, slip_ids, context=context):
+174
View File
@@ -0,0 +1,174 @@
# Hungarian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:06+0000\n"
"PO-Revision-Date: 2013-02-14 16:15+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: Hungarian <hu@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: 2013-02-15 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template
msgid "Template for Fiscal Position"
msgstr "ÁFA pozíció sablon"
#. module: l10n_multilang
#: sql_constraint:account.account:0
msgid "The code of the account must be unique per company !"
msgstr "A főkönyvi számla számának egyedinek kell lennie!"
#. module: l10n_multilang
#: constraint:account.account.template:0
msgid ""
"Configuration Error!\n"
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"Beállítási hiba!\n"
"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" "
"típusa különböző! "
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_analytic_journal
msgid "Analytic Journal"
msgstr "Analitikus/Gyüjtő napló"
#. module: l10n_multilang
#: constraint:account.account.template:0
msgid "Error ! You can not create recursive account templates."
msgstr "Hiba! Nem hozhat létre rekurzív főkönyvi számla sablonokat."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_journal
msgid "Journal"
msgstr "Napló"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_chart_template
msgid "Templates for Account Chart"
msgstr "Számlatükör sablonok"
#. module: l10n_multilang
#: sql_constraint:account.tax:0
msgid "The description must be unique per company!"
msgstr "A leírás egyedi kell legyen minden vállalathoz!"
#. module: l10n_multilang
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
msgstr "Hiba! Nem hozhat létre rekurzív adógyűjtőket."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax_template
msgid "account.tax.template"
msgstr "account.tax.template"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax
msgid "account.tax"
msgstr "account.tax"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_account
msgid "Account"
msgstr "Főkönyvi számla"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts
msgid "wizard.multi.charts.accounts"
msgstr "wizard.multi.charts.accounts"
#. module: l10n_multilang
#: constraint:account.journal:0
msgid ""
"Configuration error! The currency chosen should be shared by the default "
"accounts too."
msgstr ""
"Beállítási hiba! A választott pénznemet meg kell osztani az alapértelmezett "
"főkönyvi számlával is."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_account_template
msgid "Templates for Accounts"
msgstr "Főkönyvi számla sablonok"
#. module: l10n_multilang
#: help:account.chart.template,spoken_languages:0
msgid ""
"State here the languages for which the translations of templates could be "
"loaded at the time of installation of this localization module and copied in "
"the final object when generating them from templates. You must provide the "
"language codes separated by ';'"
msgstr ""
"Adja meg itt a nyelvet amelyen a sablon be fog töltődni a lokalizációs modul "
"telepítése után és az át lesz másolva a végső objektumba a sablonokból való "
"létrehozás után. A nyelvi kódot ';' kell elválasztani."
#. module: l10n_multilang
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
msgstr "Hiba! Nem hozhat létre rekurzív számlákat."
#. module: l10n_multilang
#: constraint:account.account:0
msgid ""
"Configuration Error! \n"
"You can not select an account type with a deferral method different of "
"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! "
msgstr ""
#. module: l10n_multilang
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr "A napló nevének egyedinek kell lennie mindegyik vállalatra!"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analitikus/elemző könyvelés"
#. module: l10n_multilang
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr "A napló kódjának egyedinek kell lennie mindegyik vállalathoz!"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position
msgid "Fiscal Position"
msgstr "Költségvetési pozíció"
#. module: l10n_multilang
#: constraint:account.account:0
msgid ""
"Configuration Error! \n"
"You can not define children to an account with internal type different of "
"\"View\"! "
msgstr ""
"Beállítási hiba! \n"
"Nem tud al-számlát létrehozni egy számlához, melynek a belső \"Nézet\" "
"típusa különböző! "
#. module: l10n_multilang
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax_code_template
msgid "Tax Code Template"
msgstr ""
#. module: l10n_multilang
#: field:account.chart.template,spoken_languages:0
msgid "Spoken Languages"
msgstr "Beszélt nyelvek"
+1 -1
View File
@@ -159,7 +159,7 @@ class lunch_order(osv.Model):
def specific_function(cr, uid, ids, context=None):
return self.add_preference(cr, uid, ids, pref_id, context=context)
return specific_function
return super(lunch_order,self).__getattr__(self,attr)
return super(lunch_order, self).__getattr__(attr)
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
"""
+151 -90
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-02-12 17:52+0000\n"
"PO-Revision-Date: 2013-02-14 16:43+0000\n"
"Last-Translator: krnkris <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: 2013-02-13 04:36+0000\n"
"X-Launchpad-Export-Date: 2013-02-15 04:38+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: mail
@@ -906,12 +906,12 @@ msgstr "Alcsoportba rakott üzenetek"
#. module: mail
#: field:mail.alias,alias_user_id:0
msgid "Owner"
msgstr ""
msgstr "Tulajdonos"
#. module: mail
#: model:ir.model,name:mail.model_res_users
msgid "Users"
msgstr ""
msgstr "Felhasználók"
#. module: mail
#: model:ir.model,name:mail.model_mail_message
@@ -920,25 +920,25 @@ msgstr ""
#: field:mail.notification,message_id:0
#: field:mail.wizard.invite,message:0
msgid "Message"
msgstr ""
msgstr "Üzenet"
#. module: mail
#: help:mail.followers,res_id:0
#: help:mail.wizard.invite,res_id:0
msgid "Id of the followed resource"
msgstr ""
msgstr "A követett forrás ID azonosítója"
#. module: mail
#: field:mail.compose.message,body:0
#: field:mail.message,body:0
msgid "Contents"
msgstr ""
msgstr "Tartalmak"
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_mail_alias
#: model:ir.ui.menu,name:mail.mail_alias_menu
msgid "Aliases"
msgstr ""
msgstr "Álnevek"
#. module: mail
#: help:mail.message.subtype,description:0
@@ -946,40 +946,44 @@ msgid ""
"Description that will be added in the message posted for this subtype. If "
"void, the name will be added instead."
msgstr ""
"Leírás ami hozzá lesz adva az altípusnak elküldendő üzenethez. Ha üres, a "
"név lesz hozzáadva helyette."
#. module: mail
#: field:mail.compose.message,vote_user_ids:0
#: field:mail.message,vote_user_ids:0
msgid "Votes"
msgstr ""
msgstr "Szavazatok"
#. module: mail
#: view:mail.group:0
msgid "Group"
msgstr ""
msgstr "Csoport"
#. module: mail
#: help:mail.compose.message,starred:0
#: help:mail.message,starred:0
msgid "Current user has a starred notification linked to this message"
msgstr ""
"A jelenlegi felhasználónak van egy kicsillagozott értesítése mely hozzá van "
"rendelve az üzenethez."
#. module: mail
#: field:mail.group,public:0
msgid "Privacy"
msgstr ""
msgstr "Adatvédelem"
#. module: mail
#: view:mail.mail:0
msgid "Notification"
msgstr ""
msgstr "Értesítés"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/mail.js:585
#, python-format
msgid "Please complete partner's informations"
msgstr ""
msgstr "Kérem egészítse ki a partner információkat"
#. module: mail
#: view:mail.wizard.invite:0
@@ -994,7 +998,7 @@ msgstr "A kijelölt elemek követői és"
#. module: mail
#: field:mail.alias,alias_force_thread_id:0
msgid "Record Thread ID"
msgstr ""
msgstr "Összefűzési azonosító ID elmentése"
#. module: mail
#: model:ir.ui.menu,name:mail.mail_group_root
@@ -1013,12 +1017,21 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p>\n"
" Nem található üzenet és nem lett még elküldve üzenet.\n"
" </p><p>\n"
" Kattintson felül jobbra az ikonra egy üzenet "
"összeállításához. Ez az\n"
" üzenet lesz elküldve e-mailként, ha ez egy belső "
"kapcsolat.\n"
" </p>\n"
" "
#. module: mail
#: view:mail.mail:0
#: field:mail.mail,state:0
msgid "Status"
msgstr ""
msgstr "Állapot"
#. module: mail
#: view:mail.mail:0
@@ -1029,13 +1042,13 @@ msgstr "Kimenő"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "All feeds"
msgstr ""
msgstr "Összes betáplálás"
#. module: mail
#: help:mail.compose.message,record_name:0
#: help:mail.message,record_name:0
msgid "Name get of the related document."
msgstr ""
msgstr "A név az ide vonatkozó dokumentumról levéve."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_notifications
@@ -1046,12 +1059,12 @@ msgstr ""
#: field:mail.message,notification_ids:0
#: view:mail.notification:0
msgid "Notifications"
msgstr ""
msgstr "Értesítések"
#. module: mail
#: view:mail.alias:0
msgid "Search Alias"
msgstr ""
msgstr "Álnév keresés"
#. module: mail
#: help:mail.alias,alias_force_thread_id:0
@@ -1060,6 +1073,9 @@ msgid ""
"attached, even if they did not reply to it. If set, this will disable the "
"creation of new records completely."
msgstr ""
"Az összefűzés (rekord) választható ID azonosítója, amely minden beérkezett "
"üzenethez hozzá lesz mellékleve, még akkor is ha nem válaszoltak rá. Ha "
"beállított, akkor teljesen ki lesz kapcsolva az új rekord létrehozása."
#. module: mail
#: help:mail.message.subtype,name:0
@@ -1070,28 +1086,33 @@ msgid ""
"subtypes allow to precisely tune the notifications the user want to receive "
"on its wall."
msgstr ""
"Üzenet altípus sokkal pontosabb típust ad az üzenetekhez, főként a rendszer "
"értesítésekhez. Például, az értesítés kapcsolódhat új rekordhoz (Új), vagy "
"egy szakasz változás a műveletben (Szakasz változás). Üzenet altípusok "
"lehetővé teszik az értesítések pontos behangolását, melyeket a felhasználó "
"az üzenet falán látni szeretne."
#. module: mail
#: view:mail.mail:0
msgid "by"
msgstr ""
msgstr "által"
#. module: mail
#: model:mail.group,name:mail.group_best_sales_practices
msgid "Best Sales Practices"
msgstr ""
msgstr "Legjobb Értékesítési Praktikák"
#. module: mail
#: selection:mail.group,public:0
msgid "Selected Group Only"
msgstr ""
msgstr "Csak a kiválasztott csoport"
#. module: mail
#: field:mail.group,message_is_follower:0
#: field:mail.thread,message_is_follower:0
#: field:res.partner,message_is_follower:0
msgid "Is a Follower"
msgstr ""
msgstr "Ez egy követő"
#. module: mail
#: view:mail.alias:0
@@ -1102,12 +1123,12 @@ msgstr "Felhasználó"
#. module: mail
#: view:mail.group:0
msgid "Groups"
msgstr ""
msgstr "Csoportok"
#. module: mail
#: view:mail.message:0
msgid "Messages Search"
msgstr ""
msgstr "Üzenetek keresése"
#. module: mail
#: field:mail.compose.message,date:0
@@ -1144,19 +1165,19 @@ msgstr "Bejegyzés írás a követőimnek"
#. module: mail
#: model:ir.model,name:mail.model_res_groups
msgid "Access Groups"
msgstr ""
msgstr "Csoportok hozzáférése"
#. module: mail
#: field:mail.message.subtype,default:0
msgid "Default"
msgstr ""
msgstr "Alapértelmezett"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:260
#, python-format
msgid "show more message"
msgstr ""
msgstr "mutassa a többi üzenetet"
#. module: mail
#. openerp-web
@@ -1168,25 +1189,27 @@ msgstr "Megjelölés feladatkét"
#. module: mail
#: help:mail.message.subtype,parent_id:0
msgid "Parent subtype, used for automatic subscription."
msgstr ""
msgstr "Szülő altípus, ami automatikus feliratkozáshoz használt."
#. module: mail
#: model:ir.model,name:mail.model_mail_wizard_invite
msgid "Invite wizard"
msgstr ""
msgstr "Meghívó varázsló"
#. module: mail
#: field:mail.group,message_summary:0
#: field:mail.thread,message_summary:0
#: field:res.partner,message_summary:0
msgid "Summary"
msgstr ""
msgstr "Összegzés"
#. module: mail
#: help:mail.message.subtype,res_model:0
msgid ""
"Model the subtype applies to. If False, this subtype applies to all models."
msgstr ""
"Az altípushoz alkalmazott minta. Ha téves, akkor ez az altípus lesz "
"használva az összes mintához."
#. module: mail
#: field:mail.compose.message,subtype_id:0
@@ -1194,32 +1217,32 @@ msgstr ""
#: field:mail.message,subtype_id:0
#: view:mail.message.subtype:0
msgid "Subtype"
msgstr ""
msgstr "Altípus"
#. module: mail
#: view:mail.group:0
msgid "Group Form"
msgstr ""
msgstr "Csoport űrlap"
#. module: mail
#: field:mail.compose.message,starred:0
#: field:mail.message,starred:0
#: field:mail.notification,starred:0
msgid "Starred"
msgstr ""
msgstr "Csillagozott"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:262
#, python-format
msgid "more messages"
msgstr ""
msgstr "több üzenet"
#. module: mail
#: code:addons/mail/update.py:93
#, python-format
msgid "Error"
msgstr ""
msgstr "Hiba"
#. module: mail
#. openerp-web
@@ -1233,6 +1256,7 @@ msgstr "Követés"
msgid ""
"Unfortunately this email alias is already used, please choose a unique one"
msgstr ""
"Sajnos ez az email álnév már használva van, kérem válasszon egy egyedit."
#. module: mail
#: help:mail.alias,alias_user_id:0
@@ -1242,19 +1266,24 @@ msgid ""
"the sender (From) address, or will use the Administrator account if no "
"system user is found for that address."
msgstr ""
"A rekord tulajdonosa létrehozva amikor erre az álnévre e-mailek érkeznek. "
"Ha ez a mező nincs kialakítva akkor a rendszer megpróbálja megkeresni a "
"jogos tulajdonost a elküldési (űrlap) címről, vagy az adminisztrátor "
"felhasználót fogja használni ha nem talált rendszer felhasználót azzal a "
"címmel."
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail_followers.xml:52
#, python-format
msgid "And"
msgstr ""
msgstr "És"
#. module: mail
#: field:mail.compose.message,message_id:0
#: field:mail.message,message_id:0
msgid "Message-Id"
msgstr ""
msgstr "Üzenet-ID azonosító"
#. module: mail
#: help:mail.group,image:0
@@ -1262,6 +1291,7 @@ msgid ""
"This field holds the image used as photo for the group, limited to "
"1024x1024px."
msgstr ""
"Ez a mező a képet tárolja amit a csoporthoz használ, limitálva 1024x1024px."
#. module: mail
#: field:mail.compose.message,attachment_ids:0
@@ -1274,7 +1304,7 @@ msgstr "Mellékletek"
#: field:mail.compose.message,record_name:0
#: field:mail.message,record_name:0
msgid "Message Record Name"
msgstr ""
msgstr "Üzenet rekord név"
#. module: mail
#: field:mail.mail,email_cc:0
@@ -1284,7 +1314,7 @@ msgstr "Másolat"
#. module: mail
#: help:mail.notification,starred:0
msgid "Starred message that goes into the todo mailbox"
msgstr ""
msgstr "Csillagos üzenet amely a teendők levélládába megy"
#. module: mail
#. openerp-web
@@ -1292,24 +1322,25 @@ msgstr ""
#: view:mail.compose.message:0
#, python-format
msgid "Followers of"
msgstr ""
msgstr "Követők ehhez"
#. module: mail
#: help:mail.mail,auto_delete:0
msgid "Permanently delete this email after sending it, to save space"
msgstr ""
"Tartósan törli ezt az üzenetet az elküldés után, hely felszabadítása miatt"
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_group_feeds
msgid "Discussion Group"
msgstr ""
msgstr "Megbeszélés csoport"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:224
#, python-format
msgid "Done"
msgstr ""
msgstr "Kész"
#. module: mail
#: model:mail.message.subtype,name:mail.mt_comment
@@ -1326,7 +1357,7 @@ msgstr "Követ"
#. module: mail
#: field:mail.group,name:0
msgid "Name"
msgstr ""
msgstr "Név"
#. module: mail
#: model:mail.group,name:mail.group_all_employees
@@ -1339,45 +1370,45 @@ msgstr "Teljes vállalat"
#: view:mail.compose.message:0
#, python-format
msgid "and"
msgstr ""
msgstr "és"
#. module: mail
#: help:mail.mail,body_html:0
msgid "Rich-text/HTML message"
msgstr ""
msgstr "Rich-text/HTML üzenet"
#. module: mail
#: view:mail.mail:0
msgid "Creation Month"
msgstr ""
msgstr "Létrehozás hónapja"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:272
#, python-format
msgid "Compose new Message"
msgstr ""
msgstr "Új üzenet létrehozása"
#. module: mail
#: field:mail.group,menu_id:0
msgid "Related Menu"
msgstr ""
msgstr "Kapcsolódó menü"
#. module: mail
#: view:mail.message:0
msgid "Content"
msgstr ""
msgstr "Tartalom"
#. module: mail
#: field:mail.mail,email_to:0
msgid "To"
msgstr ""
msgstr "Címzett"
#. module: mail
#: field:mail.compose.message,notified_partner_ids:0
#: field:mail.message,notified_partner_ids:0
msgid "Notified partners"
msgstr ""
msgstr "Értesített partnerek"
#. module: mail
#: help:mail.group,public:0
@@ -1385,11 +1416,13 @@ msgid ""
"This group is visible by non members. Invisible groups can add "
"members through the invite button."
msgstr ""
"Ez a csoport azoknak is látható akik nem tagok. A nem látható csoportok "
"tagokat adhatnak a meghívó gombbal."
#. module: mail
#: model:mail.group,name:mail.group_board
msgid "Board meetings"
msgstr ""
msgstr "Tanácskozás"
#. module: mail
#: constraint:mail.alias:0
@@ -1397,40 +1430,42 @@ msgid ""
"Invalid expression, it must be a literal python dictionary definition e.g. "
"\"{'field': 'value'}\""
msgstr ""
"Nem érvényes kifejezés, ennek python szótár kifejezésnek kell lennie pl.: "
"\"{'field': 'value'}\""
#. module: mail
#: field:mail.alias,alias_model_id:0
msgid "Aliased Model"
msgstr ""
msgstr "Minta álnév"
#. module: mail
#: help:mail.compose.message,message_id:0
#: help:mail.message,message_id:0
msgid "Message unique identifier"
msgstr ""
msgstr "Üzenet egyedi azonosító"
#. module: mail
#: field:mail.group,description:0
#: field:mail.message.subtype,description:0
msgid "Description"
msgstr ""
msgstr "Leírás"
#. module: mail
#: model:ir.model,name:mail.model_mail_followers
msgid "Document Followers"
msgstr ""
msgstr "Követők dokumentuma"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail_followers.xml:35
#, python-format
msgid "Remove this follower"
msgstr ""
msgstr "Követő eltávolítása"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "Never"
msgstr ""
msgstr "Soha"
#. module: mail
#: field:mail.mail,mail_server_id:0
@@ -1441,7 +1476,7 @@ msgstr "Kimenő levelező szerver"
#: code:addons/mail/mail_message.py:920
#, python-format
msgid "Partners email addresses not found"
msgstr ""
msgstr "A partnerek e-mail címei nem találhatóak"
#. module: mail
#: view:mail.mail:0
@@ -1452,19 +1487,21 @@ msgstr "Elküldött"
#. module: mail
#: field:mail.mail,body_html:0
msgid "Rich-text Contents"
msgstr ""
msgstr "Rich-text tartalmak"
#. module: mail
#: help:mail.compose.message,to_read:0
#: help:mail.message,to_read:0
msgid "Current user has an unread notification linked to this message"
msgstr ""
"A jelenlegi felhasználónak van egy olvasatlan értesítése ehhez az üzenethez "
"csatolva"
#. module: mail
#: help:res.partner,notification_email_send:0
msgid ""
"Choose in which case you want to receive an email when you receive new feeds."
msgstr ""
msgstr "Válassza ki milyen esetekben kíván e-mail kapni az új bevitelekből."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_groups
@@ -1480,13 +1517,17 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p>\n"
" nincs üzenete ebben a csoportban.\n"
" </p>\n"
" "
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:195
#, python-format
msgid "Please, wait while the file is uploading."
msgstr ""
msgstr "Kérem várjon amíg a fájl feltöltődik."
#. module: mail
#: view:mail.group:0
@@ -1496,6 +1537,9 @@ msgid ""
"installed\n"
" the portal module."
msgstr ""
"Ez a csoport mindenki számára látható,\n"
" az ügyfeleinek is, ha telepítette a\n"
" portal modult."
#. module: mail
#. openerp-web
@@ -1509,17 +1553,17 @@ msgstr "Visszahelyezés a feladatokhoz"
#: code:addons/mail/static/src/xml/mail.xml:113
#, python-format
msgid "this document"
msgstr ""
msgstr "ez a dokumentum"
#. module: mail
#: field:mail.compose.message,filter_id:0
msgid "Filters"
msgstr ""
msgstr "Szűrők"
#. module: mail
#: field:res.partner,notification_email_send:0
msgid "Receive Feeds by Email"
msgstr ""
msgstr "Új hozzászólások e-mailen fogadva"
#. module: mail
#: help:base.config.settings,alias_domain:0
@@ -1527,6 +1571,8 @@ msgid ""
"If you have setup a catch-all email domain redirected to the OpenERP server, "
"enter the domain name here."
msgstr ""
"Ha be állítja az összes e-mail fogadása domain átirányítás az openERP "
"szerverre, akkor írja ide a domain nevet."
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_mail_message
@@ -1543,7 +1589,7 @@ msgstr "Üzenetek"
#: code:addons/mail/static/src/xml/mail.xml:126
#, python-format
msgid "others..."
msgstr ""
msgstr "mások..."
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_star_feeds
@@ -1557,12 +1603,12 @@ msgstr "Feladat"
#: field:mail.group,alias_id:0
#: field:res.users,alias_id:0
msgid "Alias"
msgstr ""
msgstr "Álnév"
#. module: mail
#: model:ir.model,name:mail.model_mail_mail
msgid "Outgoing Mails"
msgstr ""
msgstr "Elküldött levelek"
#. module: mail
#: help:mail.compose.message,notification_ids:0
@@ -1571,6 +1617,8 @@ msgid ""
"Technical field holding the message notifications. Use notified_partner_ids "
"to access notified partners."
msgstr ""
"Technikai mező a értesítés üzenetek tárolásához. Használja a "
"notified_partner_ids az értesített partnerek eléréséhez."
#. module: mail
#: model:ir.ui.menu,name:mail.mail_feeds
@@ -1582,12 +1630,12 @@ msgstr "Üzenetek"
#: view:mail.alias:0
#: field:mail.message.subtype,res_model:0
msgid "Model"
msgstr ""
msgstr "Modell"
#. module: mail
#: view:mail.message:0
msgid "Unread"
msgstr ""
msgstr "Olvasatlan"
#. module: mail
#: help:mail.followers,subtype_ids:0
@@ -1595,23 +1643,25 @@ msgid ""
"Message subtypes followed, meaning subtypes that will be pushed onto the "
"user's Wall."
msgstr ""
"Üzenet altípus követve, azt jelenti, hogy az altípus ki lesz rakva a "
"felhasználó üzenőfalára."
#. module: mail
#: help:mail.group,message_ids:0
#: help:mail.thread,message_ids:0
#: help:res.partner,message_ids:0
msgid "Messages and communication history"
msgstr ""
msgstr "Üzenetek és kommunikáció történet"
#. module: mail
#: help:mail.mail,references:0
msgid "Message references, such as identifiers of previous messages"
msgstr ""
msgstr "Üzenet hivatkozások, mint előző üzenetek azonosítói"
#. module: mail
#: field:mail.compose.message,composition_mode:0
msgid "Composition mode"
msgstr ""
msgstr "Összeállítási mód"
#. module: mail
#: field:mail.compose.message,model:0
@@ -1619,14 +1669,14 @@ msgstr ""
#: field:mail.message,model:0
#: field:mail.wizard.invite,res_model:0
msgid "Related Document Model"
msgstr ""
msgstr "Ide vonatkozó dokumentum modell"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/mail.xml:287
#, python-format
msgid "unlike"
msgstr ""
msgstr "nem valószínű"
#. module: mail
#: help:mail.compose.message,author_id:0
@@ -1635,22 +1685,24 @@ msgid ""
"Author of the message. If not set, email_from may hold an email address that "
"did not match any partner."
msgstr ""
"Az üzenet szerzője. Ha nincs beállítva, az e-mail ettől, egy címet "
"tartalmaz ami nem mutat egyik partnerre sem."
#. module: mail
#: help:mail.mail,email_cc:0
msgid "Carbon copy message recipients"
msgstr ""
msgstr "Üzenet másolat címzettjei"
#. module: mail
#: field:mail.alias,alias_domain:0
msgid "Alias domain"
msgstr ""
msgstr "Álénév domain"
#. module: mail
#: code:addons/mail/update.py:93
#, python-format
msgid "Error during communication with the publisher warranty server."
msgstr ""
msgstr "Hiba a kiadó garancia szerverével történő kommunikációval."
#. module: mail
#: selection:mail.group,public:0
@@ -1670,32 +1722,41 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p>\n"
" <b>Nincs teendő.</b>\n"
" </p><p>\n"
" Ha a Beérkezett üzeneteinél végez műveletet, "
"megjelölheti\n"
" mint <i>teendő</i>. Ebből a menüből, minden teendőjét "
"elvégezheti.\n"
" </p>\n"
" "
#. module: mail
#: selection:mail.mail,state:0
msgid "Delivery Failed"
msgstr ""
msgstr "Küldés sikertelen"
#. module: mail
#: field:mail.compose.message,partner_ids:0
msgid "Additional contacts"
msgstr ""
msgstr "További kapcsolatok"
#. module: mail
#: help:mail.compose.message,parent_id:0
#: help:mail.message,parent_id:0
msgid "Initial thread message."
msgstr ""
msgstr "Elsődleges összefűzött üzenet."
#. module: mail
#: model:mail.group,name:mail.group_hr_policies
msgid "HR Policies"
msgstr ""
msgstr "HR Emberi erőforrás menedzsment házirend"
#. module: mail
#: selection:res.partner,notification_email_send:0
msgid "Emails only"
msgstr ""
msgstr "Kizárólag e-mailek"
#. module: mail
#: model:ir.actions.client,name:mail.action_mail_inbox_feeds
@@ -1708,35 +1769,35 @@ msgstr "Beérkezett üzenetek"
#: code:addons/mail/static/src/xml/mail.xml:58
#, python-format
msgid "File"
msgstr ""
msgstr "Fájl"
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/many2many_tags_email.js:63
#, python-format
msgid "Please complete partner's informations and Email"
msgstr ""
msgstr "Kérem egészítse ki a partner információkat és e-mailjét"
#. module: mail
#: model:ir.actions.act_window,name:mail.action_view_message_subtype
#: model:ir.ui.menu,name:mail.menu_message_subtype
msgid "Subtypes"
msgstr ""
msgstr "Altípusok"
#. module: mail
#: model:ir.model,name:mail.model_mail_alias
msgid "Email Aliases"
msgstr ""
msgstr "e-amil álnevek"
#. module: mail
#: field:mail.group,image_small:0
msgid "Small-sized photo"
msgstr ""
msgstr "Kis-méretű fotó"
#. module: mail
#: help:mail.mail,reply_to:0
msgid "Preferred response address for the message"
msgstr ""
msgstr "Előnyben részesített válasz cím ehhez az üzenethez"
#~ msgid "Open Attachments"
#~ msgstr "Mellékletek megnyitása"
+2 -2
View File
@@ -310,8 +310,8 @@ class mail_message(osv.Model):
partner_tree = dict((partner[0], partner) for partner in partners)
# 2. Attachments as SUPERUSER, because could receive msg and attachments for doc uid cannot see
attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname'], context=context)
attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname']}) for attachment in attachments)
attachments = ir_attachment_obj.read(cr, SUPERUSER_ID, list(attachment_ids), ['id', 'datas_fname', 'name'], context=context)
attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname'], 'name': attachment['name']}) for attachment in attachments)
# 3. Update message dictionaries
for message_dict in messages:
+1 -1
View File
@@ -773,7 +773,7 @@ class mail_thread(osv.AbstractModel):
msg_dict['author_id'] = author_ids[0]
else:
msg_dict['email_from'] = message.get('from')
partner_ids = self._message_find_partners(cr, uid, message, ['From', 'To', 'Cc'], context=context)
partner_ids = self._message_find_partners(cr, uid, message, ['To', 'Cc'], context=context)
msg_dict['partner_ids'] = [(4, partner_id) for partner_id in partner_ids]
if 'Date' in message:
+2 -2
View File
@@ -104,8 +104,8 @@ openerp.mail = function (session) {
// returns the file type of a file based on its extension
// As it only looks at the extension it is quite approximative.
filetype: function(url){
url = url.filename || url;
var tokens = (url+'').split('.');
var url = url && url.filename || url;
var tokens = typeof url == 'string' ? url.split('.') : [];
if(tokens.length <= 1){
return 'unknown';
}
+25 -16
View File
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2011-01-31 14:00+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-15 16:10+0000\n"
"Last-Translator: krnkris <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: 2012-12-22 05:59+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: marketing
#: model:ir.model,name:marketing.model_marketing_config_settings
msgid "marketing.config.settings"
msgstr ""
msgstr "marketing.config.settings"
#. module: marketing
#: help:marketing.config.settings,module_marketing_campaign_crm_demo:0
@@ -28,12 +28,15 @@ msgid ""
"Campaigns.\n"
" This installs the module marketing_campaign_crm_demo."
msgstr ""
"Demó adatok telepítése mint érdeklődések, kampányok és szakaszok a Marketing "
"kampányokhoz.\n"
" Ez a marketing_campaign_crm_demo modult telepíti.."
#. module: marketing
#: model:ir.actions.act_window,name:marketing.action_marketing_configuration
#: view:marketing.config.settings:0
msgid "Configure Marketing"
msgstr ""
msgstr "Értékesítés beállítás"
#. module: marketing
#: view:crm.lead:0
@@ -44,47 +47,47 @@ msgstr "Marketing"
#. module: marketing
#: field:marketing.config.settings,module_marketing_campaign:0
msgid "Marketing campaigns"
msgstr ""
msgstr "Értékesítési kampány"
#. module: marketing
#: view:marketing.config.settings:0
msgid "or"
msgstr ""
msgstr "vagy"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Campaigns"
msgstr ""
msgstr "Kampányok"
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_manager
msgid "Manager"
msgstr ""
msgstr "Igazgató"
#. module: marketing
#: model:res.groups,name:marketing.group_marketing_user
msgid "User"
msgstr ""
msgstr "Felhasználó"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Campaigns Settings"
msgstr ""
msgstr "Kampány beállítások"
#. module: marketing
#: field:marketing.config.settings,module_crm_profiling:0
msgid "Track customer profile to focus your campaigns"
msgstr ""
msgstr "Vevő profil nyomonkövetése a kampányra összpontosítva"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Cancel"
msgstr ""
msgstr "Mégsem"
#. module: marketing
#: view:marketing.config.settings:0
msgid "Apply"
msgstr ""
msgstr "Alkalmaz"
#. module: marketing
#: help:marketing.config.settings,module_marketing_campaign:0
@@ -94,6 +97,10 @@ msgid ""
"CRM leads.\n"
" This installs the module marketing_campaign."
msgstr ""
"Marketing kampányokon keresztüli érdeklődés automatizálást biztosít.\n"
" Kampányt meg lehet határozni valójában bármely forrásból, "
"nem csak a CMR érdeklődésekből.\n"
" Ez a marketing_campaign modult telepíti."
#. module: marketing
#: help:marketing.config.settings,module_crm_profiling:0
@@ -101,11 +108,13 @@ msgid ""
"Allows users to perform segmentation within partners.\n"
" This installs the module crm_profiling."
msgstr ""
"A felhasználóknak engedélyezi a partnerek kiválogatását.\n"
" Ez telepíti a crm_profiling modult."
#. module: marketing
#: field:marketing.config.settings,module_marketing_campaign_crm_demo:0
msgid "Demo data for marketing campaigns"
msgstr ""
msgstr "Demo adatok a merketing kampányhoz"
#~ msgid "Configure Your Marketing Application"
#~ msgstr "Marketing alkalmazásainak beállítása"
+131 -49
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2011-02-04 14:42+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-15 12:34+0000\n"
"Last-Translator: krnkris <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: 2012-12-22 06:01+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-16 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -31,16 +31,18 @@ msgstr "Előző tevékenység"
#, python-format
msgid "The current step for this item has no email or report to preview."
msgstr ""
"Ennek a tételnek az aktuális lépéséhez nincs előnézeti e-mail vagy jelentés."
#. module: marketing_campaign
#: constraint:marketing.campaign.transition:0
msgid "The To/From Activity of transition must be of the same Campaign "
msgstr ""
"A tól/hoz átvezetési tevékenységnek ugyanahhoz a kampányhoz kell tartoznia. "
#. module: marketing_campaign
#: selection:marketing.campaign.transition,trigger:0
msgid "Time"
msgstr ""
msgstr "Idő"
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
@@ -62,16 +64,19 @@ msgid ""
"reached this point has generated a certain revenue. You can get revenue "
"statistics in the Reporting section"
msgstr ""
"Állítson be elvárt jövedelmet, ha figyelembe akarja venni amikor az egyes "
"kampány termékek elérik ezt a szintet akkor azok bevételt generálnak. El "
"tudja érni a bevétel statisztikát a Jelentések részen."
#. module: marketing_campaign
#: field:marketing.campaign.transition,trigger:0
msgid "Trigger"
msgstr ""
msgstr "Indítás"
#. module: marketing_campaign
#: view:marketing.campaign:0
msgid "Follow-Up"
msgstr ""
msgstr "Fizetési emlékeztető"
#. module: marketing_campaign
#: field:campaign.analysis,count:0
@@ -89,7 +94,7 @@ msgstr "Kampányszerkesztő"
#: view:marketing.campaign.segment:0
#: selection:marketing.campaign.segment,state:0
msgid "Running"
msgstr ""
msgstr "Folyamatban lévő"
#. module: marketing_campaign
#: model:email.template,body_html:marketing_campaign.email_template_3
@@ -97,6 +102,7 @@ msgid ""
"Hi, we are delighted to let you know that you have entered the select circle "
"of our Gold Partners"
msgstr ""
"Helló, mi örömmel tudatjuk, hogy bekerül az arany kiválasztott tagok körébe"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -112,6 +118,7 @@ msgstr "Tárgy"
#: view:marketing.campaign.segment:0
msgid "Sync mode: only records created after last sync"
msgstr ""
"Szinkronizációs mód: csak a legutóbbi szinkronizlás után létrehozott rekordok"
#. module: marketing_campaign
#: help:marketing.campaign.activity,condition:0
@@ -125,6 +132,15 @@ msgid ""
" - transitions: list of campaign transitions outgoing from this activity\n"
"...- re: Python regular expression module"
msgstr ""
"Python kifejezés annak eldöntésére, hogy a tevékenység végrehajtható, egyéb "
"esetben törölve vagy visszavonva lesz. A kifejezés a használhatja a "
"következő [böngészhető] változókat:\n"
" - tevékenység: a vállalat tevékenysége\n"
" - feladatelemek: a kampány feladatelem\n"
" - forrás: ezt a kampányt képviselő forrás termék\n"
" - átmeneti időszakok: kampány átmeneti időszak listák amik ebből a "
"tevékenységből származnak\n"
"...- re: Python általános kifejező modul"
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -145,11 +161,13 @@ msgid ""
"The campaign cannot be started. It does not have any starting activity. "
"Modify campaign's activities to mark one as the starting point."
msgstr ""
"A kampány nem indítható el. Nincs semmilyen elindítható tevékenysége. "
"Módosítsa a kampány tevékenységet, legyen egy induló pontja."
#. module: marketing_campaign
#: help:marketing.campaign.activity,email_template_id:0
msgid "The email to send when this activity is activated"
msgstr ""
msgstr "A küldendő email a tevékenység aktiválása után"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -176,12 +194,12 @@ msgstr "Visszaállítás"
#. module: marketing_campaign
#: help:marketing.campaign,object_id:0
msgid "Choose the resource on which you want this campaign to be run"
msgstr ""
msgstr "Válasszon forrást amelyen a kampányt futtatni szeretné"
#. module: marketing_campaign
#: model:ir.actions.client,name:marketing_campaign.action_client_marketing_menu
msgid "Open Marketing Menu"
msgstr ""
msgstr "Merketing menü megnyitása"
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_last_date:0
@@ -199,6 +217,8 @@ msgid ""
"Date on which this segment was synchronized last time (automatically or "
"manually)"
msgstr ""
"Dátum amelyen a szakasz utoljára szinkronizálva lett (automatikusan vagy "
"kézzel)"
#. module: marketing_campaign
#: selection:campaign.analysis,state:0
@@ -225,16 +245,25 @@ msgid ""
"Normal - the campaign runs normally and automatically sends all emails and "
"reports (be very careful with this mode, you're live!)"
msgstr ""
"Teszt - Ez közvetlenül, automatikusan létrehozza és futtatja az összes "
"tevékenységet (anélkül, hogy az átmenetek késésére várakozna) de nem küld e-"
"maileket és nem készít jelentéseket.\n"
"Valós idejű teszt - Ez közvetlenül létrehozza és futtatja tevékenységeket de "
"nem küld e-maileket és nem készít jelentéseket.\n"
"Kézi visszaigazolással - a kampány normál futása, de a felhasználónak kézzel "
"kell érvényesítenie a feladatelemet.\n"
"Normál - a kampány normál futása és automatikus email küldések és jelentés "
"készítések (legyen nagyon óvatos ezzel a móddal, élőben tesz mindent!)"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_run:0
msgid "Initial start date of this segment."
msgstr ""
msgstr "Elsődleges indítási dátuma ennek a szakasznak."
#. module: marketing_campaign
#: view:res.partner:0
msgid "False"
msgstr ""
msgstr "Hamis"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -251,7 +280,7 @@ msgstr "Kampány"
#. module: marketing_campaign
#: model:email.template,body_html:marketing_campaign.email_template_1
msgid "Hello, you will receive your welcome pack via email shortly."
msgstr ""
msgstr "Helló, nemsokára emailben megkapja az üdvözlő csomagot."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -266,7 +295,7 @@ msgstr "Szakasz"
#: code:addons/marketing_campaign/marketing_campaign.py:214
#, python-format
msgid "You cannot duplicate a campaign, Not supported yet."
msgstr ""
msgstr "Nem sokszorozhat kampányt, még nem támogatott."
#. module: marketing_campaign
#: help:marketing.campaign.activity,type:0
@@ -279,11 +308,20 @@ msgid ""
"of the resource record\n"
" "
msgstr ""
"A művelet típusa melyet elvégez, amikor ehhez a tevékenységhez bevisz egy "
"tételt, úgy mint:\n"
" - Email: email küldése az előre definiált sablonból\n"
" - Jelentés: a erőforrás tételnél meghatározott jelentés nyomtatása és "
"elmentése egy konkrét könyvtárba\n"
" - Egyedi művelet: előre meghatározott művelet végrehajtása, pl.: "
"erőforrás rekord mező módosítása\n"
" "
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_next_sync:0
msgid "Next time the synchronization job is scheduled to run automatically"
msgstr ""
"Következő időpont a munka szinkronizálására amikor az automatikusan futni fog"
#. module: marketing_campaign
#: selection:marketing.campaign.transition,interval_type:0
@@ -301,7 +339,7 @@ msgstr "Partner"
#. module: marketing_campaign
#: model:ir.filters,name:marketing_campaign.filter0
msgid "Partners"
msgstr ""
msgstr "Partnerek"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -312,7 +350,7 @@ msgstr "Marketing jelentések"
#: selection:marketing.campaign,state:0
#: selection:marketing.campaign.segment,state:0
msgid "New"
msgstr ""
msgstr "Új"
#. module: marketing_campaign
#: sql_constraint:marketing.campaign.transition:0
@@ -322,7 +360,7 @@ msgstr "Az intervallumnak pozitívnak vagy 0-nak kell lennie"
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
msgid "Email"
msgstr ""
msgstr "E-mail"
#. module: marketing_campaign
#: field:marketing.campaign,name:0
@@ -335,7 +373,7 @@ msgstr "Név"
#. module: marketing_campaign
#: field:marketing.campaign.workitem,res_name:0
msgid "Resource Name"
msgstr ""
msgstr "Erőforrás neve"
#. module: marketing_campaign
#: field:marketing.campaign.segment,sync_mode:0
@@ -346,7 +384,7 @@ msgstr "Szinkronizálási mód"
#: view:marketing.campaign:0
#: view:marketing.campaign.segment:0
msgid "Run"
msgstr ""
msgstr "Futtatás"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
@@ -357,12 +395,12 @@ msgstr "Előző tevékenységek"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_2
msgid "Congratulations! You are now a Silver Partner!"
msgstr ""
msgstr "Gratulálok! Ön mostmár Ezüst partner!"
#. module: marketing_campaign
#: help:marketing.campaign.segment,date_done:0
msgid "Date this segment was last closed or cancelled."
msgstr ""
msgstr "Dátum amikor ez a szakasz utoljára le volt zárva vagy visszavonva."
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -417,6 +455,9 @@ msgid ""
"reached this point has entailed a certain cost. You can get cost statistics "
"in the Reporting section"
msgstr ""
"Változó költség beállítása ha úgy dönt, hogy mindegyik kampány tétel amikor "
"eléri ezt a szintet akkor maga után von egy bizonyos költséget. Megkaphatja "
"a költség statisztikát a Jelentés résznél"
#. module: marketing_campaign
#: selection:marketing.campaign.transition,interval_type:0
@@ -434,6 +475,9 @@ msgid ""
"By activating this option, workitems that aren't executed because the "
"condition is not met are marked as cancelled instead of being deleted."
msgstr ""
"Ennek a lehetőségnek a aktiválásával, feladatelemek melyek a körülmények "
"miatt nem végrehajthatóak azok visszavontak ahelyett, hogy törölte volna "
"azokat."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -444,7 +488,7 @@ msgstr "Kivételek"
#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup
#: field:res.partner,workitem_ids:0
msgid "Workitems"
msgstr ""
msgstr "Feladatelemek"
#. module: marketing_campaign
#: field:marketing.campaign,fixed_cost:0
@@ -477,6 +521,23 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Kattintson marketing kampány létrehozásához.\n"
" </p><p>\n"
" OpenERP marketing kampánya lehetővé teszi a kiállításaihoz\n"
" az automatikus kommunikációt. Szakaszokat tud meghatározni \n"
" (körülmények megadásával) az érdeklődőkhöz és a partnerekhez \n"
" a kampány elvégzéséhez.\n"
" </p><p>\n"
" Egy kampánynak több tevékenysége lehet mint: email küldés, "
"levél\n"
" nyomtatás, csoporthoz fűzés, stb. ezek a tevékenységek "
"kapcsolhatóak\n"
" egy sajátos helyzethez; kapcsolati űrlap, 10 nappal az első "
"kapcsolat\n"
" felvételtől, ha az érdeklődés még nincs lezárva, stb.\n"
" </p>\n"
" "
#. module: marketing_campaign
#: field:marketing.campaign.transition,interval_nbr:0
@@ -507,6 +568,10 @@ msgid ""
"for reporting purposes, via the Campaign Analysis or Campaign Follow-up "
"views."
msgstr ""
"A létrehozott feladatelemek a rekordhoz tartozó partnerhez lesznek csatlova. "
"Ha a rekord a partnerrel megegyezik akkor a mezőt hagyja üresen. Ez hasznos "
"jelentés céljából, a Kampány analízis elemzéshez vagy a Kampány nyomkövetés "
"nézetben."
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -535,6 +600,7 @@ msgstr "Tesztmód"
#: selection:marketing.campaign.segment,sync_mode:0
msgid "Only records modified after last sync (no duplicates)"
msgstr ""
"Csak az utolsó szinkronizálás óta módosult rekordok (nincs többszörözés)"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
@@ -549,7 +615,7 @@ msgstr "Kampánystatisztikák"
#. module: marketing_campaign
#: help:marketing.campaign.activity,server_action_id:0
msgid "The action to perform when this activity is activated"
msgstr ""
msgstr "Az elvégzett művelet miután tevékenység aktiválásra került"
#. module: marketing_campaign
#: field:marketing.campaign,partner_field_id:0
@@ -574,6 +640,13 @@ msgid ""
"records which have the same value for the unique field as other records that "
"already entered the campaign."
msgstr ""
"Még egy kritérium meghatározásának hozzáadása a szűrőhöz, amikor egy új "
"rekordot választ a kampányba való beillesztéshez \"Nincs többszörözés\" "
"megakadályozva olyan rekord választását melyek már előzőleg be lettek "
"illesztve a kampányba. Ha a kampányban van \"Egyedi mező\" beállítva, "
"\"nincs többszörözés\" akkor is megakadályozza olyan rekord kiválasztását, "
"melynek ugyanaz az értéke az egyedi mezőre mint a másik rekordnak, mely már "
"be lett írva a kampányba."
#. module: marketing_campaign
#: selection:marketing.campaign,mode:0
@@ -599,7 +672,7 @@ msgstr "Tervezet"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
msgid "Marketing Campaign Activity"
msgstr ""
msgstr "marketing kampány tevékenység"
#. module: marketing_campaign
#: view:marketing.campaign.workitem:0
@@ -616,7 +689,7 @@ msgstr "Előnézet"
#: view:marketing.campaign.workitem:0
#: field:marketing.campaign.workitem,state:0
msgid "Status"
msgstr ""
msgstr "Állapot"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -639,6 +712,9 @@ msgid ""
"An activity with a signal can be called programmatically. Be careful, the "
"workitem is always created when a signal is sent"
msgstr ""
"Egy tevékenység jeladóval ellátva úgy is nevezhető mint programozott "
"végrehajtó. Vigyázzon, a feladatelem mindig létre lesz hozva, ha a jelet "
"elküldik"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -646,7 +722,7 @@ msgstr ""
#: view:marketing.campaign.workitem:0
#: selection:marketing.campaign.workitem,state:0
msgid "To Do"
msgstr ""
msgstr "Teendő"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -656,17 +732,17 @@ msgstr "Június"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_email_template
msgid "Email Templates"
msgstr ""
msgstr "E-mail sablonok"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Sync mode: all records"
msgstr ""
msgstr "Szinkronizációs mód: minden rekord"
#. module: marketing_campaign
#: selection:marketing.campaign.segment,sync_mode:0
msgid "All records (no duplicates)"
msgstr ""
msgstr "Minden rekord (nincs sokszorozás)"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -696,7 +772,7 @@ msgstr "Jelentés generálódik, amikor ez a tevékenység aktiválódott"
#. module: marketing_campaign
#: field:marketing.campaign,unique_field_id:0
msgid "Unique Field"
msgstr ""
msgstr "Egyedi mező"
#. module: marketing_campaign
#: selection:campaign.analysis,state:0
@@ -729,7 +805,7 @@ msgstr "Kivitelezés dátuma"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
msgid "Campaign Workitem"
msgstr ""
msgstr "Kampány feladatelem"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
@@ -739,7 +815,7 @@ msgstr "Kampánytevékenység"
#. module: marketing_campaign
#: help:marketing.campaign.activity,report_directory_id:0
msgid "This folder is used to store the generated reports"
msgstr ""
msgstr "Ez a könyvtár a létrehozott jelentések tárolására szolgál"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:136
@@ -781,12 +857,12 @@ msgstr "Folyamat"
#: selection:marketing.campaign.transition,trigger:0
#, python-format
msgid "Cosmetic"
msgstr ""
msgstr "Kozmetika"
#. module: marketing_campaign
#: help:marketing.campaign.transition,trigger:0
msgid "How is the destination workitem triggered"
msgstr ""
msgstr "Ahogy a végső feladatelem kapcsolva lesz"
#. module: marketing_campaign
#: view:campaign.analysis:0
@@ -809,7 +885,7 @@ msgstr "Nem támogatott művelet"
#: view:marketing.campaign.segment:0
#: view:marketing.campaign.workitem:0
msgid "Cancel"
msgstr ""
msgstr "Visszavonás"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -820,6 +896,7 @@ msgstr "Zárás"
#: constraint:marketing.campaign.segment:0
msgid "Model of filter must be same as resource model of Campaign "
msgstr ""
"A szűrő modelljének ugyanannak kell lennie mint a kampány erőforrás modellje "
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
@@ -835,12 +912,12 @@ msgstr "Erőforrás ID"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
msgid "Campaign Transition"
msgstr ""
msgstr "Kampány átmenet"
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Marketing Campaign Segment"
msgstr ""
msgstr "Marketing kampány szakasz"
#. module: marketing_campaign
#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
@@ -854,7 +931,7 @@ msgstr "Szegmensek"
#. module: marketing_campaign
#: field:marketing.campaign.activity,keep_if_condition_not_met:0
msgid "Don't Delete Workitems"
msgstr ""
msgstr "Ne törölje a feladatelemeket"
#. module: marketing_campaign
#: view:marketing.campaign.activity:0
@@ -876,7 +953,7 @@ msgstr "Tevékenységek"
#. module: marketing_campaign
#: selection:marketing.campaign,mode:0
msgid "With Manual Confirmation"
msgstr ""
msgstr "Kézi visszaigazolással"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -891,7 +968,7 @@ msgstr "Típus"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_3
msgid "Congratulations! You are now one of our Gold Partners!"
msgstr ""
msgstr "Gratulálunk! Most már Ön is egy Arany tagsággal rendelkezik!"
#. module: marketing_campaign
#: help:marketing.campaign,unique_field_id:0
@@ -910,7 +987,7 @@ msgstr ""
#: code:addons/marketing_campaign/marketing_campaign.py:529
#, python-format
msgid "After %(interval_nbr)d %(interval_type)s"
msgstr ""
msgstr "Után %(interval_nbr)d %(interval_type)s"
#. module: marketing_campaign
#: model:ir.model,name:marketing_campaign.model_marketing_campaign
@@ -937,7 +1014,7 @@ msgstr "Február"
#: view:marketing.campaign.workitem:0
#: field:marketing.campaign.workitem,object_id:0
msgid "Resource"
msgstr ""
msgstr "Erőforrás"
#. module: marketing_campaign
#: help:marketing.campaign,fixed_cost:0
@@ -946,11 +1023,15 @@ msgid ""
"revenue on each campaign activity. Cost and Revenue statistics are included "
"in Campaign Reporting."
msgstr ""
"fix költség a kampány futtatásához. Lehetősége van megadni változó költséget "
"is és bevételt mindegyik kampány tevékenységhez. Költség és bevétel "
"statisztikák a Kampány jelentéseknél."
#. module: marketing_campaign
#: view:marketing.campaign.segment:0
msgid "Sync mode: only records updated after last sync"
msgstr ""
"Szinkronizálási mód: csak az utolsó szinkronizálás óta frissített rekordok"
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:793
@@ -961,12 +1042,12 @@ msgstr "E-mail előnézet"
#. module: marketing_campaign
#: field:marketing.campaign.activity,signal:0
msgid "Signal"
msgstr ""
msgstr "Jel"
#. module: marketing_campaign
#: help:marketing.campaign.workitem,date:0
msgid "If date is not set, this workitem has to be run manually"
msgstr ""
msgstr "Ha nincs beállítva a dátum, ezt a feladatelemet kézzel kell futtatni"
#. module: marketing_campaign
#: selection:campaign.analysis,month:0
@@ -978,6 +1059,7 @@ msgstr "Április"
#, python-format
msgid "The campaign cannot be marked as done before all segments are closed."
msgstr ""
"Minden szakasz lezárása előtt a kampányt nem lehet elvégzettnek jelölni."
#. module: marketing_campaign
#: view:marketing.campaign:0
@@ -1006,7 +1088,7 @@ msgstr ""
#: code:addons/marketing_campaign/marketing_campaign.py:136
#, python-format
msgid "The campaign cannot be started. There are no activities in it."
msgstr ""
msgstr "a kampány nem indítható el. Nincs tevékenység benne."
#. module: marketing_campaign
#: field:marketing.campaign.segment,date_next_sync:0
@@ -1017,7 +1099,7 @@ msgstr "Következő szinkronizáció"
#: model:email.template,body_html:marketing_campaign.email_template_2
msgid ""
"Hi, we are delighted to welcome you among our Silver Partners as of today!"
msgstr ""
msgstr "Helló, örömmel köszöntjük az Ezüst Partnereink között a mai naptól!"
#. module: marketing_campaign
#: field:marketing.campaign.segment,ir_filter_id:0
@@ -1032,7 +1114,7 @@ msgstr "Összes"
#. module: marketing_campaign
#: selection:marketing.campaign.segment,sync_mode:0
msgid "Only records created after last sync"
msgstr ""
msgstr "Csak az utolsó szinkronizáció után létrehozott rekordok"
#. module: marketing_campaign
#: field:marketing.campaign.activity,variable_cost:0
@@ -1042,7 +1124,7 @@ msgstr "Változó költség"
#. module: marketing_campaign
#: model:email.template,subject:marketing_campaign.email_template_1
msgid "Welcome to the OpenERP Partner Channel!"
msgstr ""
msgstr "Köszöntjük az OpenERP Partnereknél!"
#. module: marketing_campaign
#: view:campaign.analysis:0
+65 -13
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2011-01-21 15:22+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-02-13 12:33+0000\n"
"Last-Translator: krnkris <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: 2012-12-22 05:59+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_8
@@ -28,6 +28,14 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Köszönjük érdeklődésedet és feliratkozásodat a műszaki "
"képzésre.</p>\n"
" Egyéb, további felmerülő kérdésekben állunk rendelkezésre. "
"Nagyon köszönjük együttműködésedet.</p>\n"
" <p>Ha további információra van szükség, küldj választ erre az "
"üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapata,</p>"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
@@ -37,7 +45,7 @@ msgstr "Marketingkampány demojelentés"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_8
msgid "Thanks for subscribing to technical training"
msgstr ""
msgstr "Köszönjük a feliratkozást a műszaki képzésre"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_3
@@ -49,6 +57,12 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Köszönjük érdeklődésedet és feliratkozásodat az OpenERP "
"felfedező napra.</p>\n"
" <p>Ha további információra van szükség, küldj válasz választ "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapat,</p>"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
@@ -58,7 +72,7 @@ msgstr "Vállalat :"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_4
msgid "Thanks for buying the OpenERP book"
msgstr ""
msgstr "Köszönjük, hogy megvásárolta az OpenERP könyvet"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_6
@@ -71,16 +85,23 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Van egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
" Az ezüst tagjainknak, mi fizetjük a műszaki oktatást 2013 "
"Júniusában.</p>\n"
" <p>Ha további információra van szükség, küldj válasz választ "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapat,</p>"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_1
msgid "Thanks for showing interest in OpenERP"
msgstr ""
msgstr "Köszönjük érdeklődését az OpenERP iránt"
#. module: marketing_campaign_crm_demo
#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
msgid "Dummy Action"
msgstr ""
msgstr "Látszólagos művelet"
#. module: marketing_campaign_crm_demo
#: report:crm.lead.demo:0
@@ -98,6 +119,13 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>an egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
" Ajánljuk, hogy iratkozzon fel az OpenERP felfedező napra 2013 "
"májusában.</p>\n"
" <p>Ha további információra van szükség, küldj válasz választ "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapat,</p>"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_5
@@ -110,26 +138,33 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>an egy nagyon jó ajánlatunk ami megfelelhet Önnek.\n"
" Az arany partnereknek, mi szervezzük az ingyenes oktatást 2013 "
"Júniusában.</p>\n"
" <p>Ha további információra van szükség, küldj válasz választ "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapat,</p>"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_2
msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
msgstr ""
msgstr "Javasolja a feliratkozást az OpenERP felfedező napra 2013 Májusában"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_3
msgid "Thanks for subscribing to the OpenERP Discovery Day"
msgstr ""
msgstr "Köszönjük, hogy feliratkozott az OpenERP felfedező napra"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_7
msgid "Propose gold partnership to silver partners"
msgstr ""
msgstr "Javasolja az arany partner tagságot az ezüst tagoknak"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_6
msgid "Propose paid training to Silver partners"
msgstr ""
msgstr "Javasolja a költségtérítéses oktatást az Ezüst partnereknek"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_4
@@ -139,6 +174,12 @@ msgid ""
" If any further information required kindly revert back.\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Köszönjük az OpenERP könyv utáni érdeklődését és a "
"vásárlását.</p>\n"
" Ha további információra van szüksége kérjük forduljon hozzánk "
"bizalommal.\n"
" <p>Tisztelettel,OpenERP csapata,</p>"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_7
@@ -150,11 +191,17 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Nagyon jó ajánlatunk van ami illeszkedhet az Ön igényeihez.\n"
" Az Ezüst partnereinknek, Arany tagságot ajánlunk.</p>\n"
" <p>Ha további információra van szükségük, kérjük válaszoljon "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapata,</p>"
#. module: marketing_campaign_crm_demo
#: model:email.template,subject:marketing_campaign_crm_demo.email_template_5
msgid "Propose a free technical training to Gold partners"
msgstr ""
msgstr "Ajánljon ingyenes műszaki oktatást az Arany partnereknek"
#. module: marketing_campaign_crm_demo
#: model:email.template,body_html:marketing_campaign_crm_demo.email_template_1
@@ -166,3 +213,8 @@ msgid ""
"reply to this message.</p>\n"
" <p>Regards,OpenERP Team,</p>"
msgstr ""
"<p>Hello,</p>\n"
" <p>Köszönjük az OpenERP iránti őszinte érdeklődését.</p>\n"
" <p>Ha további információra van szükségük, kérjük válaszoljon "
"erre az üzenetre.</p>\n"
" <p>Tisztelettel,OpenERP csapata,</p>"
+11 -12
View File
@@ -31,19 +31,18 @@
I'm Opening that Invoice which is created for "Seagate".
-
!python {model: res.partner}: |
from openerp import netsvc
from openerp.tools.translate import _
invoice_pool = self.pool.get('account.invoice')
partner_pool = self.pool.get('res.partner')
membership_line_pool = self.pool.get('membership.membership_line')
membership_pool = self.pool.get('product.product')
from openerp.tools.translate import _
invoice_pool = self.pool.get('account.invoice')
partner_pool = self.pool.get('res.partner')
membership_line_pool = self.pool.get('membership.membership_line')
membership_pool = self.pool.get('product.product')
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
assert membership_lines, _('Membership is not registrated.')
membership_line = membership_lines[0]
invoice_pool.signal_invoice_open(cr, uid, [membership_line.account_invoice_id.id])
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
assert membership_lines, _('Membership is not registrated.')
membership_line = membership_lines[0]
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', membership_line.account_invoice_id.id, 'invoice_open', cr)
- |
I'm checking "Current membership state" of "Seagate". It is an "Invoiced Member" or not.
-
+3 -7
View File
@@ -27,7 +27,6 @@ from openerp.osv import fields, osv
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP
from openerp.tools import float_compare
from openerp.tools.translate import _
from openerp import netsvc
from openerp import tools
#----------------------------------------------------------
@@ -775,8 +774,7 @@ class mrp_production(osv.osv):
for new_parent_id in new_parent_ids:
stock_mov_obj.write(cr, uid, [raw_product.id], {'move_history_ids': [(4,new_parent_id)]})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production', production_id, 'button_produce_done', cr)
self.signal_button_produce_done(cr, uid, [production_id])
return True
def _costs_generate(self, cr, uid, production):
@@ -844,7 +842,6 @@ class mrp_production(osv.osv):
return True
def _make_production_line_procurement(self, cr, uid, production_line, shipment_move_id, context=None):
wf_service = netsvc.LocalService("workflow")
procurement_order = self.pool.get('procurement.order')
production = production_line.production_id
location_id = production.location_src_id.id
@@ -864,7 +861,7 @@ class mrp_production(osv.osv):
'move_id': shipment_move_id,
'company_id': production.company_id.id,
})
wf_service.trg_validate(uid, procurement_order._name, procurement_id, 'button_confirm', cr)
self.signal_button_confirm(cr, uid, [procurement_id])
return procurement_id
def _make_production_internal_shipment_line(self, cr, uid, production_line, shipment_id, parent_move_id, destination_location_id=False, context=None):
@@ -977,7 +974,6 @@ class mrp_production(osv.osv):
@return: Newly generated Shipment Id.
"""
shipment_id = False
wf_service = netsvc.LocalService("workflow")
uncompute_ids = filter(lambda x:x, [not x.product_lines and x.id or False for x in self.browse(cr, uid, ids, context=context)])
self.action_compute(cr, uid, uncompute_ids, context=context)
for production in self.browse(cr, uid, ids, context=context):
@@ -995,7 +991,7 @@ class mrp_production(osv.osv):
destination_location_id=source_location_id, context=context)
self._make_production_line_procurement(cr, uid, line, shipment_move_id, context=context)
wf_service.trg_validate(uid, 'stock.picking', shipment_id, 'button_confirm', cr)
self.pool.get('stock.picking').signal_button_confirm(cr, uid, [shipment_id])
production.write({'state':'confirmed'}, context=context)
return shipment_id
+1 -3
View File
@@ -24,7 +24,6 @@ from dateutil.relativedelta import relativedelta
from openerp.osv import fields
from openerp.osv import osv
from openerp.tools.translate import _
from openerp import netsvc
class procurement_order(osv.osv):
_inherit = 'procurement.order'
@@ -87,7 +86,6 @@ class procurement_order(osv.osv):
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
production_obj = self.pool.get('mrp.production')
move_obj = self.pool.get('stock.move')
wf_service = netsvc.LocalService("workflow")
procurement_obj = self.pool.get('procurement.order')
for procurement in procurement_obj.browse(cr, uid, ids, context=context):
res_id = procurement.move_id.id
@@ -112,7 +110,7 @@ class procurement_order(osv.osv):
self.write(cr, uid, [procurement.id], {'state': 'running', 'production_id': produce_id})
bom_result = production_obj.action_compute(cr, uid,
[produce_id], properties=[x.id for x in procurement.property_ids])
wf_service.trg_validate(uid, 'mrp.production', produce_id, 'button_confirm', cr)
production_obj.signal_button_confirm(cr, uid, [produce_id])
if res_id:
move_obj.write(cr, uid, [res_id],
{'location_id': procurement.location_id.id})
+7 -10
View File
@@ -21,7 +21,6 @@
from openerp.osv import fields
from openerp.osv import osv
from openerp import netsvc
class StockMove(osv.osv):
@@ -45,7 +44,6 @@ class StockMove(osv.osv):
move_obj = self.pool.get('stock.move')
procurement_obj = self.pool.get('procurement.order')
product_obj = self.pool.get('product.product')
wf_service = netsvc.LocalService("workflow")
processed_ids = [move.id]
if move.product_id.supply_method == 'produce' and move.product_id.procure_method == 'make_to_order':
bis = bom_obj.search(cr, uid, [
@@ -90,16 +88,17 @@ class StockMove(osv.osv):
'procure_method': prodobj.procure_method,
'move_id': mid,
})
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
procurement_obj.signal_button_confirm(cr, uid, [proc_id])
move_obj.write(cr, uid, [move.id], {
'location_dest_id': move.location_id.id, # dummy move for the kit
'auto_validate': True,
'picking_id': False,
'state': 'confirmed'
})
for m in procurement_obj.search(cr, uid, [('move_id','=',move.id)], context):
wf_service.trg_validate(uid, 'procurement.order', m, 'button_confirm', cr)
wf_service.trg_validate(uid, 'procurement.order', m, 'button_wait_done', cr)
procurement_ids = procurement_obj.search(cr, uid, [('move_id','=',move.id)], context)
procurement_obj.signal_button_confirm(cr, uid, procurement_ids)
procurement_obj.signal_button_wait_done(cr, uid, procurement_ids)
return processed_ids
def action_consume(self, cr, uid, ids, product_qty, location_id=False, context=None):
@@ -110,7 +109,6 @@ class StockMove(osv.osv):
"""
res = []
production_obj = self.pool.get('mrp.production')
wf_service = netsvc.LocalService("workflow")
for move in self.browse(cr, uid, ids):
move.action_confirm(context)
new_moves = super(StockMove, self).action_consume(cr, uid, [move.id], product_qty, location_id, context=context)
@@ -118,7 +116,7 @@ class StockMove(osv.osv):
for prod in production_obj.browse(cr, uid, production_ids, context=context):
if prod.state == 'confirmed':
production_obj.force_production(cr, uid, [prod.id])
wf_service.trg_validate(uid, 'mrp.production', prod.id, 'button_produce', cr)
production_obj.signal_button_produce(cr, uid, production_ids)
for new_move in new_moves:
if new_move == move.id:
#This move is already there in move lines of production order
@@ -135,14 +133,13 @@ class StockMove(osv.osv):
"""
res = []
production_obj = self.pool.get('mrp.production')
wf_service = netsvc.LocalService("workflow")
for move in self.browse(cr, uid, ids, context=context):
new_moves = super(StockMove, self).action_scrap(cr, uid, [move.id], product_qty, location_id, context=context)
#If we are not scrapping our whole move, tracking and lot references must not be removed
#self.write(cr, uid, [move.id], {'prodlot_id': False, 'tracking_id': False})
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for prod_id in production_ids:
wf_service.trg_validate(uid, 'mrp.production', prod_id, 'button_produce', cr)
production_obj.signal_button_produce(cr, uid, [prod_id])
for new_move in new_moves:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
res.append(new_move)
+24 -30
View File
@@ -118,16 +118,15 @@ class mrp_production_workcenter_line(osv.osv):
@param action: Action to perform.
@return: Nothing
"""
wf_service = netsvc.LocalService("workflow")
prod_obj_pool = self.pool.get('mrp.production')
oper_obj = self.browse(cr, uid, ids)[0]
prod_obj = oper_obj.production_id
if action == 'start':
if prod_obj.state =='confirmed':
prod_obj_pool.force_production(cr, uid, [prod_obj.id])
wf_service.trg_validate(uid, 'mrp.production', prod_obj.id, 'button_produce', cr)
prod_obj_pool.signal_button_produce(cr, uid, [prod_obj.id])
elif prod_obj.state =='ready':
wf_service.trg_validate(uid, 'mrp.production', prod_obj.id, 'button_produce', cr)
prod_obj_pool.signal_button_produce(cr, uid, [prod_obj.id])
elif prod_obj.state =='in_production':
return
else:
@@ -143,7 +142,7 @@ class mrp_production_workcenter_line(osv.osv):
for production in prod_obj_pool.browse(cr, uid, [prod_obj.id], context= None):
if production.move_lines or production.move_created_ids:
prod_obj_pool.action_produce(cr,uid, production.id, production.product_qty, 'consume_produce', context = None)
wf_service.trg_validate(uid, 'mrp.production', oper_obj.production_id.id, 'button_produce_done', cr)
prod_obj_pool.signal_button_produce_done(cr, uid, [oper_obj.production_id.id])
return
def write(self, cr, uid, ids, vals, context=None, update=True):
@@ -228,23 +227,21 @@ class mrp_production(osv.osv):
@return: Super method
"""
obj = self.browse(cr, uid, ids)[0]
wf_service = netsvc.LocalService("workflow")
workcenter_pool = self.pool.get('mrp.production.workcenter.line')
for workcenter_line in obj.workcenter_lines:
if workcenter_line.state == 'draft':
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr)
workcenter_pool.signal_button_start_working(cr, uid, [workcenter_line.id])
workcenter_pool.signal_button_done(cr, uid, [workcenter_line.id])
return super(mrp_production,self).action_production_end(cr, uid, ids)
def action_in_production(self, cr, uid, ids):
""" Changes state to In Production and writes starting date.
@return: True
"""
obj = self.browse(cr, uid, ids)[0]
workcenter_pool = self.pool.get('mrp.production.workcenter.line')
wf_service = netsvc.LocalService("workflow")
for prod in self.browse(cr, uid, ids):
if prod.workcenter_lines:
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', prod.workcenter_lines[0].id, 'button_start_working', cr)
workcenter_pool.signal_button_start_working(cr, uid, [prod.workcenter_lines[0].id])
return super(mrp_production,self).action_in_production(cr, uid, ids)
def action_cancel(self, cr, uid, ids, context=None):
@@ -252,9 +249,8 @@ class mrp_production(osv.osv):
@return: Super method
"""
obj = self.browse(cr, uid, ids,context=context)[0]
wf_service = netsvc.LocalService("workflow")
for workcenter_line in obj.workcenter_lines:
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_cancel', cr)
workcenter_pool.signal_button_cancel(cr, uid, [workcenter_line.id])
return super(mrp_production,self).action_cancel(cr,uid,ids,context=context)
def _compute_planned_workcenter(self, cr, uid, ids, context=None, mini=False):
@@ -503,35 +499,34 @@ class mrp_operations_operation(osv.osv):
return super(mrp_operations_operation, self).write(cr, uid, ids, vals, context=context)
def create(self, cr, uid, vals, context=None):
wf_service = netsvc.LocalService('workflow')
workcenter_pool = self.pool.get('mrp.production.workcenter.line')
code_ids=self.pool.get('mrp_operations.operation.code').search(cr,uid,[('id','=',vals['code_id'])])
code=self.pool.get('mrp_operations.operation.code').browse(cr, uid, code_ids, context=context)[0]
wc_op_id=self.pool.get('mrp.production.workcenter.line').search(cr,uid,[('workcenter_id','=',vals['workcenter_id']),('production_id','=',vals['production_id'])])
wc_op_id=workcenter_pool.search(cr,uid,[('workcenter_id','=',vals['workcenter_id']),('production_id','=',vals['production_id'])])
if code.start_stop in ('start','done','pause','cancel','resume'):
if not wc_op_id:
production_obj=self.pool.get('mrp.production').browse(cr, uid, vals['production_id'], context=context)
wc_op_id.append(self.pool.get('mrp.production.workcenter.line').create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
wc_op_id.append(workcenter_pool.create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
if code.start_stop=='start':
self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_start_working', cr)
workcenter_pool.action_start_working(cr,uid,wc_op_id)
workcenter_pool.signal_button_start_working(cr, uid, [wc_op_id[0]])
if code.start_stop=='done':
self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_done', cr)
workcenter_pool.action_done(cr,uid,wc_op_id)
workcenter_pool.signal_button_done(cr, uid, [wc_op_id[0]])
self.pool.get('mrp.production').write(cr,uid,vals['production_id'],{'date_finished':datetime.now().strftime('%Y-%m-%d %H:%M:%S')})
if code.start_stop=='pause':
self.pool.get('mrp.production.workcenter.line').action_pause(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_pause', cr)
workcenter_pool.action_pause(cr,uid,wc_op_id)
workcenter_pool.signal_button_pause(cr, uid, [wc_op_id[0]])
if code.start_stop=='resume':
self.pool.get('mrp.production.workcenter.line').action_resume(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_resume', cr)
workcenter_pool.action_resume(cr,uid,wc_op_id)
workcenter_pool.signal_button_resume(cr, uid, [wc_op_id[0]])
if code.start_stop=='cancel':
self.pool.get('mrp.production.workcenter.line').action_cancel(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_cancel', cr)
workcenter_pool.action_cancel(cr,uid,wc_op_id)
workcenter_pool.signal_button_cancel(cr, uid, [wc_op_id[0]])
if not self.check_operation(cr, uid, vals):
return
@@ -549,10 +544,9 @@ class mrp_operations_operation(osv.osv):
return super(mrp_operations_operation, self).create(cr, uid, vals, context=context)
def initialize_workflow_instance(self, cr, uid, context=None):
wf_service = netsvc.LocalService("workflow")
line_ids = self.pool.get('mrp.production.workcenter.line').search(cr, uid, [], context=context)
for line_id in line_ids:
wf_service.trg_create(uid, 'mrp.production.workcenter.line', line_id, cr)
mrp_production_workcenter_line = self.pool.get('mrp.production.workcenter.line')
line_ids = mrp_production_workcenter_line.search(cr, uid, [], context=context)
mrp_production_workcenter_line.create_workflow(cr, uid, line_ids)
return True
_columns={
@@ -39,62 +39,48 @@
Production start on first work center, so I start work operation on first work center.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [order.workcenter_lines[0].id])
-
Now I pause first work operation due to technical fault of work center.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_pause', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_pause(cr, uid, [order.workcenter_lines[0].id])
-
I resume first work operation.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_resume(cr, uid, [order.workcenter_lines[0].id])
-
I cancel first work operation.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_cancel', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_cancel(cr, uid, [order.workcenter_lines[0].id])
-
I reset first work operation and start after resolving techninal fault of work center.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_draft', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_draft(cr, uid, [order.workcenter_lines[0].id])
self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [order.workcenter_lines[0].id])
-
I close first work operation as this work center completed its process.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_done', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_done(cr, uid, [order.workcenter_lines[0].id])
-
Now I close other operations one by one which are in start state.
-
!python {model: mrp.production}: |
from openerp import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
for work_line in order.workcenter_lines[1:]:
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_start_working', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_done', cr)
self.pool.get('mrp.production.workcenter.line').signal_button_start_working(cr, uid, [work_line.id])
self.pool.get('mrp.production.workcenter.line').signal_button_done(cr, uid, [work_line.id])
-
I check that the production order is now done.
@@ -106,8 +92,7 @@
I print a Barcode Report of Operation line.
-
!python {model: mrp_operations.operation.code}: |
import os
from openerp import netsvc, tools
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.mrp.code.barcode').create(cr, uid, [ref('mrp_operations.mrp_op_1'),ref('mrp_operations.mrp_op_2'),ref('mrp_operations.mrp_op_3'),ref('mrp_operations.mrp_op_4'),ref('mrp_operations.mrp_op_5')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-barcode_report.'+format), 'wb+').write(data)
@@ -116,8 +101,7 @@
I print Workcenter's Barcode Report.
-
!python {model: mrp.workcenter}: |
import os
from openerp import netsvc, tools
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.mrp.wc.barcode').create(cr, uid, [ref('mrp.mrp_workcenter_0'),ref('mrp.mrp_workcenter_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp_operations-workcenter_barcode_report.'+format), 'wb+').write(data)
+2 -6
View File
@@ -20,7 +20,6 @@
##############################################################################
from openerp.osv import fields,osv
from openerp import netsvc
from datetime import datetime
from dateutil.relativedelta import relativedelta
from openerp.tools.translate import _
@@ -314,9 +313,7 @@ class mrp_repair(osv.osv):
for repair in self.browse(cr, uid, ids):
mrp_line_obj.write(cr, uid, [l.id for l in repair.operations], {'state': 'draft'})
self.write(cr, uid, ids, {'state':'draft'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_create(uid, 'mrp.repair', id, cr)
self.create_workflow(cr, uid, ids)
return True
def action_confirm(self, cr, uid, ids, *args):
@@ -505,7 +502,6 @@ class mrp_repair(osv.osv):
"""
res = {}
move_obj = self.pool.get('stock.move')
wf_service = netsvc.LocalService("workflow")
repair_line_obj = self.pool.get('mrp.repair.line')
seq_obj = self.pool.get('ir.sequence')
pick_obj = self.pool.get('stock.picking')
@@ -548,7 +544,7 @@ class mrp_repair(osv.osv):
'tracking_id': False,
'state': 'assigned',
})
wf_service.trg_validate(uid, 'stock.picking', picking, 'button_confirm', cr)
pick_obj.signal_button_confirm(cr, uid, [picking])
self.write(cr, uid, [repair.id], {'state': 'done', 'picking_id': picking})
res[repair.id] = picking
else:
+1 -4
View File
@@ -19,7 +19,6 @@
#
##############################################################################
from openerp import netsvc
from openerp.osv import fields, osv
class make_invoice(osv.osv_memory):
@@ -50,9 +49,7 @@ class make_invoice(osv.osv_memory):
# We have to trigger the workflow of the given repairs, otherwise they remain 'to be invoiced'.
# Note that the signal 'action_invoice_create' will trigger another call to the method 'action_invoice_create',
# but that second call will not do anything, since the repairs are already invoiced.
wf_service = netsvc.LocalService("workflow")
for repair_id in context['active_ids']:
wf_service.trg_validate(uid, 'mrp.repair', repair_id, 'action_invoice_create', cr)
order_obj.signal_action_invoice_create(cr, uid, context['active_ids'])
form_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
form_id = form_res and form_res[1] or False
+12 -15
View File
@@ -27,7 +27,7 @@ import pdb
import time
import openerp
from openerp import netsvc, tools
from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -364,7 +364,7 @@ class pos_session(osv.osv):
ids = [ids]
this_record = self.browse(cr, uid, ids[0], context=context)
this_record._workflow_signal('open')
this_record.signal_workflow('open')
context.update(active_id=this_record.id)
@@ -442,14 +442,14 @@ class pos_session(osv.osv):
}
def _confirm_orders(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
account_move_obj = self.pool.get('account.move')
pos_order_obj = self.pool.get('pos.order')
for session in self.browse(cr, uid, ids, context=context):
order_ids = [order.id for order in session.order_ids if order.state == 'paid']
move_id = self.pool.get('account.move').create(cr, uid, {'ref' : session.name, 'journal_id' : session.config_id.journal_id.id, }, context=context)
move_id = account_move_obj.create(cr, uid, {'ref' : session.name, 'journal_id' : session.config_id.journal_id.id, }, context=context)
self.pool.get('pos.order')._create_account_move_line(cr, uid, order_ids, session, move_id, context=context)
pos_order_obj._create_account_move_line(cr, uid, order_ids, session, move_id, context=context)
for order in session.order_ids:
if order.state not in ('paid', 'invoiced'):
@@ -457,7 +457,7 @@ class pos_session(osv.osv):
_('Error!'),
_("You cannot confirm all orders of this session, because they have not the 'paid' status"))
else:
wf_service.trg_validate(uid, 'pos.order', order.id, 'done', cr)
pos_order_obj.signal_done(cr, uid, [order.id])
return True
@@ -519,8 +519,7 @@ class pos_order(osv.osv):
'journal': cash_journal.id,
}, context=context)
order_ids.append(order_id)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'pos.order', order_id, 'paid', cr)
self.signal_paid(cr, uid, [order_id])
return order_ids
def unlink(self, cr, uid, ids, context=None):
@@ -695,9 +694,8 @@ class pos_order(osv.osv):
}, context=context)
if line.qty < 0:
location_id, output_id = output_id, location_id
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
picking_obj.signal_button_confirm(cr, uid, [picking_id])
picking_obj.force_assign(cr, uid, [picking_id], context)
return True
@@ -707,7 +705,7 @@ class pos_order(osv.osv):
"""
stock_picking_obj = self.pool.get('stock.picking')
for order in self.browse(cr, uid, ids, context=context):
wf_service.trg_validate(uid, 'stock.picking', order.picking_id.id, 'button_cancel', cr)
stock_picking_obj.signal_button_cancel(cr, uid, [order.picking_id.id])
if stock_picking_obj.browse(cr, uid, order.picking_id.id, context=context).state <> 'cancel':
raise osv.except_osv(_('Error!'), _('Unable to cancel the picking.'))
self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
@@ -803,7 +801,6 @@ class pos_order(osv.osv):
return self.write(cr, uid, ids, {'state':'invoiced'}, context=context)
def action_invoice(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
inv_ref = self.pool.get('account.invoice')
inv_line_ref = self.pool.get('account.invoice.line')
product_obj = self.pool.get('product.product')
@@ -856,7 +853,7 @@ class pos_order(osv.osv):
inv_line['invoice_line_tax_id'] = [(6, 0, [x.id for x in line.product_id.taxes_id] )]
inv_line_ref.create(cr, uid, inv_line, context=context)
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
wf_service.trg_validate(uid, 'pos.order', order.id, 'invoice', cr)
self.signal_invoice(cr, uid, [order.id])
if not inv_ids: return {}
+1 -3
View File
@@ -19,7 +19,6 @@
#
##############################################################################
from openerp import netsvc
from openerp.osv import osv
@@ -28,7 +27,6 @@ class pos_confirm(osv.osv_memory):
_description = 'Post POS Journal Entries'
def action_confirm(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
order_obj = self.pool.get('pos.order')
ids = order_obj.search(cr, uid, [('state','=','paid')], context=context)
for order in order_obj.browse(cr, uid, ids, context=context):
@@ -38,7 +36,7 @@ class pos_confirm(osv.osv_memory):
todo = False
break
if todo:
wf_service.trg_validate(uid, 'pos.order', order.id, 'done', cr)
order_obj.signal_done(cr, uid, [order.id])
# Check if there is orders to reconcile their invoices
ids = order_obj.search(cr, uid, [('state','=','invoiced'),('invoice_id.state','=','open')], context=context)
+1 -3
View File
@@ -23,7 +23,6 @@ import time
import pos_box_entries
from openerp import netsvc
from openerp.osv import osv, fields
from openerp.tools.translate import _
@@ -67,8 +66,7 @@ class pos_make_payment(osv.osv_memory):
order_obj.add_payment(cr, uid, active_id, data, context=context)
if order_obj.test_paid(cr, uid, [active_id]):
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'pos.order', active_id, 'paid', cr)
order_obj.signal_paid(cr, uid, [active_id])
return {'type' : 'ir.actions.act_window_close' }
##self.print_report(cr, uid, ids, context=context)
+3 -7
View File
@@ -19,7 +19,6 @@
#
##############################################################################
from openerp import netsvc
from openerp.osv import osv,fields
from openerp.tools.translate import _
import time
@@ -104,7 +103,6 @@ class pos_return(osv.osv_memory):
property_obj= self.pool.get("ir.property")
uom_obj =self. pool.get('product.uom')
statementl_obj = self.pool.get('account.bank.statement.line')
wf_service = netsvc.LocalService("workflow")
#Todo :Need to clean the code
if active_id:
data = self.browse(cr, uid, ids, context=context)[0]
@@ -157,7 +155,7 @@ class pos_return(osv.osv_memory):
'amount': -amount,
})
order_obj.write(cr,uid, [active_id,new_order], {'state': 'done'})
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
act = {
'domain': "[('id', 'in', ["+str(new_order)+"])]",
@@ -200,7 +198,6 @@ class add_product(osv.osv_memory):
date_cur=time.strftime('%Y-%m-%d')
uom_obj = self.pool.get('product.uom')
prod_obj=self.pool.get('product.product')
wf_service = netsvc.LocalService("workflow")
order_obj.add_product(cr, uid, active_id, data['product_id'], data['quantity'], context=context)
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
@@ -232,7 +229,7 @@ class add_product(osv.osv_memory):
'date':date_cur
})
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
order_obj.write(cr,uid,active_id,{'picking_id':new_picking})
@@ -265,7 +262,6 @@ class add_product(osv.osv_memory):
if return_id:
data = return_boj.read(cr,uid,return_id,[])[0]
wf_service = netsvc.LocalService("workflow")
self_data = self.browse(cr, uid, ids, context=context)[0]
order_obj.add_product(cr, uid, active_ids[0], self_data.product_id.id, self_data.quantity, context=context)
@@ -306,7 +302,7 @@ class add_product(osv.osv_memory):
'name':'%s (return)' % order_id.name,
'date':date_cur,
})
wf_service.trg_validate(uid, 'stock.picking',new_picking,'button_confirm', cr)
picking_obj.signal_button_confirm(cr, uid, [new_picking])
picking_obj.force_assign(cr, uid, [new_picking], context)
obj=order_obj.browse(cr,uid, active_ids[0])
context.update({'return':'return'})
@@ -1,6 +1,5 @@
#!/usr/bin/env python
from openerp import netsvc
from openerp.osv import osv, fields
from openerp.tools.translate import _
@@ -37,9 +36,8 @@ class pos_session_opening(osv.osv_memory):
}
def open_existing_session_cb_close(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
wizard = self.browse(cr, uid, ids[0], context=context)
wf_service.trg_validate(uid, 'pos.session', wizard.pos_session_id.id, 'cashbox_control', cr)
self.pool.get('pos.session').signal_cashbox_control(cr, uid, [wizard.pos_session_id.id])
return self.open_session_cb(cr, uid, ids, context)
def open_session_cb(self, cr, uid, ids, context=None):
+568
View File
@@ -0,0 +1,568 @@
# Romanian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-17 16:28+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2013-02-18 04:49+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,type:0
msgid "Lead"
msgstr "Pista"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,title:0
msgid "Title"
msgstr "Titlu"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,probability:0
msgid "Success Rate (%)"
msgstr "Rata de succes (%)"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Contact us"
msgstr "Contactati-ne"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_action:0
msgid "Next Action Date"
msgstr "Data Actiunii Urmatoare"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,fax:0
msgid "Fax"
msgstr "Fax"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,zip:0
msgid "Zip"
msgstr "Cod postal"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_unread:0
msgid "Unread Messages"
msgstr "Mesaje Necitite"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,company_id:0
msgid "Company"
msgstr "Companie"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,day_open:0
msgid "Days to Open"
msgstr "Zile pana la deschidere"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Thank you for your interest, we'll respond to your request shortly."
msgstr ""
"va multumim pentru interes, vom da raspuns solicitarii dumneavoastra in "
"scurt timp."
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,priority:0
msgid "Highest"
msgstr "Cel mai ridicat (cea mai ridicata)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,mobile:0
msgid "Mobile"
msgstr "Mobil"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,description:0
msgid "Notes"
msgstr "Note"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_ids:0
msgid "Messages"
msgstr "Mesaje"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,color:0
msgid "Color Index"
msgstr "Index de Culori"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_latitude:0
msgid "Geo Latitude"
msgstr "Latitudine Geo"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_name:0
msgid "Customer Name"
msgstr "Numele clientului"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,state:0
msgid "Cancelled"
msgstr "Anulat(a)"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,message_unread:0
msgid "If checked new messages require your attention."
msgstr "Daca este selectat, mesajele noi necesita atentia dumneavoastra."
#. module: portal_crm
#: help:portal_crm.crm_contact_us,channel_id:0
msgid "Communication channel (mail, direct, phone, ...)"
msgstr "Canal de comunicare (e-mail, direct, telefon, ...)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,type_id:0
msgid "Campaign"
msgstr "Campanie"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,ref:0
msgid "Reference"
msgstr "Referinta"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_action_next:0
#: field:portal_crm.crm_contact_us,title_action:0
msgid "Next Action"
msgstr "Urmatoarea actiune"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
"Contine rezumatul Chatter (numar de mesaje, ...). Acest rezumat este direct "
"in format HTML, cu scopul de a se introduce in vizualizari kanban."
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_id:0
msgid "Partner"
msgstr "Partener"
#. module: portal_crm
#: model:ir.actions.act_window,name:portal_crm.action_contact_us
msgid "Contact Us"
msgstr "Contactati-ne"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,name:0
msgid "Subject"
msgstr "Subiect"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,opt_out:0
msgid "Opt-Out"
msgstr "Nu participati"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,priority:0
msgid "Priority"
msgstr "Prioritate"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,state_id:0
msgid "State"
msgstr "Stare"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_follower_ids:0
msgid "Followers"
msgstr "Urmari"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,partner_id:0
msgid "Linked partner (optional). Usually created when converting the lead."
msgstr ""
"Partener asociat (optional). Creat de obicei atunci cand pista este "
"transformata."
#. module: portal_crm
#: field:portal_crm.crm_contact_us,payment_mode:0
msgid "Payment Mode"
msgstr "Modalitatea de plata"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,state:0
msgid "New"
msgstr "Nou(a)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,type:0
msgid "Type"
msgstr "Tip"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,email_from:0
msgid "Email"
msgstr "E-mail"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,channel_id:0
msgid "Channel"
msgstr "Canal"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Name"
msgstr "Nume"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,priority:0
msgid "Lowest"
msgstr "Cel mai scazut (cea mai scazuta)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,create_date:0
msgid "Creation Date"
msgstr "Data Crearii"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Close"
msgstr "Inchide"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,state:0
msgid "Pending"
msgstr "In asteptare"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,type:0
msgid "Type is used to separate Leads and Opportunities"
msgstr "Tip folosit pentru a separa Clientii potentiali si Oportunitatile"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,categ_ids:0
msgid "Categories"
msgstr "Categorii"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,stage_id:0
msgid "Stage"
msgstr "Etapa"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,user_login:0
msgid "User Login"
msgstr "Autentificare Utilizator"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,opt_out:0
msgid ""
"If opt-out is checked, this contact has refused to receive emails or "
"unsubscribed to a campaign."
msgstr ""
"Daca este bifata optiunea de neparticipare, acest contact a refuzat sa "
"primeasca e-mailuri sau s-a dezabonat de la o campanie."
#. module: portal_crm
#: field:portal_crm.crm_contact_us,contact_name:0
msgid "Contact Name"
msgstr "Numele Contactului"
#. module: portal_crm
#: model:ir.ui.menu,name:portal_crm.portal_company_contact
msgid "Contact"
msgstr "Contact"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_address_email:0
msgid "Partner Contact Email"
msgstr "E-mail Contact Partener"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,planned_revenue:0
msgid "Expected Revenue"
msgstr "Venituri Estimate"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,task_ids:0
msgid "Tasks"
msgstr "Sarcini"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Contact form"
msgstr "Formular de contact"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,company_currency:0
msgid "Currency"
msgstr "Moneda"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,write_date:0
msgid "Update Date"
msgstr "Data Actualizarii"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_deadline:0
msgid "Expected Closing"
msgstr "Inchidere estimata"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,ref2:0
msgid "Reference 2"
msgstr "Referinta 2"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,user_email:0
msgid "User Email"
msgstr "E-mail utilizator"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_open:0
msgid "Opened"
msgstr "Deschis(a)"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,state:0
msgid "In Progress"
msgstr "In curs de desfasurare"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,partner_name:0
msgid ""
"The name of the future partner company that will be created while converting "
"the lead into opportunity"
msgstr ""
"Numele viitorului partener al companiei care va fi creat in timpul "
"transformarii pistei in oportunitate"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,planned_cost:0
msgid "Planned Costs"
msgstr "Costuri planificate"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,date_deadline:0
msgid "Estimate of the date on which the opportunity will be won."
msgstr "Estimarea datei in care oportunitatea va fi castigata."
#. module: portal_crm
#: help:portal_crm.crm_contact_us,email_cc:0
msgid ""
"These email addresses will be added to the CC field of all inbound and "
"outbound emails for this record before being sent. Separate multiple email "
"addresses with a comma"
msgstr ""
"Aceste adrese de email vor fi adaugate in campul CC al tuturor email-urilor "
"primite si trimise pentru aceasta inregistrare inainte de a fi trimise. "
"Despartiti adresele de mail multiple cu o virgula"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,priority:0
msgid "Low"
msgstr "Scazut(a)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_closed:0
#: selection:portal_crm.crm_contact_us,state:0
msgid "Closed"
msgstr "Inchis(a)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_assign:0
msgid "Assignation Date"
msgstr "Data alocarii"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,state:0
msgid "Status"
msgstr "Status"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,priority:0
msgid "Normal"
msgstr "Normal"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,email_cc:0
msgid "Global CC"
msgstr "CC global"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,street2:0
msgid "Street2"
msgstr "Strada2"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,id:0
msgid "ID"
msgstr "ID"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,phone:0
msgid "Phone"
msgstr "Telefon"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_is_follower:0
msgid "Is a Follower"
msgstr "Este o persoana interesata"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,active:0
msgid "Active"
msgstr "Activ(a)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,user_id:0
msgid "Salesperson"
msgstr "Agent de vanzari"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,day_close:0
msgid "Days to Close"
msgstr "Zile pana la inchidere"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,company_ids:0
msgid "Companies"
msgstr "Companii"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,message_summary:0
msgid "Summary"
msgstr "Continut"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,section_id:0
msgid ""
"When sending mails, the default email address is taken from the sales team."
msgstr ""
"Atunci cand trimiteti email-uri, adresa implicita este luata de la echipa de "
"vanzari."
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_address_name:0
msgid "Partner Contact Name"
msgstr "Numele de Contact al Partenerului"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_longitude:0
msgid "Geo Longitude"
msgstr "Geo Longitudine"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,date_assign:0
msgid "Last date this case was forwarded/assigned to a partner"
msgstr ""
"Ultima data cand acest caz a fost redirectionat/atribuit unui partener"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,email_from:0
msgid "Email address of the contact"
msgstr "Adresa de email a contactului"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,city:0
msgid "City"
msgstr "Oras"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Submit"
msgstr "Trimite"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,function:0
msgid "Function"
msgstr "Functie"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,referred:0
msgid "Referred By"
msgstr "Recomandat de"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,partner_assigned_id:0
msgid "Assigned Partner"
msgstr "Partenerul Alocat"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,type:0
msgid "Opportunity"
msgstr "Oportunitate"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,partner_assigned_id:0
msgid "Partner this case has been forwarded/assigned to."
msgstr "Partenerul caruia i-a fost redirectionat/atribuit cazul."
#. module: portal_crm
#: field:portal_crm.crm_contact_us,country_id:0
msgid "Country"
msgstr "Tara"
#. module: portal_crm
#: view:portal_crm.crm_contact_us:0
msgid "Thank you"
msgstr "Va multumim"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,state:0
msgid ""
"The Status is set to 'Draft', when a case is created. If the case is in "
"progress the Status is set to 'Open'. When the case is over, the Status is "
"set to 'Done'. If the case needs to be reviewed then the Status is set to "
"'Pending'."
msgstr ""
"Starea este setata pe 'Ciorna' atunci cand este creat un caz. Atunci cand "
"cazul este in desfasurare, Starea este setata pe 'Deschis'. Cand cazul este "
"finalizat, Starea este setata pe 'Efectuat'. Cand cazul trebuie revazut, "
"atunci Starea este setata pe 'In asteptare'."
#. module: portal_crm
#: help:portal_crm.crm_contact_us,message_ids:0
msgid "Messages and communication history"
msgstr "Istoric mesaje si conversatii"
#. module: portal_crm
#: help:portal_crm.crm_contact_us,type_id:0
msgid ""
"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
"this contact come from?"
msgstr ""
"Din ce campanie (seminar, campanie de marketing, trimitere de e-mail-uri in "
"masa,...) provine acest contact?"
#. module: portal_crm
#: selection:portal_crm.crm_contact_us,priority:0
msgid "High"
msgstr "Ridicat(a)"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,section_id:0
msgid "Sales Team"
msgstr "Echipa de vanzari"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,street:0
msgid "Street"
msgstr "Strada"
#. module: portal_crm
#: field:portal_crm.crm_contact_us,date_action_last:0
msgid "Last Action"
msgstr "Ultima Actiune"
#. module: portal_crm
#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
msgid "Contact form for the portal"
msgstr "Formular de contact pentru portal"
+344
View File
@@ -0,0 +1,344 @@
# Mongolian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-18 08:59+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Mongolian <mn@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: 2013-02-19 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: portal_sale
#: model:ir.model,name:portal_sale.model_account_config_settings
msgid "account.config.settings"
msgstr ""
#. module: portal_sale
#: model:ir.actions.act_window,help:portal_sale.portal_action_invoices
msgid "We haven't sent you any invoice."
msgstr ""
#. module: portal_sale
#: model:email.template,report_name:portal_sale.email_template_edi_sale
msgid ""
"${(object.name or '').replace('/','_')}_${object.state == 'draft' and "
"'draft' or ''}"
msgstr ""
#. module: portal_sale
#: model:res.groups,name:portal_sale.group_payment_options
msgid "View Online Payment Options"
msgstr ""
#. module: portal_sale
#: field:account.config.settings,group_payment_options:0
msgid "Show payment buttons to employees too"
msgstr ""
#. module: portal_sale
#: model:email.template,subject:portal_sale.email_template_edi_sale
msgid ""
"${object.company_id.name} ${object.state in ('draft', 'sent') and "
"'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })"
msgstr ""
#. module: portal_sale
#: model:ir.actions.act_window,help:portal_sale.action_quotations_portal
msgid "We haven't sent you any quotation."
msgstr ""
#. module: portal_sale
#: model:ir.ui.menu,name:portal_sale.portal_sales_orders
msgid "Sales Orders"
msgstr "Борлуулалтын захиалгууд"
#. module: portal_sale
#: model:res.groups,comment:portal_sale.group_payment_options
msgid ""
"Members of this group see the online payment options\n"
"on Sale Orders and Customer Invoices. These options are meant for customers "
"who are accessing\n"
"their documents through the portal."
msgstr ""
#. module: portal_sale
#: model:email.template,body_html:portal_sale.email_template_edi_sale
msgid ""
"\n"
"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
"255, 255); \">\n"
"\n"
" <p>Hello ${object.partner_id.name},</p>\n"
" \n"
" <p>Here is your ${object.state in ('draft', 'sent') and 'quotation' or "
"'order confirmation'} from ${object.company_id.name}: </p>\n"
"\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
" &nbsp;&nbsp;<strong>REFERENCES</strong><br />\n"
" &nbsp;&nbsp;Order number: <strong>${object.name}</strong><br />\n"
" &nbsp;&nbsp;Order total: <strong>${object.amount_total} "
"${object.pricelist_id.currency_id.name}</strong><br />\n"
" &nbsp;&nbsp;Order date: ${object.date_order}<br />\n"
" % if object.origin:\n"
" &nbsp;&nbsp;Order reference: ${object.origin}<br />\n"
" % endif\n"
" % if object.client_order_ref:\n"
" &nbsp;&nbsp;Your reference: ${object.client_order_ref}<br />\n"
" % endif\n"
" % if object.user_id:\n"
" &nbsp;&nbsp;Your contact: <a href=\"mailto:${object.user_id.email or "
"''}?subject=Order%20${object.name}\">${object.user_id.name}</a>\n"
" % endif\n"
" </p>\n"
"\n"
" <% set signup_url = object.get_signup_url() %>\n"
" % if signup_url:\n"
" <p>\n"
" You can access this document and pay online via our Customer Portal:\n"
" </p>\n"
" <a style=\"display:block; width: 150px; height:20px; margin-left: "
"120px; color: #DDD; font-family: 'Lucida Grande', Helvetica, Arial, sans-"
"serif; font-size: 13px; font-weight: bold; text-align: center; text-"
"decoration: none !important; line-height: 1; padding: 5px 0px 0px 0px; "
"background-color: #8E0000; border-radius: 5px 5px; background-repeat: repeat "
"no-repeat;\"\n"
" href=\"${signup_url}\">View ${object.state in ('draft', 'sent') "
"and 'Quotation' or 'Order'}</a>\n"
" % endif\n"
"\n"
" % if object.paypal_url:\n"
" <br/>\n"
" <p>It is also possible to directly pay with Paypal:</p>\n"
" <a style=\"margin-left: 120px;\" href=\"${object.paypal_url}\">\n"
" <img class=\"oe_edi_paypal_button\" "
"src=\"https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif\"/>\n"
" </a>\n"
" % endif\n"
"\n"
" <br/>\n"
" <p>If you have any question, do not hesitate to contact us.</p>\n"
" <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>\n"
" <br/>\n"
" <br/>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; background-color: "
"#8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; "
"background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; color: "
"#DDD;\">\n"
" <strong style=\"text-"
"transform:uppercase;\">${object.company_id.name}</strong></h3>\n"
" </div>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-height: "
"16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: block; \">\n"
" % if object.company_id.street:\n"
" ${object.company_id.street}<br/>\n"
" % endif\n"
" % if object.company_id.street2:\n"
" ${object.company_id.street2}<br/>\n"
" % endif\n"
" % if object.company_id.city or object.company_id.zip:\n"
" ${object.company_id.zip} ${object.company_id.city}<br/>\n"
" % endif\n"
" % if object.company_id.country_id:\n"
" ${object.company_id.state_id and ('%s, ' % "
"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name "
"or ''}<br/>\n"
" % endif\n"
" </span>\n"
" % if object.company_id.phone:\n"
" <div style=\"margin-top: 0px; margin-right: 0px; margin-bottom: "
"0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: "
"0px; padding-left: 0px; \">\n"
" Phone:&nbsp; ${object.company_id.phone}\n"
" </div>\n"
" % endif\n"
" % if object.company_id.website:\n"
" <div>\n"
" Web :&nbsp;<a "
"href=\"${object.company_id.website}\">${object.company_id.website}</a>\n"
" </div>\n"
" % endif\n"
" <p></p>\n"
" </div>\n"
"</div>\n"
" "
msgstr ""
#. module: portal_sale
#: model:email.template,report_name:portal_sale.email_template_edi_invoice
msgid ""
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
"and 'draft' or ''}"
msgstr ""
#. module: portal_sale
#: model:email.template,subject:portal_sale.email_template_edi_invoice
msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })"
msgstr ""
#. module: portal_sale
#: model:ir.model,name:portal_sale.model_mail_mail
msgid "Outgoing Mails"
msgstr "Гарах мэйлүүд"
#. module: portal_sale
#: model:ir.actions.act_window,name:portal_sale.action_quotations_portal
#: model:ir.ui.menu,name:portal_sale.portal_quotations
msgid "Quotations"
msgstr "Үнэ ханш"
#. module: portal_sale
#: model:ir.model,name:portal_sale.model_sale_order
msgid "Sales Order"
msgstr "Борлуулалтын захиалга"
#. module: portal_sale
#: field:account.invoice,portal_payment_options:0
#: field:sale.order,portal_payment_options:0
msgid "Portal Payment Options"
msgstr "Портал Төлбөрийг Тохируулга"
#. module: portal_sale
#: help:account.config.settings,group_payment_options:0
msgid ""
"Show online payment options on Sale Orders and Customer Invoices to "
"employees. If not checked, these options are only visible to portal users."
msgstr ""
#. module: portal_sale
#: model:ir.actions.act_window,name:portal_sale.portal_action_invoices
#: model:ir.ui.menu,name:portal_sale.portal_invoices
msgid "Invoices"
msgstr "Нэхэмжлэлүүд"
#. module: portal_sale
#: view:account.config.settings:0
msgid "Configure payment acquiring methods"
msgstr ""
#. module: portal_sale
#: model:email.template,body_html:portal_sale.email_template_edi_invoice
msgid ""
"\n"
"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
"255, 255); \">\n"
"\n"
" <p>Hello ${object.partner_id.name},</p>\n"
"\n"
" <p>A new invoice is available for you: </p>\n"
" \n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
" &nbsp;&nbsp;<strong>REFERENCES</strong><br />\n"
" &nbsp;&nbsp;Invoice number: <strong>${object.number}</strong><br />\n"
" &nbsp;&nbsp;Invoice total: <strong>${object.amount_total} "
"${object.currency_id.name}</strong><br />\n"
" &nbsp;&nbsp;Invoice date: ${object.date_invoice}<br />\n"
" % if object.origin:\n"
" &nbsp;&nbsp;Order reference: ${object.origin}<br />\n"
" % endif\n"
" % if object.user_id:\n"
" &nbsp;&nbsp;Your contact: <a href=\"mailto:${object.user_id.email or "
"''}?subject=Invoice%20${object.number}\">${object.user_id.name}</a>\n"
" % endif\n"
" </p> \n"
"\n"
" <% set signup_url = object.get_signup_url() %>\n"
" % if signup_url:\n"
" <p>\n"
" You can access the invoice document and pay online via our Customer "
"Portal:\n"
" </p>\n"
" <a style=\"display:block; width: 150px; height:20px; margin-left: "
"120px; color: #DDD; font-family: 'Lucida Grande', Helvetica, Arial, sans-"
"serif; font-size: 13px; font-weight: bold; text-align: center; text-"
"decoration: none !important; line-height: 1; padding: 5px 0px 0px 0px; "
"background-color: #8E0000; border-radius: 5px 5px; background-repeat: repeat "
"no-repeat;\"\n"
" href=\"${signup_url}\">View Invoice</a>\n"
" % endif\n"
" \n"
" % if object.paypal_url:\n"
" <br/>\n"
" <p>It is also possible to directly pay with Paypal:</p>\n"
" <a style=\"margin-left: 120px;\" href=\"${object.paypal_url}\">\n"
" <img class=\"oe_edi_paypal_button\" "
"src=\"https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif\"/>\n"
" </a>\n"
" % endif\n"
" \n"
" <br/>\n"
" <p>If you have any question, do not hesitate to contact us.</p>\n"
" <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>\n"
" <br/>\n"
" <br/>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; background-color: "
"#8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; "
"background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; color: "
"#DDD;\">\n"
" <strong style=\"text-"
"transform:uppercase;\">${object.company_id.name}</strong></h3>\n"
" </div>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-height: "
"16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: block; \">\n"
" % if object.company_id.street:\n"
" ${object.company_id.street}<br/>\n"
" % endif\n"
" % if object.company_id.street2:\n"
" ${object.company_id.street2}<br/>\n"
" % endif\n"
" % if object.company_id.city or object.company_id.zip:\n"
" ${object.company_id.zip} ${object.company_id.city}<br/>\n"
" % endif\n"
" % if object.company_id.country_id:\n"
" ${object.company_id.state_id and ('%s, ' % "
"object.company_id.state_id.name) or ''} ${object.company_id.country_id.name "
"or ''}<br/>\n"
" % endif\n"
" </span>\n"
" % if object.company_id.phone:\n"
" <div style=\"margin-top: 0px; margin-right: 0px; margin-bottom: "
"0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: "
"0px; padding-left: 0px; \">\n"
" Phone:&nbsp; ${object.company_id.phone}\n"
" </div>\n"
" % endif\n"
" % if object.company_id.website:\n"
" <div>\n"
" Web :&nbsp;<a "
"href=\"${object.company_id.website}\">${object.company_id.website}</a>\n"
" </div>\n"
" % endif\n"
" <p></p>\n"
" </div>\n"
"</div>\n"
" "
msgstr ""
#. module: portal_sale
#: model:ir.actions.act_window,help:portal_sale.action_orders_portal
msgid "We haven't sent you any sales order."
msgstr ""
#. module: portal_sale
#: model:ir.model,name:portal_sale.model_account_invoice
msgid "Invoice"
msgstr "Нэхэмжлэл"
#. module: portal_sale
#: model:ir.actions.act_window,name:portal_sale.action_orders_portal
msgid "Sale Orders"
msgstr "Борлуулалтын захиалга"
+12 -17
View File
@@ -19,10 +19,12 @@
#
##############################################################################
from operator import attrgetter
import time
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import netsvc
import time
import openerp.addons.decimal_precision as dp
# Procurement
@@ -42,7 +44,6 @@ class mrp_property_group(osv.osv):
'name': fields.char('Property Group', size=64, required=True),
'description': fields.text('Description'),
}
mrp_property_group()
class mrp_property(osv.osv):
"""
@@ -59,7 +60,6 @@ class mrp_property(osv.osv):
_defaults = {
'composition': lambda *a: 'min',
}
mrp_property()
class StockMove(osv.osv):
_inherit = 'stock.move'
@@ -72,7 +72,6 @@ class StockMove(osv.osv):
default['procurements'] = []
return super(StockMove, self).copy(cr, uid, id, default, context=context)
StockMove()
class procurement_order(osv.osv):
"""
@@ -103,7 +102,7 @@ class procurement_order(osv.osv):
readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \
" a make to order method."),
'note': fields.text('Note'),
'message': fields.char('Latest error', help="Exception occurred while computing procurement orders."),
'message': fields.text('Latest error', help="Exception occurred while computing procurement orders."),
'state': fields.selection([
('draft','Draft'),
('cancel','Cancelled'),
@@ -374,14 +373,13 @@ class procurement_order(osv.osv):
self.message_post(cr, uid, [procurement.id], body=message, context=context)
return ok
def _workflow_trigger(self, cr, uid, ids, trigger, context=None):
""" Don't trigger workflow for the element specified in trigger
"""
wkf_op_key = 'workflow.%s.%s' % (trigger, self._name)
def step_workflow(self, cr, uid, ids, context=None):
""" Don't trigger workflow for the element specified in trigger """
wkf_op_key = 'workflow.trg_write.%s' % self._name
if context and not context.get(wkf_op_key, True):
# make sure we don't have a trigger loop while processing triggers
return
return super(procurement_order,self)._workflow_trigger(cr, uid, ids, trigger, context=context)
return super(procurement_order, self).step_workflow(cr, uid, ids, context=context)
def action_produce_assign_service(self, cr, uid, ids, context=None):
""" Changes procurement state to Running.
@@ -468,15 +466,12 @@ class procurement_order(osv.osv):
class StockPicking(osv.osv):
_inherit = 'stock.picking'
def test_finished(self, cursor, user, ids):
wf_service = netsvc.LocalService("workflow")
res = super(StockPicking, self).test_finished(cursor, user, ids)
for picking in self.browse(cursor, user, ids):
def test_finished(self, cr, uid, ids):
res = super(StockPicking, self).test_finished(cr, uid, ids)
for picking in self.browse(cr, uid, ids):
for move in picking.move_lines:
if move.state == 'done' and move.procurements:
for procurement in move.procurements:
wf_service.trg_validate(user, 'procurement.order',
procurement.id, 'button_check', cursor)
self.pool.get('procurement.order').signal_button_check(cr, uid, map(attrgetter('id'), move.procurements))
return res
class stock_warehouse_orderpoint(osv.osv):
+8 -16
View File
@@ -57,13 +57,11 @@ class procurement_order(osv.osv):
try:
if use_new_cursor:
cr = pooler.get_db(use_new_cursor).cursor()
wf_service = netsvc.LocalService("workflow")
procurement_obj = self.pool.get('procurement.order')
if not ids:
ids = procurement_obj.search(cr, uid, [('state', '=', 'exception')], order="date_planned")
for id in ids:
wf_service.trg_validate(uid, 'procurement.order', id, 'button_restart', cr)
self.signal_button_restart(cr, uid, ids)
if use_new_cursor:
cr.commit()
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
@@ -78,7 +76,7 @@ class procurement_order(osv.osv):
ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_order')], offset=offset, limit=500, order='priority, date_planned', context=context)
for proc in procurement_obj.browse(cr, uid, ids, context=context):
if maxdate >= proc.date_planned:
wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
self.signal_button_check(cr, uid, [proc.id])
else:
offset += 1
report_later += 1
@@ -100,7 +98,7 @@ class procurement_order(osv.osv):
ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_stock')], offset=offset)
for proc in procurement_obj.browse(cr, uid, ids):
if maxdate >= proc.date_planned:
wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
self.signal_button_check(cr, uid, [proc.id])
report_ids.append(proc.id)
else:
report_later += 1
@@ -155,7 +153,6 @@ class procurement_order(osv.osv):
product_obj = self.pool.get('product.product')
proc_obj = self.pool.get('procurement.order')
warehouse_obj = self.pool.get('stock.warehouse')
wf_service = netsvc.LocalService("workflow")
warehouse_ids = warehouse_obj.search(cr, uid, [], context=context)
products_ids = product_obj.search(cr, uid, [('purchase_ok', '=', True)], order='id', context=context)
@@ -178,8 +175,8 @@ class procurement_order(osv.osv):
proc_id = proc_obj.create(cr, uid,
self._prepare_automatic_op_procurement(cr, uid, product, warehouse, location_id, context=context),
context=context)
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_check', cr)
self.signal_button_confirm(cr, uid, [proc_id])
self.signal_button_check(cr, uid, [proc_id])
return True
def _get_orderpoint_date_planned(self, cr, uid, orderpoint, start_date, context=None):
@@ -225,7 +222,6 @@ class procurement_order(osv.osv):
orderpoint_obj = self.pool.get('stock.warehouse.orderpoint')
procurement_obj = self.pool.get('procurement.order')
wf_service = netsvc.LocalService("workflow")
offset = 0
ids = [1]
if automatic:
@@ -254,7 +250,7 @@ class procurement_order(osv.osv):
to_generate = qty
for proc_data in procure_datas:
if to_generate >= proc_data['product_qty']:
wf_service.trg_validate(uid, 'procurement.order', proc_data['id'], 'button_confirm', cr)
self.signal_button_confirm(cr, uid, [proc_data['id']])
procurement_obj.write(cr, uid, [proc_data['id']], {'origin': op.name}, context=context)
to_generate -= proc_data['product_qty']
if not to_generate:
@@ -265,10 +261,8 @@ class procurement_order(osv.osv):
proc_id = procurement_obj.create(cr, uid,
self._prepare_orderpoint_procurement(cr, uid, op, qty, context=context),
context=context)
wf_service.trg_validate(uid, 'procurement.order', proc_id,
'button_confirm', cr)
wf_service.trg_validate(uid, 'procurement.order', proc_id,
'button_check', cr)
self.signal_button_confirm(cr, uid, [proc_id])
self.signal_button_check(cr, uid, [proc_id])
orderpoint_obj.write(cr, uid, [op.id],
{'procurement_id': proc_id}, context=context)
offset += len(ids)
@@ -279,6 +273,4 @@ class procurement_order(osv.osv):
cr.close()
return {}
procurement_order()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -19,7 +19,6 @@
#
##############################################################################
from openerp import netsvc
from openerp.osv import fields, osv
@@ -64,7 +63,6 @@ class make_procurement(osv.osv_memory):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context).login
wh_obj = self.pool.get('stock.warehouse')
procurement_obj = self.pool.get('procurement.order')
wf_service = netsvc.LocalService("workflow")
data_obj = self.pool.get('ir.model.data')
for proc in self.browse(cr, uid, ids, context=context):
@@ -78,9 +76,7 @@ class make_procurement(osv.osv_memory):
'location_id': wh.lot_stock_id.id,
'procure_method':'make_to_order',
})
wf_service.trg_validate(uid, 'procurement.order', procure_id, 'button_confirm', cr)
procurement_obj.signal_button_confirm(cr, uid, [procure_id])
id2 = data_obj._get_id(cr, uid, 'procurement', 'procurement_tree_view')
id3 = data_obj._get_id(cr, uid, 'procurement', 'procurement_form_view')
+17 -26
View File
@@ -22,9 +22,9 @@
import time
from datetime import datetime
from dateutil.relativedelta import relativedelta
from operator import attrgetter
from openerp.osv import fields, osv
from openerp import netsvc
from openerp import pooler
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp
@@ -260,9 +260,7 @@ class purchase_order(osv.osv):
raise osv.except_osv(_('Invalid Action!'), _('In order to delete a purchase order, you must cancel it first.'))
# automatically sending subflow.delete upon deletion
wf_service = netsvc.LocalService("workflow")
for id in unlink_ids:
wf_service.trg_validate(uid, 'purchase.order', id, 'purchase_cancel', cr)
self.signal_purchase_cancel(cr, uid, unlink_ids)
return super(purchase_order, self).unlink(cr, uid, unlink_ids, context=context)
@@ -439,8 +437,7 @@ class purchase_order(osv.osv):
This function prints the request for quotation and mark it as sent, so that we can see more easily the next step of the workflow
'''
assert len(ids) == 1, 'This option should only be used for a single id at a time'
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'purchase.order', ids[0], 'send_rfq', cr)
self.signal_send_rfq(cr, uid, ids)
datas = {
'model': 'purchase.order',
'ids': ids,
@@ -486,11 +483,10 @@ class purchase_order(osv.osv):
if not len(ids):
return False
self.write(cr, uid, ids, {'state':'draft','shipped':0})
wf_service = netsvc.LocalService("workflow")
for p_id in ids:
# Deleting the existing instance of workflow for PO
wf_service.trg_delete(uid, 'purchase.order', p_id, cr)
wf_service.trg_create(uid, 'purchase.order', p_id, cr)
self.delete_workflow(cr, uid, [p_id]) # TODO is it necessary to interleave the calls?
self.create_workflow(cr, uid, [p_id])
return True
def action_invoice_create(self, cr, uid, ids, context=None):
@@ -571,26 +567,24 @@ class purchase_order(osv.osv):
return False
def action_cancel(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
for purchase in self.browse(cr, uid, ids, context=context):
for pick in purchase.picking_ids:
if pick.state not in ('draft','cancel'):
raise osv.except_osv(
_('Unable to cancel this purchase order.'),
_('First cancel all receptions related to this purchase order.'))
for pick in purchase.picking_ids:
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_cancel', cr)
self.pool.get('stock.picking') \
.signal_button_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids))
for inv in purchase.invoice_ids:
if inv and inv.state not in ('cancel','draft'):
raise osv.except_osv(
_('Unable to cancel this purchase order.'),
_('You must first cancel all receptions related to this purchase order.'))
if inv:
wf_service.trg_validate(uid, 'account.invoice', inv.id, 'invoice_cancel', cr)
self.pool.get('account.invoice') \
.signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids))
self.write(cr,uid,ids,{'state':'cancel'})
for (id, name) in self.name_get(cr, uid, ids):
wf_service.trg_validate(uid, 'purchase.order', id, 'purchase_cancel', cr)
self.signal_purchase_cancel(cr, uid, ids)
return True
def _prepare_order_picking(self, cr, uid, order, context=None):
@@ -648,11 +642,11 @@ class purchase_order(osv.osv):
will be added. A new picking will be created if omitted.
:return: list of IDs of pickings used/created for the given order lines (usually just one)
"""
stock_picking = self.pool.get('stock.picking')
if not picking_id:
picking_id = self.pool.get('stock.picking').create(cr, uid, self._prepare_order_picking(cr, uid, order, context=context))
picking_id = stock_picking.create(cr, uid, self._prepare_order_picking(cr, uid, order, context=context))
todo_moves = []
stock_move = self.pool.get('stock.move')
wf_service = netsvc.LocalService("workflow")
for order_line in order_lines:
if not order_line.product_id:
continue
@@ -663,7 +657,7 @@ class purchase_order(osv.osv):
todo_moves.append(move)
stock_move.action_confirm(cr, uid, todo_moves)
stock_move.force_assign(cr, uid, todo_moves)
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
stock_picking.signal_button_confirm(cr, uid, [picking_id])
return [picking_id]
def action_picking_create(self, cr, uid, ids, context=None):
@@ -714,7 +708,6 @@ class purchase_order(osv.osv):
"""
#TOFIX: merged order line should be unlink
wf_service = netsvc.LocalService("workflow")
def make_key(br, fields):
list_key = []
for field in fields:
@@ -801,8 +794,8 @@ class purchase_order(osv.osv):
# make triggers pointing to the old orders point to the new order
for old_id in old_ids:
wf_service.trg_redirect(uid, 'purchase.order', old_id, neworder_id, cr)
wf_service.trg_validate(uid, 'purchase.order', old_id, 'purchase_cancel', cr)
self.redirect_workflow(cr, uid, [(old_id, neworder_id)])
self.signal_purchase_cancel(cr, uid, [old_id]) # TODO Is it necessary to interleave the calls?
return orders_info
@@ -1169,8 +1162,7 @@ class mail_mail(osv.Model):
def _postprocess_sent_message(self, cr, uid, mail, context=None):
if mail.model == 'purchase.order':
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'purchase.order', mail.res_id, 'send_rfq', cr)
self.pool.get('purchase.order').signal_send_rfq(cr, uid, [mail.res_id])
return super(mail_mail, self)._postprocess_sent_message(cr, uid, mail=mail, context=context)
@@ -1192,8 +1184,7 @@ class mail_compose_message(osv.Model):
context = context or {}
if context.get('default_model') == 'purchase.order' and context.get('default_res_id'):
context = dict(context, mail_post_autofollow=True)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'purchase.order', context['default_res_id'], 'send_rfq', cr)
self.pool.get('purchase.order').signal_send_rfq(cr, uid, [context['default_res_id']])
return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -59,11 +59,8 @@
I Validate Invoice of Purchase Order.
-
!python {model: purchase.order}: |
from openerp import netsvc
invoice_ids = [x.id for x in self.browse(cr, uid, ref("purchase_order_1")).invoice_ids]
wf_service = netsvc.LocalService("workflow")
for invoice in invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice, 'invoice_open', cr)
self.pool.get('account.invoice').signal_invoice_open(cr, uid, invoice_ids)
-
I check that purchase order is invoiced.
-
@@ -22,7 +22,6 @@
from datetime import datetime
from dateutil.relativedelta import relativedelta
import time
from openerp import netsvc
from openerp.osv import fields,osv
from openerp.tools.translate import _
@@ -211,8 +210,7 @@ class purchase_order(osv.osv):
proc_ids = proc_obj.search(cr, uid, [('purchase_id', '=', order.id)])
if proc_ids and po.state=='confirmed':
proc_obj.write(cr, uid, proc_ids, {'purchase_id': po.id})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'purchase.order', order.id, 'purchase_cancel', cr)
self.signal_purchase_cancel(cr, uid, [order.id])
po.requisition_id.tender_done(context=context)
return res
@@ -69,10 +69,8 @@
I confirmed RFQ which has best price.
-
!python {model: purchase.order}: |
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
purchase = self.browse(cr, uid, ref('rfq2'), context=context)
wf_service.trg_validate(uid, 'purchase.order', purchase.id, 'purchase_confirm', cr)
self.signal_purchase_confirm(cr, uid, [purchase.id])
-
I check status of requisition after confirmed best RFQ.
+517
View File
@@ -0,0 +1,517 @@
# Mongolian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-02-18 09:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Mongolian <mn@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: 2013-02-19 04:57+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: report_webkit
#: view:ir.actions.report.xml:0
msgid "Webkit Template (used if Report File is not found)"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Tabloid 29 279.4 x 431.8 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Ledger 28 431.8 x 279.4 mm"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:233
#, python-format
msgid "No header defined for this Webkit report!"
msgstr ""
#. module: report_webkit
#: help:ir.header_img,type:0
msgid "Image type(png,gif,jpeg)"
msgstr ""
#. module: report_webkit
#: help:ir.actions.report.xml,precise_mode:0
msgid ""
"This mode allow more precise element "
" position as each object is printed on a separate HTML. "
" but memory and disk "
"usage is wider"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Executive 4 7.5 x 10 inches, 190.5 x 254 mm"
msgstr ""
#. module: report_webkit
#: field:ir.header_img,company_id:0
#: field:ir.header_webkit,company_id:0
msgid "Company"
msgstr "Компани"
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:234
#, python-format
msgid "Please set a header in company settings."
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "DLE 26 110 x 220 mm"
msgstr "DLE 26 110 x 200 mm"
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B7 21 88 x 125 mm"
msgstr ""
#. module: report_webkit
#: view:res.company:0
msgid "Headers"
msgstr "Толгой хэсэг"
#. module: report_webkit
#: help:ir.header_img,name:0
msgid "Name of Image"
msgstr ""
#. module: report_webkit
#: model:ir.actions.act_window,name:report_webkit.action_header_webkit
#: model:ir.ui.menu,name:report_webkit.menu_header_webkit
msgid "Webkit Headers/Footers"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm"
msgstr ""
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_ir_header_webkit
msgid "ir.header_webkit"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A4 0 210 x 297 mm, 8.26 x 11.69 inches"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:176
#, python-format
msgid "Webkit error"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B2 17 500 x 707 mm"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:260
#: code:addons/report_webkit/webkit_report.py:271
#: code:addons/report_webkit/webkit_report.py:280
#: code:addons/report_webkit/webkit_report.py:293
#: code:addons/report_webkit/webkit_report.py:304
#, python-format
msgid "Webkit render!"
msgstr ""
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_ir_header_img
msgid "ir.header_img"
msgstr ""
#. module: report_webkit
#: field:ir.actions.report.xml,precise_mode:0
msgid "Precise Mode"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:96
#, python-format
msgid ""
"Please install executable on your system (sudo apt-get install wkhtmltopdf) "
"or download it from here: "
"http://code.google.com/p/wkhtmltopdf/downloads/list and set the path in the "
"ir.config_parameter with the webkit_path key.Minimal version is 0.9.9"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A0 5 841 x 1189 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "C5E 24 163 x 229 mm"
msgstr ""
#. module: report_webkit
#: field:ir.header_img,type:0
msgid "Type"
msgstr "Төрөл"
#. module: report_webkit
#: code:addons/report_webkit/wizard/report_webkit_actions.py:133
#, python-format
msgid "Client Actions Connections"
msgstr ""
#. module: report_webkit
#: field:res.company,header_image:0
msgid "Available Images"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,html:0
msgid "webkit header"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B1 15 707 x 1000 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A1 6 594 x 841 mm"
msgstr ""
#. module: report_webkit
#: help:ir.actions.report.xml,webkit_header:0
msgid "The header linked to the report"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:95
#, python-format
msgid "Wkhtmltopdf library path is not set"
msgstr ""
#. module: report_webkit
#: view:ir.actions.report.xml:0
#: view:res.company:0
msgid "Webkit"
msgstr ""
#. module: report_webkit
#: help:ir.header_webkit,format:0
msgid "Select Proper Paper size"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B5 1 176 x 250 mm, 6.93 x 9.84 inches"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A7 11 74 x 105 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A6 10 105 x 148 mm"
msgstr ""
#. module: report_webkit
#: help:ir.actions.report.xml,report_webkit_data:0
msgid "This template will be used if the main report file is not found"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Folio 27 210 x 330 mm"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,margin_top:0
msgid "Top Margin (mm)"
msgstr ""
#. module: report_webkit
#: view:report.webkit.actions:0
msgid "_Ok"
msgstr ""
#. module: report_webkit
#: help:report.webkit.actions,print_button:0
msgid ""
"Check this to add a Print action for this Report in the sidebar of the "
"corresponding document types"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B3 18 353 x 500 mm"
msgstr ""
#. module: report_webkit
#: field:ir.actions.report.xml,webkit_header:0
msgid "Webkit Header"
msgstr ""
#. module: report_webkit
#: help:ir.actions.report.xml,webkit_debug:0
msgid "Enable the webkit engine debugger"
msgstr ""
#. module: report_webkit
#: field:ir.header_img,img:0
msgid "Image"
msgstr ""
#. module: report_webkit
#: view:ir.header_img:0
msgid "Header Image"
msgstr "Толгой зураг"
#. module: report_webkit
#: field:res.company,header_webkit:0
msgid "Available html"
msgstr ""
#. module: report_webkit
#: help:report.webkit.actions,open_action:0
msgid ""
"Check this to view the newly added internal print action after creating it "
"(technical view) "
msgstr ""
#. module: report_webkit
#: view:res.company:0
msgid "Images"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,orientation:0
msgid "Portrait"
msgstr ""
#. module: report_webkit
#: view:report.webkit.actions:0
msgid "or"
msgstr "эсвэл"
#. module: report_webkit
#: selection:ir.header_webkit,orientation:0
msgid "Landscape"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B8 22 62 x 88 mm"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:177
#, python-format
msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A2 7 420 x 594 mm"
msgstr ""
#. module: report_webkit
#: field:report.webkit.actions,print_button:0
msgid "Add print button"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A9 13 37 x 52 mm"
msgstr ""
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_res_company
msgid "Companies"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,margin_bottom:0
msgid "Bottom Margin (mm)"
msgstr ""
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_report_webkit_actions
msgid "Webkit Actions"
msgstr ""
#. module: report_webkit
#: field:report.webkit.actions,open_action:0
msgid "Open added action"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,margin_right:0
msgid "Right Margin (mm)"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:228
#, python-format
msgid "Webkit report template not found!"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,orientation:0
msgid "Orientation"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B6 20 125 x 176 mm"
msgstr ""
#. module: report_webkit
#: help:ir.header_webkit,html:0
msgid "Set Webkit Report Header"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,format:0
msgid "Paper size"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid ":B10 16 31 x 44 mm"
msgstr ""
#. module: report_webkit
#: view:report.webkit.actions:0
msgid "Cancel"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,css:0
msgid "Header CSS"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B4 19 250 x 353 mm"
msgstr ""
#. module: report_webkit
#: model:ir.actions.act_window,name:report_webkit.action_header_img
#: model:ir.ui.menu,name:report_webkit.menu_header_img
msgid "Webkit Logos"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:172
#, python-format
msgid "No diagnosis message was provided"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A3 8 297 x 420 mm"
msgstr ""
#. module: report_webkit
#: field:ir.actions.report.xml,report_webkit_data:0
msgid "Webkit Template"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,footer_html:0
msgid "webkit footer"
msgstr ""
#. module: report_webkit
#: field:ir.actions.report.xml,webkit_debug:0
msgid "Webkit debug"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B0 14 1000 x 1414 mm"
msgstr ""
#. module: report_webkit
#: field:ir.header_img,name:0
#: field:ir.header_webkit,name:0
msgid "Name"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A5 9 148 x 210 mm"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "A8 12 52 x 74 mm"
msgstr ""
#. module: report_webkit
#: model:ir.actions.act_window,name:report_webkit.wizard_ofdo_report_actions
#: view:report.webkit.actions:0
msgid "Add Print Buttons"
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope"
msgstr ""
#. module: report_webkit
#: field:ir.header_webkit,margin_left:0
msgid "Left Margin (mm)"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:228
#, python-format
msgid "Error!"
msgstr ""
#. module: report_webkit
#: help:ir.header_webkit,footer_html:0
msgid "Set Webkit Report Footer."
msgstr ""
#. module: report_webkit
#: selection:ir.header_webkit,format:0
msgid "B9 23 33 x 62 mm"
msgstr ""
#. module: report_webkit
#: model:ir.model,name:report_webkit.model_ir_actions_report_xml
msgid "ir.actions.report.xml"
msgstr ""
#. module: report_webkit
#: code:addons/report_webkit/webkit_report.py:174
#, python-format
msgid "The following diagnosis message was provided:\n"
msgstr ""
#. module: report_webkit
#: view:ir.header_webkit:0
msgid "HTML Header"
msgstr ""
+8 -14
View File
@@ -418,8 +418,7 @@ class sale_order(osv.osv):
This function prints the sales order and mark it as sent, so that we can see more easily the next step of the workflow
'''
assert len(ids) == 1, 'This option should only be used for a single id at a time'
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'sale.order', ids[0], 'quotation_sent', cr)
self.signal_quotation_sent(cr, uid, ids)
datas = {
'model': 'sale.order',
'ids': ids,
@@ -432,12 +431,10 @@ class sale_order(osv.osv):
view of one of the newly created invoices
"""
mod_obj = self.pool.get('ir.model.data')
wf_service = netsvc.LocalService("workflow")
# create invoices through the sales orders' workflow
inv_ids0 = set(inv.id for sale in self.browse(cr, uid, ids, context) for inv in sale.invoice_ids)
for id in ids:
wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr)
self.signal_manual_invoice(cr, uid, ids)
inv_ids1 = set(inv.id for sale in self.browse(cr, uid, ids, context) for inv in sale.invoice_ids)
# determine newly created invoices
new_inv_ids = list(inv_ids1 - inv_ids0)
@@ -555,10 +552,10 @@ class sale_order(osv.osv):
return True
def action_cancel(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
sale_order_line_obj = self.pool.get('sale.order.line')
account_invoice_obj = self.pool.get('account.invoice')
for sale in self.browse(cr, uid, ids, context=context):
for inv in sale.invoice_ids:
if inv.state not in ('draft', 'cancel'):
@@ -566,8 +563,7 @@ class sale_order(osv.osv):
_('Cannot cancel this sales order!'),
_('First cancel all invoices attached to this sales order.'))
for r in self.read(cr, uid, ids, ['invoice_ids']):
for inv in r['invoice_ids']:
wf_service.trg_validate(uid, 'account.invoice', inv, 'invoice_cancel', cr)
account_invoice_obj.signal_invoice_cancel(cr, uid, r['invoice_ids'])
sale_order_line_obj.write(cr, uid, [l.id for l in sale.order_line],
{'state': 'cancel'})
self.write(cr, uid, ids, {'state': 'cancel'})
@@ -575,8 +571,7 @@ class sale_order(osv.osv):
def action_button_confirm(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
wf_service = netsvc.LocalService('workflow')
wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)
self.signal_order_confirm(cr, uid, ids)
# redisplay the record as a sales order
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form')
@@ -880,7 +875,7 @@ class sale_order_line(osv.osv):
date_order = time.strftime(DEFAULT_SERVER_DATE_FORMAT)
result = {}
warning_msgs = {}
warning_msgs = ''
product_obj = product_obj.browse(cr, uid, product, context=context_partner)
uom2 = False
@@ -991,8 +986,7 @@ class mail_compose_message(osv.Model):
context = context or {}
if context.get('default_model') == 'sale.order' and context.get('default_res_id') and context.get('mark_so_as_sent'):
context = dict(context, mail_post_autofollow=True)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'sale.order', context['default_res_id'], 'quotation_sent', cr)
self.pool.get('sale.order').signal_quotation_sent(cr, uid, [context['default_res_id']])
return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+2 -3
View File
@@ -51,11 +51,10 @@
I cancel all the invoices.
-
!python {model: sale.order}: |
from openerp import netsvc
invoice_ids = self.browse(cr, uid, ref("sale_order_8")).invoice_ids
wf_service = netsvc.LocalService("workflow")
account_invoice_obj = self.pool.get('account.invoice')
for invoice in invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_cancel', cr)
account_invoice_obj.signal_invoice_cancel(cr, uid, [invoice.id])
-
I check order status in "Invoice Exception" and related invoice is in cancel state.
-
+2 -3
View File
@@ -41,11 +41,10 @@
I open the Invoice.
-
!python {model: sale.order}: |
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
so = self.browse(cr, uid, ref("sale_order_2"))
account_invoice_obj = self.pool.get('account.invoice')
for invoice in so.invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
account_invoice_obj.signal_invoice_open(cr, uid, [invoice.id])
-
I pay the invoice.
-
+1 -2
View File
@@ -80,7 +80,6 @@ class sale_order_line_make_invoice(osv.osv_memory):
sales_order_line_obj = self.pool.get('sale.order.line')
sales_order_obj = self.pool.get('sale.order')
wf_service = netsvc.LocalService('workflow')
for line in sales_order_line_obj.browse(cr, uid, context.get('active_ids', []), context=context):
if (not line.invoiced) and (line.state not in ('draft', 'cancel')):
if not line.order_id.id in invoices:
@@ -103,7 +102,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
flag = False
break
if flag:
wf_service.trg_validate(uid, 'sale.order', line.order_id.id, 'manual_invoice', cr)
sales_order_obj.signal_manual_invoice(cr, uid, [line.order_id.id])
sales_order_obj.write(cr, uid, [line.order_id.id], {'state': 'progress'})
if not invoices:
+2 -4
View File
@@ -52,10 +52,8 @@ class sale_make_invoice(osv.osv_memory):
context = {}
data = self.read(cr, uid, ids)[0]
order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_inv = data['invoice_date'])
wf_service = netsvc.LocalService("workflow")
for id in context.get(('active_ids'), []):
wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr)
order_obj.signal_manual_invoice(cr, uid, context.get(('active_ids'), []))
for o in order_obj.browse(cr, uid, context.get(('active_ids'), []), context=context):
for i in o.invoice_ids:
newinv.append(i.id)
+1 -4
View File
@@ -103,11 +103,8 @@
!python {model: procurement.order}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
proc_ids = self.search(cr, uid, [('origin','=',so.name)])
for proc in proc_ids:
wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
self.signal_button_check(cr, uid, proc_ids)
-
I verify that a procurement state is "running"
-
+5 -10
View File
@@ -23,7 +23,6 @@ from datetime import datetime, timedelta
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP, float_compare
from dateutil.relativedelta import relativedelta
from openerp.osv import fields, osv
from openerp import netsvc
from openerp.tools.translate import _
class sale_shop(osv.osv):
@@ -194,11 +193,11 @@ class sale_order(osv.osv):
return res
def action_cancel(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
sale_order_line_obj = self.pool.get('sale.order.line')
proc_obj = self.pool.get('procurement.order')
stock_obj = self.pool.get('stock.picking')
for sale in self.browse(cr, uid, ids, context=context):
for pick in sale.picking_ids:
if pick.state not in ('draft', 'cancel'):
@@ -209,11 +208,9 @@ class sale_order(osv.osv):
for mov in pick.move_lines:
proc_ids = proc_obj.search(cr, uid, [('move_id', '=', mov.id)])
if proc_ids:
for proc in proc_ids:
wf_service.trg_validate(uid, 'procurement.order', proc, 'button_check', cr)
proc_obj.signal_button_check(cr, uid, proc_ids)
for r in self.read(cr, uid, ids, ['picking_ids']):
for pick in r['picking_ids']:
wf_service.trg_validate(uid, 'stock.picking', pick, 'button_cancel', cr)
stock_obj.signal_button_cancel(cr, uid, r['picking_ids'])
return super(sale_order, self).action_cancel(cr, uid, ids, context=context)
def action_wait(self, cr, uid, ids, context=None):
@@ -396,11 +393,9 @@ class sale_order(osv.osv):
line.write({'procurement_id': proc_id})
self.ship_recreate(cr, uid, order, line, move_id, proc_id)
wf_service = netsvc.LocalService("workflow")
if picking_id:
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
for proc_id in proc_ids:
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
picking_obj.signal_button_confirm(cr, uid, [picking_id])
procurement_obj.signal_button_confirm(cr, uid, proc_ids)
val = {}
if order.state == 'shipping_except':
@@ -17,11 +17,9 @@
Now I cancel latest shipment.
-
!python {model: stock.picking}: |
from openerp import netsvc
delivery_orders = self.search(cr, uid, [('sale_id','=',ref("sale.sale_order_8"))])
last_delivery_order_id = delivery_orders[0]
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'stock.picking', last_delivery_order_id, 'button_cancel', cr)
self.pool.get('stock.picking').signal_button_cancel(cr, uid, [last_delivery_order_id])
-
I run the scheduler.
-
@@ -50,11 +48,9 @@
To cancel the sale order from Invoice Exception, I have to cancel the invoice of sale order.
-
!python {model: sale.order}: |
from openerp import netsvc
invoice_ids = self.browse(cr, uid, ref("sale.sale_order_8")).invoice_ids
wf_service = netsvc.LocalService("workflow")
first_invoice_id = invoice_ids[0]
wf_service.trg_validate(uid, 'account.invoice', first_invoice_id.id, 'invoice_cancel', cr)
self.pool.get('account.invoice').signal_invoice_cancel(cr, uid, [first_invoice_id.id])
-
I check order status in "Invoice Exception" and related invoice is in cancel state.
-
@@ -132,11 +132,10 @@
I open the Invoice.
-
!python {model: sale.order}: |
from openerp import netsvc
wf_service = netsvc.LocalService("workflow")
so = self.browse(cr, uid, ref("sale.sale_order_6"))
account_invoice_obj = self.pool.get('account.invoice')
for invoice in so.invoice_ids:
wf_service.trg_validate(uid, 'account.invoice', invoice.id, 'invoice_open', cr)
account_invoice_obj.signal_invoice_open(cr, uid, [invoice.id])
-
I pay the invoice
-
+44 -30
View File
@@ -759,10 +759,9 @@ class stock_picking(osv.osv):
""" Changes state of picking to available if all moves are confirmed.
@return: True
"""
wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
if pick.state == 'draft':
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_confirm', cr)
self.signal_button_confirm(cr, uid, [pick.id])
move_ids = [x.id for x in pick.move_lines if x.state == 'confirmed']
if not move_ids:
raise osv.except_osv(_('Warning!'),_('Not enough stock, unable to reserve the products.'))
@@ -784,12 +783,10 @@ class stock_picking(osv.osv):
""" Confirms picking directly from draft state.
@return: True
"""
wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
if not pick.move_lines:
raise osv.except_osv(_('Error!'),_('You cannot process picking without stock moves.'))
wf_service.trg_validate(uid, 'stock.picking', pick.id,
'button_confirm', cr)
self.signal_button_confirm(cr, uid, [pick.id])
return True
def draft_validate(self, cr, uid, ids, context=None):
@@ -1345,18 +1342,18 @@ class stock_picking(osv.osv):
# At first we confirm the new picking (if necessary)
if new_picking:
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
self.signal_button_confirm(cr, uid, [new_picking])
# Then we finish the good picking
self.write(cr, uid, [pick.id], {'backorder_id': new_picking})
self.action_move(cr, uid, [new_picking], context=context)
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_done', cr)
self.signal_button_done(cr, uid, [new_picking])
wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
delivered_pack_id = new_picking
back_order_name = self.browse(cr, uid, delivered_pack_id, context=context).name
self.message_post(cr, uid, ids, body=_("Back order <em>%s</em> has been <b>created</b>.") % (back_order_name), context=context)
else:
self.action_move(cr, uid, [pick.id], context=context)
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_done', cr)
self.signal_button_done(cr, uid, [pick.id])
delivered_pack_id = pick.id
delivered_pack = self.browse(cr, uid, delivered_pack_id, context=context)
@@ -2037,7 +2034,6 @@ class stock_move(osv.osv):
res_obj = self.pool.get('res.company')
location_obj = self.pool.get('stock.location')
move_obj = self.pool.get('stock.move')
wf_service = netsvc.LocalService("workflow")
new_moves = []
if context is None:
context = {}
@@ -2073,7 +2069,7 @@ class stock_move(osv.osv):
})
new_moves.append(self.browse(cr, uid, [new_id])[0])
if pickid:
wf_service.trg_validate(uid, 'stock.picking', pickid, 'button_confirm', cr)
self.signal_button_confirm(cr, uid, [pickid])
if new_moves:
new_moves += self.create_chained_picking(cr, uid, new_moves, context)
return new_moves
@@ -2195,6 +2191,7 @@ class stock_move(osv.osv):
return True
if context is None:
context = {}
wf_service = netsvc.LocalService("workflow")
pickings = set()
for move in self.browse(cr, uid, ids, context=context):
if move.state in ('confirmed', 'waiting', 'assigned', 'draft'):
@@ -2203,7 +2200,6 @@ class stock_move(osv.osv):
if move.move_dest_id and move.move_dest_id.state == 'waiting':
self.write(cr, uid, [move.move_dest_id.id], {'state': 'assigned'})
if context.get('call_unlink',False) and move.move_dest_id.picking_id:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_write(uid, 'stock.picking', move.move_dest_id.picking_id.id, cr)
self.write(cr, uid, ids, {'state': 'cancel', 'move_dest_id': False})
if not context.get('call_unlink',False):
@@ -2211,7 +2207,6 @@ class stock_move(osv.osv):
if all(move.state == 'cancel' for move in pick.move_lines):
self.pool.get('stock.picking').write(cr, uid, [pick.id], {'state': 'cancel'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_trigger(uid, 'stock.move', id, cr)
return True
@@ -2633,7 +2628,6 @@ class stock_move(osv.osv):
product_obj = self.pool.get('product.product')
currency_obj = self.pool.get('res.currency')
uom_obj = self.pool.get('product.uom')
wf_service = netsvc.LocalService("workflow")
if context is None:
context = {}
@@ -2734,7 +2728,7 @@ class stock_move(osv.osv):
res = cr.fetchall()
if len(res) == len(move.picking_id.move_lines):
picking_obj.action_move(cr, uid, [move.picking_id.id])
wf_service.trg_validate(uid, 'stock.picking', move.picking_id.id, 'button_done', cr)
picking_obj.signal_button_done(cr, uid, [move.picking_id.id])
return [move.id for move in complete]
@@ -2953,15 +2947,25 @@ class stock_picking_in(osv.osv):
#override in order to redirect the check of acces rules on the stock.picking object
return self.pool.get('stock.picking').check_access_rule(cr, uid, ids, operation, context=context)
def _workflow_trigger(self, cr, uid, ids, trigger, context=None):
#override in order to trigger the workflow of stock.picking at the end of create, write and unlink operation
#instead of it's own workflow (which is not existing)
return self.pool.get('stock.picking')._workflow_trigger(cr, uid, ids, trigger, context=context)
def create_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').create_workflow(cr, uid, ids, context=context)
def _workflow_signal(self, cr, uid, ids, signal, context=None):
#override in order to fire the workflow signal on given stock.picking workflow instance
#instead of it's own workflow (which is not existing)
return self.pool.get('stock.picking')._workflow_signal(cr, uid, ids, signal, context=context)
def delete_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').delete_workflow(cr, uid, ids, context=context)
def step_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').step_workflow(cr, uid, ids, context=context)
def signal_workflow(self, cr, uid, ids, signal, context=None):
# overridden in order to fire the workflow signal on given stock.picking workflow instance
# instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').signal_workflow(cr, uid, ids, signal, context=context)
_columns = {
'backorder_id': fields.many2one('stock.picking.in', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
@@ -2998,15 +3002,25 @@ class stock_picking_out(osv.osv):
#override in order to redirect the check of acces rules on the stock.picking object
return self.pool.get('stock.picking').check_access_rule(cr, uid, ids, operation, context=context)
def _workflow_trigger(self, cr, uid, ids, trigger, context=None):
#override in order to trigger the workflow of stock.picking at the end of create, write and unlink operation
#instead of it's own workflow (which is not existing)
return self.pool.get('stock.picking')._workflow_trigger(cr, uid, ids, trigger, context=context)
def create_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').create_workflow(cr, uid, ids, context=context)
def _workflow_signal(self, cr, uid, ids, signal, context=None):
#override in order to fire the workflow signal on given stock.picking workflow instance
#instead of it's own workflow (which is not existing)
return self.pool.get('stock.picking')._workflow_signal(cr, uid, ids, signal, context=context)
def delete_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').delete_workflow(cr, uid, ids, context=context)
def step_workflow(self, cr, uid, ids, context=None):
# overridden in order to trigger the workflow of stock.picking at the end of create,
# write and unlink operation instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').step_workflow(cr, uid, ids, context=context)
def signal_workflow(self, cr, uid, ids, signal, context=None):
# overridden in order to fire the workflow signal on given stock.picking workflow instance
# instead of its own workflow (which is not existing)
return self.pool.get('stock.picking').signal_workflow(cr, uid, ids, signal, context=context)
_columns = {
'backorder_id': fields.many2one('stock.picking.out', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
+1 -2
View File
@@ -151,7 +151,6 @@ class stock_return_picking(osv.osv_memory):
data_obj = self.pool.get('stock.return.picking.memory')
act_obj = self.pool.get('ir.actions.act_window')
model_obj = self.pool.get('ir.model.data')
wf_service = netsvc.LocalService("workflow")
pick = pick_obj.browse(cr, uid, record_id, context=context)
data = self.read(cr, uid, ids[0], context=context)
date_cur = time.strftime('%Y-%m-%d %H:%M:%S')
@@ -206,7 +205,7 @@ class stock_return_picking(osv.osv_memory):
if set_invoice_state_to_none:
pick_obj.write(cr, uid, [pick.id], {'invoice_state':'none'}, context=context)
wf_service.trg_validate(uid, 'stock.picking', new_picking, 'button_confirm', cr)
pick_obj.signal_button_confirm(cr, uid, [new_picking])
pick_obj.force_assign(cr, uid, [new_picking], context)
# Update view id in context, lp:702939
model_list = {

Some files were not shown because too many files have changed in this diff Show More