[MERGE]with main
bzr revid: prajapatijitendra7969@gmail.com-20131212084543-j15w6z4y0osluijw
This commit is contained in:
commit
ebf0c80a00
|
@ -28,7 +28,7 @@ import time
|
||||||
import openerp
|
import openerp
|
||||||
from openerp import SUPERUSER_ID
|
from openerp import SUPERUSER_ID
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv, expression
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp.tools.float_utils import float_round
|
from openerp.tools.float_utils import float_round
|
||||||
|
|
||||||
|
@ -579,15 +579,18 @@ class account_account(osv.osv):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if name:
|
if name:
|
||||||
ids = self.search(cr, user, [('code', '=like', name+"%")]+args, limit=limit)
|
if operator not in expression.NEGATIVE_TERM_OPERATORS:
|
||||||
if not ids:
|
ids = self.search(cr, user, ['|', ('code', '=like', name+"%"), '|', ('shortcut', '=', name), ('name', operator, name)]+args, limit=limit)
|
||||||
ids = self.search(cr, user, [('shortcut', '=', name)]+ args, limit=limit)
|
if not ids and len(name.split()) >= 2:
|
||||||
if not ids:
|
#Separating code and name of account for searching
|
||||||
ids = self.search(cr, user, [('name', operator, name)]+ args, limit=limit)
|
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
|
||||||
if not ids and len(name.split()) >= 2:
|
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
|
||||||
#Separating code and name of account for searching
|
else:
|
||||||
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
|
ids = self.search(cr, user, ['&','!', ('code', '=like', name+"%"), ('name', operator, name)]+args, limit=limit)
|
||||||
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
|
# as negation want to restric, do if already have results
|
||||||
|
if ids and len(name.split()) >= 2:
|
||||||
|
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
|
||||||
|
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2), ('id', 'in', ids)]+ args, limit=limit)
|
||||||
else:
|
else:
|
||||||
ids = self.search(cr, user, args, context=context, limit=limit)
|
ids = self.search(cr, user, args, context=context, limit=limit)
|
||||||
return self.name_get(cr, user, ids, context=context)
|
return self.name_get(cr, user, ids, context=context)
|
||||||
|
@ -1573,11 +1576,6 @@ class account_move(osv.osv):
|
||||||
obj_analytic_line = self.pool.get('account.analytic.line')
|
obj_analytic_line = self.pool.get('account.analytic.line')
|
||||||
obj_move_line = self.pool.get('account.move.line')
|
obj_move_line = self.pool.get('account.move.line')
|
||||||
for move in self.browse(cr, uid, ids, context):
|
for move in self.browse(cr, uid, ids, context):
|
||||||
# Unlink old analytic lines on move_lines
|
|
||||||
for obj_line in move.line_id:
|
|
||||||
for obj in obj_line.analytic_lines:
|
|
||||||
obj_analytic_line.unlink(cr,uid,obj.id)
|
|
||||||
|
|
||||||
journal = move.journal_id
|
journal = move.journal_id
|
||||||
amount = 0
|
amount = 0
|
||||||
line_ids = []
|
line_ids = []
|
||||||
|
@ -3414,6 +3412,8 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
||||||
all the provided information to create the accounts, the banks, the journals, the taxes, the tax codes, the
|
all the provided information to create the accounts, the banks, the journals, the taxes, the tax codes, the
|
||||||
accounting properties... accordingly for the chosen company.
|
accounting properties... accordingly for the chosen company.
|
||||||
'''
|
'''
|
||||||
|
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
|
||||||
|
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
|
||||||
obj_data = self.pool.get('ir.model.data')
|
obj_data = self.pool.get('ir.model.data')
|
||||||
ir_values_obj = self.pool.get('ir.values')
|
ir_values_obj = self.pool.get('ir.values')
|
||||||
obj_wizard = self.browse(cr, uid, ids[0])
|
obj_wizard = self.browse(cr, uid, ids[0])
|
||||||
|
@ -3430,7 +3430,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
||||||
self.pool[tmp2[0]].write(cr, uid, tmp2[1], {
|
self.pool[tmp2[0]].write(cr, uid, tmp2[1], {
|
||||||
'currency_id': obj_wizard.currency_id.id
|
'currency_id': obj_wizard.currency_id.id
|
||||||
})
|
})
|
||||||
except ValueError, e:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# If the floats for sale/purchase rates have been filled, create templates from them
|
# If the floats for sale/purchase rates have been filled, create templates from them
|
||||||
|
|
|
@ -193,6 +193,8 @@ class account_move_line(osv.osv):
|
||||||
if obj_line.analytic_account_id:
|
if obj_line.analytic_account_id:
|
||||||
if not obj_line.journal_id.analytic_journal_id:
|
if not obj_line.journal_id.analytic_journal_id:
|
||||||
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
|
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
|
||||||
|
if obj_line.analytic_lines:
|
||||||
|
acc_ana_line_obj.unlink(cr,uid,[obj.id for obj in obj_line.analytic_lines])
|
||||||
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
|
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
|
||||||
acc_ana_line_obj.create(cr, uid, vals_line)
|
acc_ana_line_obj.create(cr, uid, vals_line)
|
||||||
return True
|
return True
|
||||||
|
@ -1207,20 +1209,6 @@ class account_move_line(osv.osv):
|
||||||
if not ok:
|
if not ok:
|
||||||
raise osv.except_osv(_('Bad Account!'), _('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.'))
|
raise osv.except_osv(_('Bad Account!'), _('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.'))
|
||||||
|
|
||||||
if vals.get('analytic_account_id',False):
|
|
||||||
if journal.analytic_journal_id:
|
|
||||||
vals['analytic_lines'] = [(0,0, {
|
|
||||||
'name': vals['name'],
|
|
||||||
'date': vals.get('date', time.strftime('%Y-%m-%d')),
|
|
||||||
'account_id': vals.get('analytic_account_id', False),
|
|
||||||
'unit_amount': vals.get('quantity', 1.0),
|
|
||||||
'amount': vals.get('debit', 0.0) or vals.get('credit', 0.0),
|
|
||||||
'general_account_id': vals.get('account_id', False),
|
|
||||||
'journal_id': journal.analytic_journal_id.id,
|
|
||||||
'ref': vals.get('ref', False),
|
|
||||||
'user_id': uid
|
|
||||||
})]
|
|
||||||
|
|
||||||
result = super(account_move_line, self).create(cr, uid, vals, context=context)
|
result = super(account_move_line, self).create(cr, uid, vals, context=context)
|
||||||
# CREATE Taxes
|
# CREATE Taxes
|
||||||
if vals.get('account_tax_id', False):
|
if vals.get('account_tax_id', False):
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2012-12-27 22:48+0000\n"
|
"PO-Revision-Date: 2013-12-10 17:32+0000\n"
|
||||||
"Last-Translator: Balint (eSolve) <Unknown>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 05:27+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||||
|
@ -26,6 +26,8 @@ msgstr "Kifizetési rendszer"
|
||||||
msgid ""
|
msgid ""
|
||||||
"An account fiscal position could be defined only once time on same accounts."
|
"An account fiscal position could be defined only once time on same accounts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Egy könyvelés költségvetési évfordulóját csak egyszer lehet megadni az arra "
|
||||||
|
"hivatkozó számlákra vonatkozólag."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.tax.code,sequence:0
|
#: help:account.tax.code,sequence:0
|
||||||
|
@ -33,6 +35,8 @@ msgid ""
|
||||||
"Determine the display order in the report 'Accounting \\ Reporting \\ "
|
"Determine the display order in the report 'Accounting \\ Reporting \\ "
|
||||||
"Generic Reporting \\ Taxes \\ Taxes Report'"
|
"Generic Reporting \\ Taxes \\ Taxes Report'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Meghatározza a kijelzés sorrendjét a kimutatáson 'Könyvelés \\ "
|
||||||
|
"Kimutatáskészítés \\ Általános kimutatás \\ Adók \\ Adó kimutatás'"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.move.reconcile:0
|
#: view:account.move.reconcile:0
|
||||||
|
@ -60,7 +64,7 @@ msgstr "Rendezetlen összeg"
|
||||||
#: code:addons/account/account_bank_statement.py:369
|
#: code:addons/account/account_bank_statement.py:369
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Journal item \"%s\" is not valid."
|
msgid "Journal item \"%s\" is not valid."
|
||||||
msgstr ""
|
msgstr "A \"%s\" könyvelési napló tétel nem érvényes."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_report_aged_receivable
|
#: model:ir.model,name:account.model_report_aged_receivable
|
||||||
|
@ -78,7 +82,7 @@ msgstr "Importálás számlából vagy pénzügyi rendezésből"
|
||||||
#: code:addons/account/account_move_line.py:1210
|
#: code:addons/account/account_move_line.py:1210
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Bad Account!"
|
msgid "Bad Account!"
|
||||||
msgstr ""
|
msgstr "Eltévesztett könyvelési számla!"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.move:0
|
#: view:account.move:0
|
||||||
|
@ -92,6 +96,8 @@ msgid ""
|
||||||
"Error!\n"
|
"Error!\n"
|
||||||
"You cannot create recursive account templates."
|
"You cannot create recursive account templates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hiba!\n"
|
||||||
|
"Nem hozhat létre visszatérő számla sablonokat."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -102,7 +108,7 @@ msgstr ""
|
||||||
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:30
|
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:30
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Reconcile"
|
msgid "Reconcile"
|
||||||
msgstr "Párosítás"
|
msgstr "Egyeztetés"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.bank.statement,name:0
|
#: field:account.bank.statement,name:0
|
||||||
|
@ -114,7 +120,7 @@ msgstr "Párosítás"
|
||||||
#: xsl:account.transfer:0
|
#: xsl:account.transfer:0
|
||||||
#: field:cash.box.in,ref:0
|
#: field:cash.box.in,ref:0
|
||||||
msgid "Reference"
|
msgid "Reference"
|
||||||
msgstr "Hivatkozás"
|
msgstr "Információforrás"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.payment.term,active:0
|
#: help:account.payment.term,active:0
|
||||||
|
@ -122,7 +128,8 @@ msgid ""
|
||||||
"If the active field is set to False, it will allow you to hide the payment "
|
"If the active field is set to False, it will allow you to hide the payment "
|
||||||
"term without removing it."
|
"term without removing it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ha az aktív mező nincs bejelölve, nem használható a fizetési feltétel."
|
"Ha az aktív mező hamisra van állatva, akkor a fizetési feltételt "
|
||||||
|
"eltüntetheti anélkül, hogy törölné azt."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/account.py:641
|
#: code:addons/account/account.py:641
|
||||||
|
@ -151,7 +158,7 @@ msgstr "Figyelem!"
|
||||||
#: code:addons/account/account.py:3197
|
#: code:addons/account/account.py:3197
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Miscellaneous Journal"
|
msgid "Miscellaneous Journal"
|
||||||
msgstr "Vegyes napló"
|
msgstr "Vegyes könyvelési napló"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
|
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39
|
||||||
|
@ -161,12 +168,14 @@ msgid ""
|
||||||
"which is set after generating opening entries from 'Generate Opening "
|
"which is set after generating opening entries from 'Generate Opening "
|
||||||
"Entries'."
|
"Entries'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Be kell állítania az 'Év végi belépő könyvelési naplót' a 'Nyitási tétel "
|
||||||
|
"létrehozása' menüvel létrehozott üzleti év tételekhez."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.fiscal.position.account,account_src_id:0
|
#: field:account.fiscal.position.account,account_src_id:0
|
||||||
#: field:account.fiscal.position.account.template,account_src_id:0
|
#: field:account.fiscal.position.account.template,account_src_id:0
|
||||||
msgid "Account Source"
|
msgid "Account Source"
|
||||||
msgstr "Eredeti főkönyvi számla"
|
msgstr "Forrás főkönyvi számla"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.actions.act_window,help:account.action_account_period
|
#: model:ir.actions.act_window,help:account.action_account_period
|
||||||
|
@ -179,6 +188,14 @@ msgid ""
|
||||||
" </p>\n"
|
" </p>\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
|
" Kattintson üzleti szakasz hozzáadásához.\n"
|
||||||
|
" </p><p>\n"
|
||||||
|
" Egy könyvelési szakasz leggyakrabban egy negyedév vagy egy "
|
||||||
|
"hónap. \n"
|
||||||
|
" Általában összhangban van az adóbevallás periódusával.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
|
#: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard
|
||||||
|
@ -188,12 +205,12 @@ msgstr "Az elmúlt 15 napban készített számlák"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:accounting.report,label_filter:0
|
#: field:accounting.report,label_filter:0
|
||||||
msgid "Column Label"
|
msgid "Column Label"
|
||||||
msgstr ""
|
msgstr "Oszlop elnevezés"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,code_digits:0
|
#: help:account.config.settings,code_digits:0
|
||||||
msgid "No. of digits to use for account code"
|
msgid "No. of digits to use for account code"
|
||||||
msgstr ""
|
msgstr "Könyvelési kódnak használt számlyegyek száma"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.analytic.journal,type:0
|
#: help:account.analytic.journal,type:0
|
||||||
|
@ -213,6 +230,9 @@ msgid ""
|
||||||
"lines for invoices. Leave empty if you don't want to use an analytic account "
|
"lines for invoices. Leave empty if you don't want to use an analytic account "
|
||||||
"on the invoice tax lines by default."
|
"on the invoice tax lines by default."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Elemző számla mely alapértelmezésben a számlák adó tételének számlája. "
|
||||||
|
"Hagyja üresen, ha alap értelmezésben nem szeretne elemző számát használni a "
|
||||||
|
"számlák adó tételeire."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
|
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
|
||||||
|
@ -252,11 +272,14 @@ msgid ""
|
||||||
"legal reports, and set the rules to close a fiscal year and generate opening "
|
"legal reports, and set the rules to close a fiscal year and generate opening "
|
||||||
"entries."
|
"entries."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Számla típus információs célt szolgál, országra jellemző törvényekre sajátos "
|
||||||
|
"kimutatások létrehozásához, és az induló tételek létrehozásához valamint az "
|
||||||
|
"üzleti év lezáró szabályainak beállításához."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,sale_refund_sequence_next:0
|
#: field:account.config.settings,sale_refund_sequence_next:0
|
||||||
msgid "Next credit note number"
|
msgid "Next credit note number"
|
||||||
msgstr ""
|
msgstr "Következő jóváírási értesítés szám"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,module_account_voucher:0
|
#: help:account.config.settings,module_account_voucher:0
|
||||||
|
@ -265,6 +288,9 @@ msgid ""
|
||||||
"sales, purchase, expense, contra, etc.\n"
|
"sales, purchase, expense, contra, etc.\n"
|
||||||
" This installs the module account_voucher."
|
" This installs the module account_voucher."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ez magába foglalja az összes alap követelményt a banki, készpénzes, "
|
||||||
|
"vásárlói, beszerzési, kiadási, visszaküldött, stb nyugta bevitelhez.\n"
|
||||||
|
" Ez a account_voucher (könyvelés_nyugta) modult telepíti.."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
|
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
|
||||||
|
@ -296,6 +322,17 @@ msgid ""
|
||||||
" </p>\n"
|
" </p>\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
|
" Kattintson ügyfél visszatérítés létrehozásához. \n"
|
||||||
|
" </p><p>\n"
|
||||||
|
" A visszatérítés egy dokumentum a számla teljes összegének "
|
||||||
|
"vagy részének a \n"
|
||||||
|
" jóváírásról.\n"
|
||||||
|
" </p><p>\n"
|
||||||
|
" Kézi ügyfél részére történő jóváírás helyett, megteheti\n"
|
||||||
|
" azt közvetlenül az ide vonatkozó ügyfél számlából.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.installer,charts:0
|
#: help:account.installer,charts:0
|
||||||
|
@ -304,12 +341,12 @@ msgid ""
|
||||||
"accounting needs of your company based on your country."
|
"accounting needs of your company based on your country."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lokalizált számlatükröt állít be, hogy amilyen szorosan csak lehet, "
|
"Lokalizált számlatükröt állít be, hogy amilyen szorosan csak lehet, "
|
||||||
"illeszkedjen a vállalat szükségletéhez."
|
"illeszkedjen a vállalat szükségletéhez az országra vonatkozóan."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_account_unreconcile
|
#: model:ir.model,name:account.model_account_unreconcile
|
||||||
msgid "Account Unreconcile"
|
msgid "Account Unreconcile"
|
||||||
msgstr "Párosítás visszavonása"
|
msgstr "Könyvelési számla párosítás visszavonása"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,module_account_budget:0
|
#: field:account.config.settings,module_account_budget:0
|
||||||
|
@ -319,7 +356,7 @@ msgstr "Költségvetés kezelés"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:product.template:0
|
#: view:product.template:0
|
||||||
msgid "Purchase Properties"
|
msgid "Purchase Properties"
|
||||||
msgstr "Beszerzés könyvelési beállítások"
|
msgstr "Beszerzési tulajdonságok"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.financial.report,style_overwrite:0
|
#: help:account.financial.report,style_overwrite:0
|
||||||
|
@ -328,17 +365,20 @@ msgid ""
|
||||||
"leave the automatic formatting, it will be computed based on the financial "
|
"leave the automatic formatting, it will be computed based on the financial "
|
||||||
"reports hierarchy (auto-computed field 'level')."
|
"reports hierarchy (auto-computed field 'level')."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Beállíthatja ennek a rekordnak a megjelenítési formáját. Ha automatikus "
|
||||||
|
"formázást hagyja, akkor az a pénzügyi jelentés rangsora alapján lesz "
|
||||||
|
"kiszámítva (automatikusan számított mező a 'szint')."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,group_multi_currency:0
|
#: field:account.config.settings,group_multi_currency:0
|
||||||
msgid "Allow multi currencies"
|
msgid "Allow multi currencies"
|
||||||
msgstr ""
|
msgstr "Többféle valuta engedélyezése"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/account_invoice.py:77
|
#: code:addons/account/account_invoice.py:77
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You must define an analytic journal of type '%s'!"
|
msgid "You must define an analytic journal of type '%s'!"
|
||||||
msgstr ""
|
msgstr "Meg kell határoznia egy elemző gyüjtőnapló típust '%s'!"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.entries.report,month:0
|
#: selection:account.entries.report,month:0
|
||||||
|
@ -353,12 +393,12 @@ msgstr "Június"
|
||||||
#: code:addons/account/wizard/account_automatic_reconcile.py:148
|
#: code:addons/account/wizard/account_automatic_reconcile.py:148
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You must select accounts to reconcile."
|
msgid "You must select accounts to reconcile."
|
||||||
msgstr ""
|
msgstr "A párosításhoz könyvelési számlákat kell kiválasztania."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,group_analytic_accounting:0
|
#: help:account.config.settings,group_analytic_accounting:0
|
||||||
msgid "Allows you to use the analytic accounting."
|
msgid "Allows you to use the analytic accounting."
|
||||||
msgstr ""
|
msgstr "Főkönyvi számla használatának engedélyezése."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
|
@ -393,12 +433,12 @@ msgstr "Bejövő jóváíró számla"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.journal,type:0
|
#: selection:account.journal,type:0
|
||||||
msgid "Opening/Closing Situation"
|
msgid "Opening/Closing Situation"
|
||||||
msgstr "Nyitó/záró"
|
msgstr "Nyitó/záró állapot"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.journal,currency:0
|
#: help:account.journal,currency:0
|
||||||
msgid "The currency used to enter statement"
|
msgid "The currency used to enter statement"
|
||||||
msgstr "Tételek rögzítésének pénzneme"
|
msgstr "Számlakivonat tételek rögzítésének pénzneme"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.journal,default_debit_account_id:0
|
#: field:account.journal,default_debit_account_id:0
|
||||||
|
@ -409,7 +449,7 @@ msgstr "Alapértelmezett tartozik főkönyvi számla"
|
||||||
#: view:account.move:0
|
#: view:account.move:0
|
||||||
#: view:account.move.line:0
|
#: view:account.move.line:0
|
||||||
msgid "Total Credit"
|
msgid "Total Credit"
|
||||||
msgstr "Követel összesen"
|
msgstr "Összes követelés"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,module_account_asset:0
|
#: help:account.config.settings,module_account_asset:0
|
||||||
|
@ -421,11 +461,19 @@ msgid ""
|
||||||
"this box, you will be able to do invoicing & payments,\n"
|
"this box, you will be able to do invoicing & payments,\n"
|
||||||
" but not accounting (Journal Items, Chart of Accounts, ...)"
|
" but not accounting (Journal Items, Chart of Accounts, ...)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ez lehetővé teszi a személy vagy vállalat által birtokolt vagyoneszközök "
|
||||||
|
"nyilvántartását.\n"
|
||||||
|
" A vagyoneszközök értékcsökkenését követi nyomon, és "
|
||||||
|
"könyvelési számlák közt mozgatja ezeket az értékcsökkenő\n"
|
||||||
|
" tételeket.\n"
|
||||||
|
" Ez a account_asset (számla_eszköz) modult telepíti. Ha nem "
|
||||||
|
"jelöli be ezt a kockát, akkor tud számlázni & kifizetni,\n"
|
||||||
|
" de nem tud könyvelni (Napló tételeket, Számlatükröket, ...)"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.bank.statement.line,name:0
|
#: help:account.bank.statement.line,name:0
|
||||||
msgid "Originator to Beneficiary Information"
|
msgid "Originator to Beneficiary Information"
|
||||||
msgstr ""
|
msgstr "Kezdeményezőtől a kedvezményezetthez intézett információ"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -446,6 +494,7 @@ msgstr "Számlatükör sablon"
|
||||||
#: selection:account.invoice.refund,filter_refund:0
|
#: selection:account.invoice.refund,filter_refund:0
|
||||||
msgid "Modify: create refund, reconcile and create a new draft invoice"
|
msgid "Modify: create refund, reconcile and create a new draft invoice"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Módosít: visszatérítést, párosítást készít és új számla tervezetet hoz létre"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.config.settings,tax_calculation_rounding_method:0
|
#: help:account.config.settings,tax_calculation_rounding_method:0
|
||||||
|
@ -459,6 +508,16 @@ msgid ""
|
||||||
"should choose 'Round per line' because you certainly want the sum of your "
|
"should choose 'Round per line' because you certainly want the sum of your "
|
||||||
"tax-included line subtotals to be equal to the total amount with taxes."
|
"tax-included line subtotals to be equal to the total amount with taxes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ha kiválasztotta a 'Tétel soronkénti kerekítést' : mindegyik adóra, először "
|
||||||
|
"számítást és kerekítést végez minden egyes Beszerzési megrendelés "
|
||||||
|
"BM/Vásárlói megrendelés VM/számla tétel sorra és ezek a kerekített tételek "
|
||||||
|
"lesznek összegezve, így kialakítva a teljes adó értéket. Ha kiválasztotta a "
|
||||||
|
"'Teljes körű kerekítést': mindegyik adóra, először adó számítást végez "
|
||||||
|
"minden egyes Beszerzési megrendelés BM/Vásárlói megrendelés VM/számla tétel "
|
||||||
|
"sorra, melyek összegzésre kerülnek és végül ez a teljes adó összege lesz "
|
||||||
|
"kerekítve. Ha adóval együtt történik az eladás, akkor a 'Tétel soronkénti "
|
||||||
|
"kerekítést' válassza, mivel bizonyára azt szeretné, hogy az adóval növelt "
|
||||||
|
"tételsor összegei egyezzenek a teljes összeg adóval növel értékével."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
|
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
|
||||||
|
@ -473,12 +532,12 @@ msgstr "Az összeg egy választható más pénznemben kifejezve."
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.journal:0
|
#: view:account.journal:0
|
||||||
msgid "Available Coins"
|
msgid "Available Coins"
|
||||||
msgstr ""
|
msgstr "Rendelkezésre álló pénzérmék"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:accounting.report,enable_filter:0
|
#: field:accounting.report,enable_filter:0
|
||||||
msgid "Enable Comparison"
|
msgid "Enable Comparison"
|
||||||
msgstr ""
|
msgstr "Összehasonlítás bekapcsolása"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.analytic.line:0
|
#: view:account.analytic.line:0
|
||||||
|
@ -527,6 +586,7 @@ msgstr "Gyűjtő célszámla"
|
||||||
#: help:account.invoice.line,sequence:0
|
#: help:account.invoice.line,sequence:0
|
||||||
msgid "Gives the sequence of this line when displaying the invoice."
|
msgid "Gives the sequence of this line when displaying the invoice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ennek a tételsornak a sorszámát adja, amikor a számla kijelzésre kerül."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.bank.statement,account_id:0
|
#: field:account.bank.statement,account_id:0
|
||||||
|
@ -600,13 +660,13 @@ msgstr "Nincs párosítandó tétel"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,decimal_precision:0
|
#: field:account.config.settings,decimal_precision:0
|
||||||
msgid "Decimal precision on journal entries"
|
msgid "Decimal precision on journal entries"
|
||||||
msgstr ""
|
msgstr "Tizedes pontosság a napló bevitt tételeinél"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.config.settings,period:0
|
#: selection:account.config.settings,period:0
|
||||||
#: selection:account.installer,period:0
|
#: selection:account.installer,period:0
|
||||||
msgid "3 Monthly"
|
msgid "3 Monthly"
|
||||||
msgstr "Negyedéves"
|
msgstr "3 havonta"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:ir.sequence,fiscal_ids:0
|
#: field:ir.sequence,fiscal_ids:0
|
||||||
|
@ -626,6 +686,8 @@ msgid ""
|
||||||
"Specified journal does not have any account move entries in draft state for "
|
"Specified journal does not have any account move entries in draft state for "
|
||||||
"this period."
|
"this period."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"A kiválasztott napló nem rendelkezik tervezet állapotú számla mozgásokkal "
|
||||||
|
"erre az időszakra."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.fiscal.position:0
|
#: view:account.fiscal.position:0
|
||||||
|
@ -648,7 +710,7 @@ msgstr "A fő sorszámnak el kell térnie az aktuálistól!"
|
||||||
#: code:addons/account/wizard/account_change_currency.py:70
|
#: code:addons/account/wizard/account_change_currency.py:70
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Current currency is not configured properly."
|
msgid "Current currency is not configured properly."
|
||||||
msgstr ""
|
msgstr "A jelenlegi pénznem nincs megfelelően konfigurálva."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.journal,profit_account_id:0
|
#: field:account.journal,profit_account_id:0
|
||||||
|
@ -672,13 +734,13 @@ msgstr "Számlatípusonkénti értékesítési kimutatás"
|
||||||
#: code:addons/account/account.py:3201
|
#: code:addons/account/account.py:3201
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "SAJ"
|
msgid "SAJ"
|
||||||
msgstr "SAJ"
|
msgstr "Számlatípusonkénti értékesítés SZTÉ"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/account.py:1591
|
#: code:addons/account/account.py:1591
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Cannot create move with currency different from .."
|
msgid "Cannot create move with currency different from .."
|
||||||
msgstr ""
|
msgstr "Nem lehet mozgást végrehajtani, ha eltér a pénznem ettől .."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:email.template,report_name:account.email_template_edi_invoice
|
#: model:email.template,report_name:account.email_template_edi_invoice
|
||||||
|
@ -712,7 +774,7 @@ msgstr "Könyvelési időszak"
|
||||||
#: constraint:account.move:0
|
#: constraint:account.move:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot create more than one move per period on a centralized journal."
|
"You cannot create more than one move per period on a centralized journal."
|
||||||
msgstr ""
|
msgstr "Egy időszakra csak egy mozgatást végezhet a központosított naplón."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.tax,account_analytic_paid_id:0
|
#: help:account.tax,account_analytic_paid_id:0
|
||||||
|
@ -721,6 +783,9 @@ msgid ""
|
||||||
"lines for refunds. Leave empty if you don't want to use an analytic account "
|
"lines for refunds. Leave empty if you don't want to use an analytic account "
|
||||||
"on the invoice tax lines by default."
|
"on the invoice tax lines by default."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Állítsa be a gyűjtő/elemző számlát amit alapértelmezetten használ a számlák "
|
||||||
|
"adó tételsoraira a visszatérítéshez. Hagyja üresen, ha alapértelmezetten nem "
|
||||||
|
"szeretne gyűjtő/elemző számlát használni a számla adó tételsoraira."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.account:0
|
#: view:account.account:0
|
||||||
|
@ -733,17 +798,17 @@ msgstr ""
|
||||||
#: code:addons/account/report/account_partner_ledger.py:272
|
#: code:addons/account/report/account_partner_ledger.py:272
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Receivable Accounts"
|
msgid "Receivable Accounts"
|
||||||
msgstr "Vevő számlák"
|
msgstr "Követelés számlák"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.config.settings:0
|
#: view:account.config.settings:0
|
||||||
msgid "Configure your company bank accounts"
|
msgid "Configure your company bank accounts"
|
||||||
msgstr "A cég bankszámláinak beállítása"
|
msgstr "A cége bankszámláinak beállítása"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice.refund:0
|
#: view:account.invoice.refund:0
|
||||||
msgid "Create Refund"
|
msgid "Create Refund"
|
||||||
msgstr ""
|
msgstr "Visszatérítés létrehozása"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: constraint:account.move.line:0
|
#: constraint:account.move.line:0
|
||||||
|
@ -773,7 +838,7 @@ msgstr "Biztos benne, hogy létre akarja hozni a tételeket?"
|
||||||
#: code:addons/account/account_invoice.py:1361
|
#: code:addons/account/account_invoice.py:1361
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
|
msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
|
||||||
msgstr ""
|
msgstr "Számla részben fizetve: %s%s of %s%s (%s%s még maradt)."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
|
@ -787,6 +852,8 @@ msgid ""
|
||||||
"Cannot %s invoice which is already reconciled, invoice should be "
|
"Cannot %s invoice which is already reconciled, invoice should be "
|
||||||
"unreconciled first. You can only refund this invoice."
|
"unreconciled first. You can only refund this invoice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Nem lehet %s számlázni, mert párosítva van, először szüntesse meg a "
|
||||||
|
"párosítást. Ezt a számlát csak visszatérítheti."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.financial.report,display_detail:0
|
#: selection:account.financial.report,display_detail:0
|
||||||
|
@ -814,7 +881,7 @@ msgstr "Soronkénti gyűjtőkód tételek"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.invoice.refund,filter_refund:0
|
#: field:account.invoice.refund,filter_refund:0
|
||||||
msgid "Refund Method"
|
msgid "Refund Method"
|
||||||
msgstr "Jóváírás módja"
|
msgstr "Visszatérítés módja"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.ui.menu,name:account.menu_account_report
|
#: model:ir.ui.menu,name:account.menu_account_report
|
||||||
|
@ -879,7 +946,7 @@ msgstr "Párosítás visszavonása"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_account_analytic_journal_report
|
#: model:ir.model,name:account.model_account_analytic_journal_report
|
||||||
msgid "Account Analytic Journal"
|
msgid "Account Analytic Journal"
|
||||||
msgstr "Gyűjtőnapló"
|
msgstr "Gyűjtőnapló számla"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
|
@ -1475,7 +1542,7 @@ msgstr "Listázási beállítások"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.fiscalyear.close.state,fy_id:0
|
#: field:account.fiscalyear.close.state,fy_id:0
|
||||||
msgid "Fiscal Year to Close"
|
msgid "Fiscal Year to Close"
|
||||||
msgstr ""
|
msgstr "Bezárni kívánt üzleti év"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,sale_sequence_prefix:0
|
#: field:account.config.settings,sale_sequence_prefix:0
|
||||||
|
@ -1553,7 +1620,7 @@ msgstr "Adók keresése"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_account_analytic_cost_ledger
|
#: model:ir.model,name:account.model_account_analytic_cost_ledger
|
||||||
msgid "Account Analytic Cost Ledger"
|
msgid "Account Analytic Cost Ledger"
|
||||||
msgstr "Gyűjtőkód karton"
|
msgstr "Főkönyvi költség gyűjtőkód karton számla"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.model:0
|
#: view:account.model:0
|
||||||
|
@ -1624,6 +1691,8 @@ msgid ""
|
||||||
"By unchecking the active field, you may hide a fiscal position without "
|
"By unchecking the active field, you may hide a fiscal position without "
|
||||||
"deleting it."
|
"deleting it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Az aktív mező üresen hagyásával, eltüntetheti az ÁFA helyét, annak törlése "
|
||||||
|
"nélkül."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_temp_range
|
#: model:ir.model,name:account.model_temp_range
|
||||||
|
@ -2194,7 +2263,7 @@ msgstr "Korosított folyószámla kivonat"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.fiscalyear.close.state:0
|
#: view:account.fiscalyear.close.state:0
|
||||||
msgid "Close Fiscal Year"
|
msgid "Close Fiscal Year"
|
||||||
msgstr ""
|
msgstr "Üzleti év lezárása"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#. openerp-web
|
#. openerp-web
|
||||||
|
@ -2207,6 +2276,7 @@ msgstr ""
|
||||||
#: sql_constraint:account.fiscal.position.tax:0
|
#: sql_constraint:account.fiscal.position.tax:0
|
||||||
msgid "A tax fiscal position could be defined only once time on same taxes."
|
msgid "A tax fiscal position could be defined only once time on same taxes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Az adó adóügyi pozíciója csak egyszer határozható meg ugyanarra az adóra."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.tax:0
|
#: view:account.tax:0
|
||||||
|
@ -2320,7 +2390,7 @@ msgstr "Részleges tételsorok"
|
||||||
#: view:account.fiscalyear:0
|
#: view:account.fiscalyear:0
|
||||||
#: field:account.treasury.report,fiscalyear_id:0
|
#: field:account.treasury.report,fiscalyear_id:0
|
||||||
msgid "Fiscalyear"
|
msgid "Fiscalyear"
|
||||||
msgstr "Üzleti év"
|
msgstr "Üzletiév"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/wizard/account_move_bank_reconcile.py:53
|
#: code:addons/account/wizard/account_move_bank_reconcile.py:53
|
||||||
|
@ -2963,6 +3033,22 @@ msgid ""
|
||||||
" </p>\n"
|
" </p>\n"
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
|
" Kattintson új adóügyi év létrehozásához.\n"
|
||||||
|
" </p><p>\n"
|
||||||
|
" Határozza meg a vállalkozása üzleti évét a kívánságainak "
|
||||||
|
"megfelelően.\n"
|
||||||
|
" Egy üzleti év egy idő periódus, aminek a végén a vállalkozás "
|
||||||
|
"könyvelése\n"
|
||||||
|
" elszámolásra kerül (általában 12 hónap). Az üzleti év arra a "
|
||||||
|
"dátumra\n"
|
||||||
|
" hivatkozik általában ahol az véget ér. Például,\n"
|
||||||
|
" ha a vállalkozás pénzügyi üzleti éve 2011 november 30-ára "
|
||||||
|
"esik, akkor\n"
|
||||||
|
" minden ami 2010 december 1 és 2011 november 30 közé esik\n"
|
||||||
|
" azt hívjuk 2011 évi üzleti/pénzügyi/adóügyi évnek.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.common.report:0
|
#: view:account.common.report:0
|
||||||
|
@ -3912,6 +3998,8 @@ msgid ""
|
||||||
"There is no fiscal year defined for this date.\n"
|
"There is no fiscal year defined for this date.\n"
|
||||||
"Please create one from the configuration of the accounting menu."
|
"Please create one from the configuration of the accounting menu."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Erre a dátumra nem lett üzleti adóügyi év meghatározva.\n"
|
||||||
|
"Kérem hozzon létre egyet a könyvelési menü beállítása menüpont alatt."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.addtmpl.wizard:0
|
#: view:account.addtmpl.wizard:0
|
||||||
|
@ -4282,6 +4370,8 @@ msgid ""
|
||||||
"The fiscalyear, periods or chart of account chosen have to belong to the "
|
"The fiscalyear, periods or chart of account chosen have to belong to the "
|
||||||
"same company."
|
"same company."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Az üzelti adóügyi év, periódus vagy számlatükör kiválasztása ugyanarra a "
|
||||||
|
"vállalkozásra kell, hogy vonatkozzon."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.tax.code.template,notprintable:0
|
#: help:account.tax.code.template,notprintable:0
|
||||||
|
@ -7344,6 +7434,8 @@ msgid ""
|
||||||
"Error!\n"
|
"Error!\n"
|
||||||
"The start date of a fiscal year must precede its end date."
|
"The start date of a fiscal year must precede its end date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hiba!\n"
|
||||||
|
"Az üzleti adóügyi év elejének előbb kell lennie mint a végének."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.tax.template:0
|
#: view:account.tax.template:0
|
||||||
|
@ -8276,7 +8368,8 @@ msgstr ""
|
||||||
msgid ""
|
msgid ""
|
||||||
"Select Fiscal Year which you want to remove entries for its End of year "
|
"Select Fiscal Year which you want to remove entries for its End of year "
|
||||||
"entries journal"
|
"entries journal"
|
||||||
msgstr "Válassza ki az üzleti évet, amelynek a nyitó tételeit törölni akarja"
|
msgstr ""
|
||||||
|
"Válassza ki az üzleti évet, amelynek a záró tételei közül törölni szeretne"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.tax.template,type_tax_use:0
|
#: field:account.tax.template,type_tax_use:0
|
||||||
|
@ -8397,7 +8490,7 @@ msgstr "Gyűjtőkód karton"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.config.settings:0
|
#: view:account.config.settings:0
|
||||||
msgid "No Fiscal Year Defined for This Company"
|
msgid "No Fiscal Year Defined for This Company"
|
||||||
msgstr ""
|
msgstr "Ehhez a vállalkozáshoz nem lett üzleti adóügyi év meghatározva"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
|
@ -8548,6 +8641,9 @@ msgid ""
|
||||||
"This wizard will remove the end of year journal entries of selected fiscal "
|
"This wizard will remove the end of year journal entries of selected fiscal "
|
||||||
"year. Note that you can run this wizard many times for the same fiscal year."
|
"year. Note that you can run this wizard many times for the same fiscal year."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ez a varázsló a kiválasztott üzleti adóügyi évet lezáró könyvelési napló "
|
||||||
|
"tételeit fogja eltávolítani. Megjegyezzük, hogy ezt a varázslót többször is "
|
||||||
|
"elindíthatja ugyanarra az üzleti évre."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: report:account.invoice:0
|
#: report:account.invoice:0
|
||||||
|
@ -8732,7 +8828,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.model,name:account.model_account_fiscalyear_close_state
|
#: model:ir.model,name:account.model_account_fiscalyear_close_state
|
||||||
msgid "Fiscalyear Close state"
|
msgid "Fiscalyear Close state"
|
||||||
msgstr "Üzleti év zárása"
|
msgstr "Üzleti év zárt állapotban"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.invoice.refund,journal_id:0
|
#: field:account.invoice.refund,journal_id:0
|
||||||
|
@ -9161,7 +9257,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.config.settings,has_fiscal_year:0
|
#: field:account.config.settings,has_fiscal_year:0
|
||||||
msgid "Company has a fiscal year"
|
msgid "Company has a fiscal year"
|
||||||
msgstr ""
|
msgstr "Vállalkozásnak van üzleti, adóügyi éve"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.tax,child_depend:0
|
#: help:account.tax,child_depend:0
|
||||||
|
@ -9599,6 +9695,9 @@ msgid ""
|
||||||
"The period is invalid. Either some periods are overlapping or the period's "
|
"The period is invalid. Either some periods are overlapping or the period's "
|
||||||
"dates are not matching the scope of the fiscal year."
|
"dates are not matching the scope of the fiscal year."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hiba!\n"
|
||||||
|
"Az időszak nem érvényes. Vagy az egyes időszakok átfedik egymást vagy az "
|
||||||
|
"időszakok nem egyeznek az üzleti év határidőivel."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: report:account.overdue:0
|
#: report:account.overdue:0
|
||||||
|
@ -9897,7 +9996,7 @@ msgstr "Gyűjtőkódokból"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.installer:0
|
#: view:account.installer:0
|
||||||
msgid "Configure your Fiscal Year"
|
msgid "Configure your Fiscal Year"
|
||||||
msgstr ""
|
msgstr "Állítsa be az üzleti, adóügyi évét"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.period,name:0
|
#: field:account.period,name:0
|
||||||
|
@ -10834,6 +10933,8 @@ msgstr "Könyvelési tételsorok jóváhagyása"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The fiscal position will determine taxes and accounts used for the partner."
|
"The fiscal position will determine taxes and accounts used for the partner."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Az ÁFA pozíció meghatározza a partnerre vonatkozó adókat és főkönyvi "
|
||||||
|
"számlákat."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.node,note:account.process_node_supplierpaidinvoice0
|
#: model:process.node,note:account.process_node_supplierpaidinvoice0
|
||||||
|
@ -10906,7 +11007,7 @@ msgstr ""
|
||||||
#: view:ir.sequence:0
|
#: view:ir.sequence:0
|
||||||
#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear
|
#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear
|
||||||
msgid "Fiscal Years"
|
msgid "Fiscal Years"
|
||||||
msgstr "Üzleti év"
|
msgstr "Üzleti évek"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.analytic.journal,active:0
|
#: help:account.analytic.journal,active:0
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2012-08-21 06:06+0000\n"
|
"PO-Revision-Date: 2013-12-01 17:16+0000\n"
|
||||||
"Last-Translator: Boyce Huang <boyce.huang@cenoq.com>\n"
|
"Last-Translator: Andy Cheng <andy@dobtor.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 05:37+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16856)\n"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||||
|
@ -32,12 +32,12 @@ msgstr "在相同會計科目中,只能設定一次科目財務狀況。"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Determine the display order in the report 'Accounting \\ Reporting \\ "
|
"Determine the display order in the report 'Accounting \\ Reporting \\ "
|
||||||
"Generic Reporting \\ Taxes \\ Taxes Report'"
|
"Generic Reporting \\ Taxes \\ Taxes Report'"
|
||||||
msgstr "確定以下報表的顯示順序:」會計-報表-通用報表-稅-稅報表「"
|
msgstr "確定以下報表的顯示順序:「會計 \\ 報表 \\ 通用報表 \\ 稅 \\ 稅報表」"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.move.reconcile:0
|
#: view:account.move.reconcile:0
|
||||||
msgid "Journal Entry Reconcile"
|
msgid "Journal Entry Reconcile"
|
||||||
msgstr "日記帳分錄調節"
|
msgstr "帳簿分錄調節"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.account:0
|
#: view:account.account:0
|
||||||
|
|
|
@ -295,7 +295,7 @@
|
||||||
</para>
|
</para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_tblheader_Details"><b>Total:</b></para>
|
<para style="terp_default_9"><b>Total:</b></para>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<para style="terp_default_Bold_Right_9"><b>[[ formatLang(o.amount_total, digits=get_digits(dp='Account'), currency_obj=o.currency_id) ]]</b></para>
|
<para style="terp_default_Bold_Right_9"><b>[[ formatLang(o.amount_total, digits=get_digits(dp='Account'), currency_obj=o.currency_id) ]]</b></para>
|
||||||
|
|
|
@ -22,13 +22,12 @@
|
||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
from operator import itemgetter
|
|
||||||
from os.path import join as opj
|
|
||||||
|
|
||||||
|
import openerp
|
||||||
|
from openerp import SUPERUSER_ID
|
||||||
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
|
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
from openerp import tools
|
|
||||||
|
|
||||||
class account_config_settings(osv.osv_memory):
|
class account_config_settings(osv.osv_memory):
|
||||||
_name = 'account.config.settings'
|
_name = 'account.config.settings'
|
||||||
|
@ -276,11 +275,13 @@ class account_config_settings(osv.osv_memory):
|
||||||
|
|
||||||
def set_default_taxes(self, cr, uid, ids, context=None):
|
def set_default_taxes(self, cr, uid, ids, context=None):
|
||||||
""" set default sale and purchase taxes for products """
|
""" set default sale and purchase taxes for products """
|
||||||
|
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
|
||||||
|
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
|
||||||
ir_values = self.pool.get('ir.values')
|
ir_values = self.pool.get('ir.values')
|
||||||
config = self.browse(cr, uid, ids[0], context)
|
config = self.browse(cr, uid, ids[0], context)
|
||||||
ir_values.set_default(cr, uid, 'product.product', 'taxes_id',
|
ir_values.set_default(cr, SUPERUSER_ID, 'product.product', 'taxes_id',
|
||||||
config.default_sale_tax and [config.default_sale_tax.id] or False, company_id=config.company_id.id)
|
config.default_sale_tax and [config.default_sale_tax.id] or False, company_id=config.company_id.id)
|
||||||
ir_values.set_default(cr, uid, 'product.product', 'supplier_taxes_id',
|
ir_values.set_default(cr, SUPERUSER_ID, 'product.product', 'supplier_taxes_id',
|
||||||
config.default_purchase_tax and [config.default_purchase_tax.id] or False, company_id=config.company_id.id)
|
config.default_purchase_tax and [config.default_purchase_tax.id] or False, company_id=config.company_id.id)
|
||||||
|
|
||||||
def set_chart_of_accounts(self, cr, uid, ids, context=None):
|
def set_chart_of_accounts(self, cr, uid, ids, context=None):
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
from . import test_tax
|
from . import test_tax
|
||||||
|
from . import test_search
|
||||||
|
|
||||||
fast_suite = [test_tax,
|
fast_suite = [
|
||||||
]
|
test_tax,
|
||||||
|
test_search,
|
||||||
|
]
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
from openerp.tests.common import TransactionCase
|
||||||
|
|
||||||
|
class TestSearch(TransactionCase):
|
||||||
|
"""Tests for search on name_search (account.account)
|
||||||
|
|
||||||
|
The name search on account.account is quite complexe, make sure
|
||||||
|
we have all the correct results
|
||||||
|
"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(TestSearch, self).setUp()
|
||||||
|
cr, uid = self.cr, self.uid
|
||||||
|
self.account_model = self.registry('account.account')
|
||||||
|
self.account_type_model = self.registry('account.account.type')
|
||||||
|
ac_ids = self.account_type_model.search(cr, uid, [], limit=1)
|
||||||
|
self.atax = (int(self.account_model.create(cr, uid, dict(
|
||||||
|
name="Tax Received",
|
||||||
|
code="121",
|
||||||
|
user_type=ac_ids[0],
|
||||||
|
))), "121 Tax Received")
|
||||||
|
|
||||||
|
self.apurchase = (int(self.account_model.create(cr, uid, dict(
|
||||||
|
name="Purchased Stocks",
|
||||||
|
code="1101",
|
||||||
|
user_type=ac_ids[0],
|
||||||
|
))), "1101 Purchased Stocks")
|
||||||
|
|
||||||
|
self.asale = (int(self.account_model.create(cr, uid, dict(
|
||||||
|
name="Product Sales",
|
||||||
|
code="200",
|
||||||
|
user_type=ac_ids[0],
|
||||||
|
))), "200 Product Sales")
|
||||||
|
|
||||||
|
self.all_ids = [self.atax[0], self.apurchase[0], self.asale[0]]
|
||||||
|
|
||||||
|
def test_name_search(self):
|
||||||
|
cr, uid = self.cr, self.uid
|
||||||
|
atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.atax[0]]), set([a[0] for a in atax_ids]), "name_search 'ilike Tax' should have returned Tax Received account only")
|
||||||
|
|
||||||
|
atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='not ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.apurchase[0], self.asale[0]]), set([a[0] for a in atax_ids]), "name_search 'not ilike Tax' should have returned all but Tax Received account")
|
||||||
|
|
||||||
|
apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.apurchase[0]]), set([a[0] for a in apur_ids]), "name_search 'ilike 1101' should have returned Purchased Stocks account only")
|
||||||
|
|
||||||
|
apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='not ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.atax[0], self.asale[0]]), set([a[0] for a in apur_ids]), "name_search 'not ilike 1101' should have returned all but Purchased Stocks account")
|
||||||
|
|
||||||
|
asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike 200 Sales' should have returned Product Sales account only")
|
||||||
|
|
||||||
|
asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike 200 Sales' should have returned all but Product Sales account")
|
||||||
|
|
||||||
|
asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike Product Sales' should have returned Product Sales account only")
|
||||||
|
|
||||||
|
asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
|
||||||
|
self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike Product Sales' should have returned all but Product Sales account")
|
|
@ -21,21 +21,25 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
from openerp.osv import osv
|
from openerp.osv import osv, fields
|
||||||
|
|
||||||
class account_invoice_line(osv.osv):
|
class account_invoice_line(osv.osv):
|
||||||
_inherit = "account.invoice.line"
|
_inherit = "account.invoice.line"
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'move_id': fields.many2one('stock.move', string="Move line", help="If the invoice was generated from a stock.picking, reference to the related move line."),
|
||||||
|
}
|
||||||
|
|
||||||
def move_line_get(self, cr, uid, invoice_id, context=None):
|
def move_line_get(self, cr, uid, invoice_id, context=None):
|
||||||
res = super(account_invoice_line,self).move_line_get(cr, uid, invoice_id, context=context)
|
res = super(account_invoice_line,self).move_line_get(cr, uid, invoice_id, context=context)
|
||||||
inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
|
inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id, context=context)
|
||||||
company_currency = inv.company_id.currency_id.id
|
company_currency = inv.company_id.currency_id.id
|
||||||
def get_price(cr, uid, inv, company_currency,i_line):
|
def get_price(cr, uid, inv, company_currency, i_line, price_unit):
|
||||||
cur_obj = self.pool.get('res.currency')
|
cur_obj = self.pool.get('res.currency')
|
||||||
if inv.currency_id.id != company_currency:
|
if inv.currency_id.id != company_currency:
|
||||||
price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, i_line.product_id.standard_price * i_line.quantity, context={'date': inv.date_invoice})
|
price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, price_unit * i_line.quantity, context={'date': inv.date_invoice})
|
||||||
else:
|
else:
|
||||||
price = i_line.product_id.standard_price * i_line.quantity
|
price = price_unit * i_line.quantity
|
||||||
return price
|
return price
|
||||||
|
|
||||||
if inv.type in ('out_invoice','out_refund'):
|
if inv.type in ('out_invoice','out_refund'):
|
||||||
|
@ -60,12 +64,13 @@ class account_invoice_line(osv.osv):
|
||||||
if not cacc:
|
if not cacc:
|
||||||
cacc = i_line.product_id.categ_id.property_account_expense_categ and i_line.product_id.categ_id.property_account_expense_categ.id
|
cacc = i_line.product_id.categ_id.property_account_expense_categ and i_line.product_id.categ_id.property_account_expense_categ.id
|
||||||
if dacc and cacc:
|
if dacc and cacc:
|
||||||
|
price_unit = i_line.move_id and i_line.move_id.price_unit or i_line.product_id.standard_price
|
||||||
res.append({
|
res.append({
|
||||||
'type':'src',
|
'type':'src',
|
||||||
'name': i_line.name[:64],
|
'name': i_line.name[:64],
|
||||||
'price_unit':i_line.product_id.standard_price,
|
'price_unit':price_unit,
|
||||||
'quantity':i_line.quantity,
|
'quantity':i_line.quantity,
|
||||||
'price':get_price(cr, uid, inv, company_currency, i_line),
|
'price':get_price(cr, uid, inv, company_currency, i_line, price_unit),
|
||||||
'account_id':dacc,
|
'account_id':dacc,
|
||||||
'product_id':i_line.product_id.id,
|
'product_id':i_line.product_id.id,
|
||||||
'uos_id':i_line.uos_id.id,
|
'uos_id':i_line.uos_id.id,
|
||||||
|
@ -76,9 +81,9 @@ class account_invoice_line(osv.osv):
|
||||||
res.append({
|
res.append({
|
||||||
'type':'src',
|
'type':'src',
|
||||||
'name': i_line.name[:64],
|
'name': i_line.name[:64],
|
||||||
'price_unit':i_line.product_id.standard_price,
|
'price_unit':price_unit,
|
||||||
'quantity':i_line.quantity,
|
'quantity':i_line.quantity,
|
||||||
'price': -1 * get_price(cr, uid, inv, company_currency, i_line),
|
'price': -1 * get_price(cr, uid, inv, company_currency, i_line, price_unit),
|
||||||
'account_id':cacc,
|
'account_id':cacc,
|
||||||
'product_id':i_line.product_id.id,
|
'product_id':i_line.product_id.id,
|
||||||
'uos_id':i_line.uos_id.id,
|
'uos_id':i_line.uos_id.id,
|
||||||
|
|
|
@ -28,6 +28,15 @@ class stock_picking(osv.osv):
|
||||||
_inherit = "stock.picking"
|
_inherit = "stock.picking"
|
||||||
_description = "Picking List"
|
_description = "Picking List"
|
||||||
|
|
||||||
|
def _prepare_invoice_line(self, cr, uid, group, picking, move_line, invoice_id,
|
||||||
|
invoice_vals, context=None):
|
||||||
|
"""Overwrite to add move_id reference"""
|
||||||
|
res = super(stock_picking, self)._prepare_invoice_line(cr, uid, group, picking, move_line, invoice_id, invoice_vals, context=context)
|
||||||
|
res.update({
|
||||||
|
'move_id': move_line.id,
|
||||||
|
})
|
||||||
|
return res
|
||||||
|
|
||||||
def action_invoice_create(self, cr, uid, ids, journal_id=False,
|
def action_invoice_create(self, cr, uid, ids, journal_id=False,
|
||||||
group=False, type='out_invoice', context=None):
|
group=False, type='out_invoice', context=None):
|
||||||
'''Return ids of created invoices for the pickings'''
|
'''Return ids of created invoices for the pickings'''
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,8 +11,8 @@
|
||||||
<field name="active" eval="False"/>
|
<field name="active" eval="False"/>
|
||||||
<!-- Avoid auto-including this user in any default group, just like a typical portal member -->
|
<!-- Avoid auto-including this user in any default group, just like a typical portal member -->
|
||||||
<field name="groups_id" eval="[(5,)]"/>
|
<field name="groups_id" eval="[(5,)]"/>
|
||||||
<!-- no alias for portal users -->
|
<!-- allow signuped users to have a alias -->
|
||||||
<field name="alias_name" eval="False"/>
|
<field name="alias_name">_usertemplate</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="default_template_user_config" model="ir.config_parameter">
|
<record id="default_template_user_config" model="ir.config_parameter">
|
||||||
|
|
|
@ -234,8 +234,6 @@ class res_users(osv.Model):
|
||||||
|
|
||||||
# create a copy of the template user (attached to a specific partner_id if given)
|
# create a copy of the template user (attached to a specific partner_id if given)
|
||||||
values['active'] = True
|
values['active'] = True
|
||||||
if 'alias_name' not in values: # allow behavior change via inheritance (like using the name)
|
|
||||||
values['alias_name'] = False
|
|
||||||
context = dict(context or {}, no_reset_password=True)
|
context = dict(context or {}, no_reset_password=True)
|
||||||
return self.copy(cr, uid, template_user_id, values, context=context)
|
return self.copy(cr, uid, template_user_id, values, context=context)
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
.oe_import > p {
|
.oe_import > p {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
|
margin-top: 13px; /* Customize space according bootstrap3 */
|
||||||
text-align: justify
|
text-align: justify
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_import h2 {
|
.oe_import h2 {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5em; /* Customize according bootstrap3 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_padding {
|
.oe_padding {
|
||||||
|
@ -22,6 +24,14 @@
|
||||||
border: solid 1px #dddddd;
|
border: solid 1px #dddddd;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
|
/* Customize according bootstrap3 */
|
||||||
|
.oe_import .oe_import_box label{
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.oe_import .oe_import_box .oe_import_file {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
/* End of Customize */
|
||||||
.oe_import .oe_import_toggle{
|
.oe_import .oe_import_toggle{
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
}
|
}
|
||||||
|
@ -40,7 +50,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_import .oe_import_options p {
|
.oe_import .oe_import_options p {
|
||||||
margin: 0;
|
margin: 0 0 -7px 0; /* Customize margin-bottom of <p> according bootstrap3 */
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.oe_import .oe_import_options label {
|
.oe_import .oe_import_options label {
|
||||||
|
@ -69,6 +79,14 @@
|
||||||
.oe_import .oe_import_report_more {
|
.oe_import .oe_import_report_more {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
/* Customize dd and label according bootstrap3 */
|
||||||
|
.oe_import dd {
|
||||||
|
-webkit-margin-start: 40px;
|
||||||
|
}
|
||||||
|
.oe_import .oe_import_with_file label {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
/* End of customize */
|
||||||
|
|
||||||
.oe_import.oe_import_preview .oe_import_grid {
|
.oe_import.oe_import_preview .oe_import_grid {
|
||||||
display: table;
|
display: table;
|
||||||
|
|
|
@ -373,7 +373,7 @@ openerp.base_import = function (instance) {
|
||||||
return $.when([{
|
return $.when([{
|
||||||
type: 'error',
|
type: 'error',
|
||||||
record: false,
|
record: false,
|
||||||
message: error.data.fault_code,
|
message: error.data.arguments[1],
|
||||||
}]);
|
}]);
|
||||||
}) ;
|
}) ;
|
||||||
},
|
},
|
||||||
|
|
|
@ -68,7 +68,7 @@ class base_config_settings(osv.osv_memory):
|
||||||
|
|
||||||
def set_base_defaults(self, cr, uid, ids, context=None):
|
def set_base_defaults(self, cr, uid, ids, context=None):
|
||||||
ir_model_data = self.pool.get('ir.model.data')
|
ir_model_data = self.pool.get('ir.model.data')
|
||||||
wizard = self.browse(cr, uid, ids)[0]
|
wizard = self.browse(cr, uid, ids, context)[0]
|
||||||
if wizard.font:
|
if wizard.font:
|
||||||
user = self.pool.get('res.users').browse(cr, uid, uid, context)
|
user = self.pool.get('res.users').browse(cr, uid, uid, context)
|
||||||
font_name = wizard.font.name
|
font_name = wizard.font.name
|
||||||
|
@ -76,7 +76,7 @@ class base_config_settings(osv.osv_memory):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
def act_discover_fonts(self, cr, uid, ids, context=None):
|
def act_discover_fonts(self, cr, uid, ids, context=None):
|
||||||
return self.pool.get("res.font").discover_fonts(cr, uid, ids, context)
|
return self.pool.get("res.font").font_scan(cr, uid, context=context)
|
||||||
|
|
||||||
# Preferences wizard for Sales & CRM.
|
# Preferences wizard for Sales & CRM.
|
||||||
# It is defined here because it is inherited independently in modules sale, crm,
|
# It is defined here because it is inherited independently in modules sale, crm,
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
<label for="font" />
|
<label for="font" />
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<field name="font" class="oe_inline"/>
|
<field name="font" class="oe_inline" domain="[('mode', 'in', ('normal', 'regular', 'all', 'book'))]" />
|
||||||
<button string="(reload fonts)" name="act_discover_fonts" type="object" class="oe_link"/>
|
<button string="(reload fonts)" name="act_discover_fonts" type="object" class="oe_link"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
# Spanish (Peru) 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-12-09 17:26+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: view:res.partner:0
|
||||||
|
msgid "Check Validity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: code:addons/base_vat/base_vat.py:152
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"This VAT number does not seem to be valid.\n"
|
||||||
|
"Note: the expected format is %s"
|
||||||
|
msgstr "El RUC no es válido. El formato esperado es %s"
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: field:res.company,vat_check_vies:0
|
||||||
|
msgid "VIES VAT Check"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: model:ir.model,name:base_vat.model_res_company
|
||||||
|
msgid "Companies"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: code:addons/base_vat/base_vat.py:113
|
||||||
|
#, python-format
|
||||||
|
msgid "Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: help:res.partner,vat_subjected:0
|
||||||
|
msgid ""
|
||||||
|
"Check this box if the partner is subjected to the VAT. It will be used for "
|
||||||
|
"the VAT legal statement."
|
||||||
|
msgstr ""
|
||||||
|
"Marque esta opción si la empresa está sujeta a Impuestos. Será utilizado "
|
||||||
|
"para la declaración legal de Impuestos."
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: model:ir.model,name:base_vat.model_res_partner
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: help:res.company,vat_check_vies:0
|
||||||
|
msgid ""
|
||||||
|
"If checked, Partners VAT numbers will be fully validated against EU's VIES "
|
||||||
|
"service rather than via a simple format validation (checksum)."
|
||||||
|
msgstr ""
|
||||||
|
"Si se marca, el RUC de la empresa se validará contra el servicio europeo "
|
||||||
|
"VIES VAT en lugar de sólo validar el formato."
|
||||||
|
|
||||||
|
#. module: base_vat
|
||||||
|
#: field:res.partner,vat_subjected:0
|
||||||
|
msgid "VAT Legal Statement"
|
||||||
|
msgstr "Sujeto a Impuestos"
|
|
@ -13,7 +13,6 @@
|
||||||
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
||||||
<field name="context">{
|
<field name="context">{
|
||||||
'search_default_section_id': [active_id],
|
'search_default_section_id': [active_id],
|
||||||
'search_default_open': 1,
|
|
||||||
'default_section_id': active_id,
|
'default_section_id': active_id,
|
||||||
'default_type': 'lead',
|
'default_type': 'lead',
|
||||||
'stage_type': 'lead',
|
'stage_type': 'lead',
|
||||||
|
@ -43,7 +42,6 @@
|
||||||
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
||||||
<field name="context">{
|
<field name="context">{
|
||||||
'search_default_section_id': [active_id],
|
'search_default_section_id': [active_id],
|
||||||
'search_default_assigned_to_me': 1,
|
|
||||||
'default_section_id': active_id,
|
'default_section_id': active_id,
|
||||||
'stage_type': 'opportunity',
|
'stage_type': 'opportunity',
|
||||||
'default_type': 'opportunity',
|
'default_type': 'opportunity',
|
||||||
|
@ -64,6 +62,26 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="action_report_crm_lead_salesteam" model="ir.actions.act_window">
|
||||||
|
<field name="name">Leads Analysis</field>
|
||||||
|
<field name="res_model">crm.lead.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="context">{"search_default_month":1}</field>
|
||||||
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('type','=', 'lead'),('section_id', '=', active_id)]</field>
|
||||||
|
<field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_report_crm_opportunity_salesteam" model="ir.actions.act_window">
|
||||||
|
<field name="name">Opportunities Analysis</field>
|
||||||
|
<field name="res_model">crm.lead.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="context">{"search_default_month":1}</field>
|
||||||
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('type','=', 'opportunity'), ('section_id', '=', active_id)]</field>
|
||||||
|
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- Case Sections Salesteams kanban view -->
|
<!-- Case Sections Salesteams kanban view -->
|
||||||
|
|
||||||
<record model="ir.ui.view" id="crm_case_section_salesteams_view_kanban">
|
<record model="ir.ui.view" id="crm_case_section_salesteams_view_kanban">
|
||||||
|
@ -99,13 +117,25 @@
|
||||||
<div class="oe_items_list">
|
<div class="oe_items_list">
|
||||||
<div class="oe_salesteams_leads" t-if="record.use_leads.raw_value">
|
<div class="oe_salesteams_leads" t-if="record.use_leads.raw_value">
|
||||||
<a name="%(crm_case_form_view_salesteams_lead)d" type="action">Leads</a>
|
<a name="%(crm_case_form_view_salesteams_lead)d" type="action">Leads</a>
|
||||||
<a name="%(action_report_crm_lead)d" type="action" class="oe_sparkline_bar_link"><field name="monthly_open_leads" widget="sparkline_bar" options="{'height': '20px', 'barWidth': 4, 'barSpacing': 1}">Open Leads per Month<br/>Click to see a detailed analysis of leads.</field></a>
|
<a name="%(action_report_crm_lead_salesteam)d" type="action" class="oe_sparkline_bar_link">
|
||||||
|
<field name="monthly_open_leads" widget="sparkline_bar"
|
||||||
|
options="{'height': '20px', 'barWidth': 4, 'barSpacing': 1, 'delayIn': '3000', 'tooltip_suffix': 'Leads'}">Open Leads per Month<br/>Click to see a detailed analysis of leads.</field>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_salesteams_opportunities">
|
<div class="oe_salesteams_opportunities">
|
||||||
<a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">Opportunities</a>
|
<a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">Opportunities</a>
|
||||||
<a name="%(action_report_crm_opportunity)d" type="action"><field name="monthly_planned_revenue" widget="sparkline_bar" height="20px" barWidth="4" barSpacing="1">Planned Revenue per Month<br/>Click to see a detailed analysis of opportunities.</field></a>
|
<a name="%(action_report_crm_opportunity_salesteam)d" type="action">
|
||||||
|
<field name="monthly_planned_revenue" widget="sparkline_bar"
|
||||||
|
options="{'height': '20px', 'barWidth': '4', 'barSpacing': '1', 'delayIn': '3000', 'tooltip_suffix': 'Opportunities'}">Planned Revenue per Month<br/>Click to see a detailed analysis of opportunities.</field>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="oe_clear"></div>
|
||||||
|
<div class="oe_kanban_salesteams_avatars">
|
||||||
|
<t t-foreach="record.member_ids.raw_value.slice(0,10)" t-as="member">
|
||||||
|
<img t-att-src="kanban_image('res.users', 'image_small', member)" t-att-data-member_id="member"/>
|
||||||
|
</t>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</t>
|
</t>
|
||||||
|
|
|
@ -6,14 +6,20 @@
|
||||||
<field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
|
<field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="crm.section_sales_department" model="crm.case.section">
|
||||||
|
<field name="member_ids" eval="[(4, ref('base.user_demo'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_1">
|
<record model="crm.case.section" id="crm_case_section_1">
|
||||||
<field name="name">Indirect Sales</field>
|
<field name="name">Indirect Sales</field>
|
||||||
<field name="code">IM</field>
|
<field name="code">IM</field>
|
||||||
|
<field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.case.section" id="crm_case_section_2">
|
<record model="crm.case.section" id="crm_case_section_2">
|
||||||
<field name="name">Marketing</field>
|
<field name="name">Marketing</field>
|
||||||
<field name="code">SPD</field>
|
<field name="code">SPD</field>
|
||||||
|
<field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="crm.segmentation" id="crm_segmentation0">
|
<record model="crm.segmentation" id="crm_segmentation0">
|
||||||
|
|
|
@ -66,9 +66,6 @@
|
||||||
<field name="model">crm.lead.report</field>
|
<field name="model">crm.lead.report</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<search string="Leads Analysis">
|
<search string="Leads Analysis">
|
||||||
<filter icon="terp-personal" name="lead" string="Lead" domain="[('type','=', 'lead')]" help="Show only lead"/>
|
|
||||||
<filter icon="terp-personal+" string="Opportunity" name="opportunity" domain="[('type','=','opportunity')]" help="Show only opportunity"/>
|
|
||||||
<separator/>
|
|
||||||
<filter string="New" name="new"
|
<filter string="New" name="new"
|
||||||
domain="[('probability', '=', 0), ('stage_id.sequence', '=', 1)]"/>
|
domain="[('probability', '=', 0), ('stage_id.sequence', '=', 1)]"/>
|
||||||
<filter string="Won" name="won"
|
<filter string="Won" name="won"
|
||||||
|
@ -115,7 +112,7 @@
|
||||||
<separator orientation="vertical" />
|
<separator orientation="vertical" />
|
||||||
<filter string="Year" icon="terp-go-year"
|
<filter string="Year" icon="terp-go-year"
|
||||||
domain="[]" context="{'group_by':'creation_year'}"/>
|
domain="[]" context="{'group_by':'creation_year'}"/>
|
||||||
<filter string="Month" icon="terp-go-month"
|
<filter string="Month" name="month" icon="terp-go-month"
|
||||||
domain="[]" context="{'group_by':'creation_month'}"/>
|
domain="[]" context="{'group_by':'creation_month'}"/>
|
||||||
<filter string="Day" icon="terp-go-today"
|
<filter string="Day" icon="terp-go-today"
|
||||||
domain="[]" context="{'group_by':'creation_day'}"/>
|
domain="[]" context="{'group_by':'creation_day'}"/>
|
||||||
|
@ -168,9 +165,9 @@
|
||||||
<field name="name">Leads Analysis</field>
|
<field name="name">Leads Analysis</field>
|
||||||
<field name="res_model">crm.lead.report</field>
|
<field name="res_model">crm.lead.report</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="context">{'search_default_year': 1,'search_default_lead': 1, "search_default_user":1, "search_default_this_month":1, 'group_by_no_leaf':1, 'group_by':[]}</field>
|
<field name="context">{'search_default_year': 1, "search_default_user":1, "search_default_month":1, 'group_by_no_leaf':1, 'group_by':[]}</field>
|
||||||
<field name="view_mode">tree,graph</field>
|
<field name="view_mode">tree,graph</field>
|
||||||
<field name="domain">[]</field>
|
<field name="domain">[('type','=', 'lead')]</field>
|
||||||
<field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
|
<field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.actions.act_window.view" id="action_report_crm_lead_tree">
|
<record model="ir.actions.act_window.view" id="action_report_crm_lead_tree">
|
||||||
|
@ -190,8 +187,9 @@
|
||||||
<field name="name">Opportunities Analysis</field>
|
<field name="name">Opportunities Analysis</field>
|
||||||
<field name="res_model">crm.lead.report</field>
|
<field name="res_model">crm.lead.report</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="context">{"search_default_year":1,"search_default_opportunity":1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
<field name="context">{"search_default_year":1, "search_default_user":1,"search_default_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||||
<field name="view_mode">tree,graph</field>
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('type','=', 'opportunity')]</field>
|
||||||
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.</field>
|
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -91,5 +91,19 @@
|
||||||
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="crm_rule_personal_lead_report" model="ir.rule">
|
||||||
|
<field name="name">Personal Leads Analysis</field>
|
||||||
|
<field ref="model_crm_lead_report" name="model_id"/>
|
||||||
|
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="crm_rule_all_lead_report" model="ir.rule">
|
||||||
|
<field name="name">All Leads Analysis</field>
|
||||||
|
<field ref="model_crm_lead_report" name="model_id"/>
|
||||||
|
<field name="domain_force">[(1,'=',1)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
crm.css: crm.sass
|
||||||
|
sass --trace -t expanded crm.sass:crm.css
|
|
@ -1,64 +1,62 @@
|
||||||
|
@charset "utf-8";
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams {
|
||||||
width: 345px;
|
/* Customize width and height of kanban according bootstrap3 */
|
||||||
|
width: 357px;
|
||||||
|
min-height: 254px !important;
|
||||||
|
/* End of customize */
|
||||||
|
cursor: default;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_avatars {
|
|
||||||
text-align: right;
|
|
||||||
margin: -5px 0 -10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_avatars img {
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
padding-left: 0px;
|
|
||||||
margin-top: 3px;
|
|
||||||
-moz-border-radius: 2px;
|
|
||||||
-webkit-border-radius: 2px;
|
|
||||||
border-radius: 2px;
|
|
||||||
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
||||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
||||||
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 10px;
|
/* Improved margin to set alignment of list items according bootstrap3 */
|
||||||
|
margin: 10px 0 10px 9px;
|
||||||
|
min-height: 10px;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div {
|
||||||
width: 160px;
|
width: 160px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
float: left;
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a:hover {
|
|
||||||
text-decoration: underline !important;
|
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div a:nth-child(2n) {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div a:nth-child(2n) {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 90px;
|
left: 90px;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div:nth-child(2n) a:nth-child(2n) {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list div:nth-child(2n) a:nth-child(2n) {
|
||||||
left: 110px;
|
left: 110px;
|
||||||
|
}
|
||||||
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a:hover {
|
||||||
|
text-decoration: underline !important;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 3px 0;
|
margin: 3px 0;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_sum {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_sum {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
}
|
}
|
||||||
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_subsum {
|
.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_subsum {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
.openerp .oe_kanban_view .oe_salesteams_help {
|
||||||
.openerp .oe_kanban_view .oe_justgage {
|
display: inline-block;
|
||||||
color: black;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
}
|
||||||
|
.openerp .oe_kanban_view .oe_kanban_salesteams_avatars {
|
||||||
.openerp .oe_kanban_view .oe_sparkline_bar {
|
margin-top: 20px;
|
||||||
height: 20px;
|
}
|
||||||
width: 36px;
|
.openerp .oe_kanban_view .oe_kanban_salesteams_avatars img {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
padding-left: 0px;
|
||||||
|
margin-top: 3px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
border-radius: 2px;
|
||||||
|
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
|
||||||
}
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
@charset "utf-8"
|
||||||
|
|
||||||
|
.openerp
|
||||||
|
.oe_kanban_view
|
||||||
|
.oe_kanban_crm_salesteams
|
||||||
|
/* Customize width and height of kanban according bootstrap3 */
|
||||||
|
width: 357px
|
||||||
|
min-height: 254px !important
|
||||||
|
/* End of customize */
|
||||||
|
cursor: default
|
||||||
|
.oe_items_list
|
||||||
|
position: relative
|
||||||
|
/* Improved margin to set alignment of list items according bootstrap3 */
|
||||||
|
margin: 10px 0 10px 9px
|
||||||
|
min-height: 10px
|
||||||
|
div
|
||||||
|
width: 160px
|
||||||
|
height: 22px
|
||||||
|
margin: 0 !important
|
||||||
|
position: relative
|
||||||
|
display: inline-block
|
||||||
|
float: left
|
||||||
|
a:nth-child(2n)
|
||||||
|
position: absolute
|
||||||
|
left: 90px
|
||||||
|
top: 0
|
||||||
|
div:nth-child(2n)
|
||||||
|
a:nth-child(2n)
|
||||||
|
left: 110px
|
||||||
|
a:hover
|
||||||
|
text-decoration: underline !important
|
||||||
|
.oe_center
|
||||||
|
text-align: center
|
||||||
|
margin: 3px 0
|
||||||
|
.oe_sum
|
||||||
|
margin: 0
|
||||||
|
font-size: 40px
|
||||||
|
.oe_subsum
|
||||||
|
font-size: 10px
|
||||||
|
.oe_salesteams_help
|
||||||
|
display: inline-block
|
||||||
|
.oe_kanban_salesteams_avatars
|
||||||
|
margin-top: 20px
|
||||||
|
.oe_kanban_salesteams_avatars
|
||||||
|
img
|
||||||
|
width: 30px
|
||||||
|
height: 30px
|
||||||
|
padding-left: 0px
|
||||||
|
margin-top: 3px
|
||||||
|
-moz-border-radius: 2px
|
||||||
|
-webkit-border-radius: 2px
|
||||||
|
border-radius: 2px
|
||||||
|
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2)
|
||||||
|
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2)
|
||||||
|
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2)
|
|
@ -1,4 +1,40 @@
|
||||||
openerp.crm = function(openerp) {
|
openerp.crm = function(openerp) {
|
||||||
|
openerp.web_kanban.KanbanView.include({
|
||||||
|
crm_display_members_names: function() {
|
||||||
|
/*
|
||||||
|
* Set avatar title for members.
|
||||||
|
* In kanban views, many2many fields only return a list of ids.
|
||||||
|
* We can implement return value of m2m fields like [(1,"Adminstration"),...].
|
||||||
|
*/
|
||||||
|
var self = this;
|
||||||
|
var members_ids = [];
|
||||||
|
|
||||||
|
// Collect members ids
|
||||||
|
self.$el.find('img[data-member_id]').each(function() {
|
||||||
|
members_ids.push($(this).data('member_id'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Find their matching names
|
||||||
|
var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
|
||||||
|
dataset.read_slice(['id', 'name']).done(function(result) {
|
||||||
|
_.each(result, function(v, k) {
|
||||||
|
// Set the proper value in the DOM
|
||||||
|
self.$el.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({
|
||||||
|
offset: 10
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
on_groups_started: function() {
|
||||||
|
var self = this;
|
||||||
|
self._super.apply(self, arguments);
|
||||||
|
|
||||||
|
if (self.dataset.model === 'crm.case.section') {
|
||||||
|
self.crm_display_members_names();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
openerp.web_kanban.KanbanRecord.include({
|
openerp.web_kanban.KanbanRecord.include({
|
||||||
on_card_clicked: function() {
|
on_card_clicked: function() {
|
||||||
if (this.view.dataset.model === 'crm.case.section') {
|
if (this.view.dataset.model === 'crm.case.section') {
|
||||||
|
@ -8,5 +44,4 @@ openerp.crm = function(openerp) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,6 +38,9 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', select=True),
|
'section_id': fields.many2one('crm.case.section', 'Sales Team', select=True),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def onchange_action(self, cr, uid, ids, action, context=None):
|
||||||
|
return {'value': {'partner_id': False if action != 'exist' else self._find_matching_partner(cr, uid, context=context)}}
|
||||||
|
|
||||||
def default_get(self, cr, uid, fields, context=None):
|
def default_get(self, cr, uid, fields, context=None):
|
||||||
"""
|
"""
|
||||||
Default get for name, opportunity_ids.
|
Default get for name, opportunity_ids.
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
</field>
|
</field>
|
||||||
</group>
|
</group>
|
||||||
<group name="action" attrs="{'invisible': [('name', '!=', 'convert')]}">
|
<group name="action" attrs="{'invisible': [('name', '!=', 'convert')]}">
|
||||||
<field name="action" class="oe_inline"/>
|
<field name="action" on_change="onchange_action(action, context)" class="oe_inline"/>
|
||||||
<field name="partner_id"
|
<field name="partner_id"
|
||||||
attrs="{'required': [('action', '=', 'exist')], 'invisible':[('action','!=','exist')]}"
|
attrs="{'required': [('action', '=', 'exist')], 'invisible':[('action','!=','exist')]}"
|
||||||
class="oe_inline"/>
|
class="oe_inline"/>
|
||||||
|
|
|
@ -51,7 +51,9 @@
|
||||||
<search string="Search">
|
<search string="Search">
|
||||||
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
|
<filter string="My Sales Team(s)" icon="terp-personal+" context="{'invisible_section': False}" domain="[('section_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
|
<!-- A 'My Company' filter makes no sense regarding record rules, and is not possible to do (uid is not a company): remove me in 8.0 -->
|
||||||
|
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[]" help="My company"
|
||||||
|
invisible="1"/>
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
|
||||||
<field name="company_id" groups="base.group_multi_company"/>
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
|
|
|
@ -69,7 +69,11 @@ class document_file(osv.osv):
|
||||||
|
|
||||||
def check(self, cr, uid, ids, mode, context=None, values=None):
|
def check(self, cr, uid, ids, mode, context=None, values=None):
|
||||||
"""Overwrite check to verify access on directory to validate specifications of doc/access_permissions.rst"""
|
"""Overwrite check to verify access on directory to validate specifications of doc/access_permissions.rst"""
|
||||||
|
if not isinstance(ids, list):
|
||||||
|
ids = [ids]
|
||||||
|
|
||||||
super(document_file, self).check(cr, uid, ids, mode, context=context, values=values)
|
super(document_file, self).check(cr, uid, ids, mode, context=context, values=values)
|
||||||
|
|
||||||
if ids:
|
if ids:
|
||||||
self.pool.get('ir.model.access').check(cr, uid, 'document.directory', mode)
|
self.pool.get('ir.model.access').check(cr, uid, 'document.directory', mode)
|
||||||
|
|
||||||
|
|
|
@ -369,7 +369,7 @@ class email_template(osv.osv):
|
||||||
attachment_ids=[attach.id for attach in template.attachment_ids],
|
attachment_ids=[attach.id for attach in template.attachment_ids],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add report in attachments
|
# Add report in attachments: generate once for all template_res_ids
|
||||||
if template.report_template:
|
if template.report_template:
|
||||||
for res_id in template_res_ids:
|
for res_id in template_res_ids:
|
||||||
attachments = []
|
attachments = []
|
||||||
|
@ -387,8 +387,7 @@ class email_template(osv.osv):
|
||||||
if not report_name.endswith(ext):
|
if not report_name.endswith(ext):
|
||||||
report_name += ext
|
report_name += ext
|
||||||
attachments.append((report_name, result))
|
attachments.append((report_name, result))
|
||||||
|
results[res_id]['attachments'] = attachments
|
||||||
values['attachments'] = attachments
|
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
|
@ -60,10 +60,9 @@ class config(osv.Model):
|
||||||
def get_access_token(self, cr, uid, scope=None, context=None):
|
def get_access_token(self, cr, uid, scope=None, context=None):
|
||||||
ir_config = self.pool['ir.config_parameter']
|
ir_config = self.pool['ir.config_parameter']
|
||||||
google_drive_refresh_token = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_refresh_token')
|
google_drive_refresh_token = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_refresh_token')
|
||||||
group_config = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_erp_manager')[1]
|
user_is_admin = self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager')
|
||||||
user = self.pool['res.users'].read(cr, uid, uid, "groups_id")
|
|
||||||
if not google_drive_refresh_token:
|
if not google_drive_refresh_token:
|
||||||
if group_config in user['groups_id']:
|
if user_is_admin:
|
||||||
raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context)
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context)
|
||||||
else:
|
else:
|
||||||
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
|
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
|
||||||
|
@ -81,7 +80,7 @@ class config(osv.Model):
|
||||||
req = urllib2.Request('https://accounts.google.com/o/oauth2/token', data, headers)
|
req = urllib2.Request('https://accounts.google.com/o/oauth2/token', data, headers)
|
||||||
content = urllib2.urlopen(req).read()
|
content = urllib2.urlopen(req).read()
|
||||||
except urllib2.HTTPError:
|
except urllib2.HTTPError:
|
||||||
if group_config in user['groups_id']:
|
if user_is_admin:
|
||||||
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context)
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context)
|
||||||
else:
|
else:
|
||||||
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
|
raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator."))
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
import cgi
|
||||||
import simplejson
|
import simplejson
|
||||||
import logging
|
import logging
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
@ -67,24 +68,24 @@ class config(osv.osv):
|
||||||
request = '''<feed xmlns="http://www.w3.org/2005/Atom"
|
request = '''<feed xmlns="http://www.w3.org/2005/Atom"
|
||||||
xmlns:batch="http://schemas.google.com/gdata/batch"
|
xmlns:batch="http://schemas.google.com/gdata/batch"
|
||||||
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
|
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
|
||||||
<id>https://spreadsheets.google.com/feeds/cells/%s/od6/private/full</id>
|
<id>https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full</id>
|
||||||
<entry>
|
<entry>
|
||||||
<batch:id>A1</batch:id>
|
<batch:id>A1</batch:id>
|
||||||
<batch:operation type="update"/>
|
<batch:operation type="update"/>
|
||||||
<id>https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R1C1</id>
|
<id>https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R1C1</id>
|
||||||
<link rel="edit" type="application/atom+xml"
|
<link rel="edit" type="application/atom+xml"
|
||||||
href="https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R1C1"/>
|
href="https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R1C1"/>
|
||||||
<gs:cell row="1" col="1" inputValue="%s"/>
|
<gs:cell row="1" col="1" inputValue="{formula}"/>
|
||||||
</entry>
|
</entry>
|
||||||
<entry>
|
<entry>
|
||||||
<batch:id>A2</batch:id>
|
<batch:id>A2</batch:id>
|
||||||
<batch:operation type="update"/>
|
<batch:operation type="update"/>
|
||||||
<id>https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R60C15</id>
|
<id>https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R60C15</id>
|
||||||
<link rel="edit" type="application/atom+xml"
|
<link rel="edit" type="application/atom+xml"
|
||||||
href="https://spreadsheets.google.com/feeds/cells/%s/od6/private/full/R60C15"/>
|
href="https://spreadsheets.google.com/feeds/cells/{key}/od6/private/full/R60C15"/>
|
||||||
<gs:cell row="60" col="15" inputValue="%s"/>
|
<gs:cell row="60" col="15" inputValue="{config}"/>
|
||||||
</entry>
|
</entry>
|
||||||
</feed>''' % (spreadsheet_key, spreadsheet_key, spreadsheet_key, formula.replace('"', '"'), spreadsheet_key, spreadsheet_key, config_formula.replace('"', '"'))
|
</feed>''' .format(key=spreadsheet_key, formula=cgi.escape(formula, quote=True), config=cgi.escape(config_formula, quote=True))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
req = urllib2.Request(
|
req = urllib2.Request(
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
@ -17,9 +17,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.openerp .oe_attendance_signin {
|
.openerp .oe_attendance_signin {
|
||||||
float:left;
|
float: right;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
background: url(/hr_attendance/static/src/img/emp-out32.png);
|
background: url(/hr_attendance/static/src/img/emp-out32.png);
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
@ -17,9 +17,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
@ -17,9 +17,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #006699;
|
color: #006699;
|
||||||
font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
|
font-family: "Helvetica Neue", Arial, Verdana, "Nimbus Sans L", sans-serif;
|
||||||
font-size: 10px;
|
font-size: 11px;
|
||||||
background: #eeeeee;
|
background: #eeeeee;
|
||||||
min-width: 47px;
|
min-width: 47px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.openerp .oe_kanban_view .oe_kanban_idea_idea {
|
.openerp .oe_kanban_view .oe_kanban_idea_idea {
|
||||||
width: 200px;
|
width: 212px; /* Customize width according bootstrap3 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_idea_idea .oe_avatars {
|
.openerp .oe_kanban_view .oe_kanban_idea_idea .oe_avatars {
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
calc_box: function() {
|
calc_box: function() {
|
||||||
var $topbar = instance.client.$(".oe_topbar");
|
var $topbar = instance.client.$(".navbar"); // .oe_topbar is replaced with .navbar of bootstrap3
|
||||||
var top = $topbar.offset().top + $topbar.height();
|
var top = $topbar.offset().top + $topbar.height();
|
||||||
top = Math.max(top - $(window).scrollTop(), 0);
|
top = Math.max(top - $(window).scrollTop(), 0);
|
||||||
this.$el.css("top", top);
|
this.$el.css("top", top);
|
||||||
|
|
|
@ -211,5 +211,5 @@ class im_session(osv.osv):
|
||||||
_inherit = 'im.session'
|
_inherit = 'im.session'
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'channel_id': fields.many2one("im.user", "Channel"),
|
'channel_id': fields.many2one("im_livechat.channel", "Channel"),
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2013-02-14 16:43+0000\n"
|
"PO-Revision-Date: 2013-12-02 18:38+0000\n"
|
||||||
"Last-Translator: krnkris <Unknown>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 06:29+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-03 05:41+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16856)\n"
|
||||||
|
|
||||||
#. module: mail
|
#. module: mail
|
||||||
#: view:mail.followers:0
|
#: view:mail.followers:0
|
||||||
|
@ -1791,7 +1791,7 @@ msgstr "Altípusok"
|
||||||
#. module: mail
|
#. module: mail
|
||||||
#: model:ir.model,name:mail.model_mail_alias
|
#: model:ir.model,name:mail.model_mail_alias
|
||||||
msgid "Email Aliases"
|
msgid "Email Aliases"
|
||||||
msgstr "e-amil álnevek"
|
msgstr "Email álnevek"
|
||||||
|
|
||||||
#. module: mail
|
#. module: mail
|
||||||
#: field:mail.group,image_small:0
|
#: field:mail.group,image_small:0
|
||||||
|
|
|
@ -817,12 +817,11 @@ class mail_message(osv.Model):
|
||||||
return email_reply_to
|
return email_reply_to
|
||||||
|
|
||||||
def _get_message_id(self, cr, uid, values, context=None):
|
def _get_message_id(self, cr, uid, values, context=None):
|
||||||
message_id = None
|
if values.get('reply_to'):
|
||||||
if not values.get('message_id') and values.get('reply_to'):
|
|
||||||
message_id = tools.generate_tracking_message_id('reply_to')
|
message_id = tools.generate_tracking_message_id('reply_to')
|
||||||
elif not values.get('message_id') and values.get('res_id') and values.get('model'):
|
elif values.get('res_id') and values.get('model'):
|
||||||
message_id = tools.generate_tracking_message_id('%(res_id)s-%(model)s' % values)
|
message_id = tools.generate_tracking_message_id('%(res_id)s-%(model)s' % values)
|
||||||
elif not values.get('message_id'):
|
else:
|
||||||
message_id = tools.generate_tracking_message_id('private')
|
message_id = tools.generate_tracking_message_id('private')
|
||||||
return message_id
|
return message_id
|
||||||
|
|
||||||
|
@ -833,7 +832,7 @@ class mail_message(osv.Model):
|
||||||
|
|
||||||
if 'email_from' not in values: # needed to compute reply_to
|
if 'email_from' not in values: # needed to compute reply_to
|
||||||
values['email_from'] = self._get_default_from(cr, uid, context=context)
|
values['email_from'] = self._get_default_from(cr, uid, context=context)
|
||||||
if not values.get('message_id'):
|
if 'message_id' not in values:
|
||||||
values['message_id'] = self._get_message_id(cr, uid, values, context=context)
|
values['message_id'] = self._get_message_id(cr, uid, values, context=context)
|
||||||
if 'reply_to' not in values:
|
if 'reply_to' not in values:
|
||||||
values['reply_to'] = self._get_reply_to(cr, uid, values, context=context)
|
values['reply_to'] = self._get_reply_to(cr, uid, values, context=context)
|
||||||
|
|
|
@ -252,13 +252,10 @@ class mail_thread(osv.AbstractModel):
|
||||||
new = set(command[2])
|
new = set(command[2])
|
||||||
|
|
||||||
# remove partners that are no longer followers
|
# remove partners that are no longer followers
|
||||||
fol_ids = fol_obj.search(cr, SUPERUSER_ID,
|
self.message_unsubscribe(cr, uid, [id], list(old-new))
|
||||||
[('res_model', '=', self._name), ('res_id', '=', id), ('partner_id', 'not in', list(new))])
|
|
||||||
fol_obj.unlink(cr, SUPERUSER_ID, fol_ids)
|
|
||||||
|
|
||||||
# add new followers
|
# add new followers
|
||||||
for partner_id in new - old:
|
self.message_subscribe(cr, uid, [id], list(new-old))
|
||||||
fol_obj.create(cr, SUPERUSER_ID, {'res_model': self._name, 'res_id': id, 'partner_id': partner_id})
|
|
||||||
|
|
||||||
def _search_followers(self, cr, uid, obj, name, args, context):
|
def _search_followers(self, cr, uid, obj, name, args, context):
|
||||||
"""Search function for message_follower_ids
|
"""Search function for message_follower_ids
|
||||||
|
@ -346,6 +343,7 @@ class mail_thread(osv.AbstractModel):
|
||||||
"""
|
"""
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
|
|
||||||
thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
|
thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
|
||||||
|
|
||||||
# automatic logging unless asked not to (mainly for various testing purpose)
|
# automatic logging unless asked not to (mainly for various testing purpose)
|
||||||
|
@ -355,6 +353,7 @@ class mail_thread(osv.AbstractModel):
|
||||||
# subscribe uid unless asked not to
|
# subscribe uid unless asked not to
|
||||||
if not context.get('mail_create_nosubscribe'):
|
if not context.get('mail_create_nosubscribe'):
|
||||||
self.message_subscribe_users(cr, uid, [thread_id], [uid], context=context)
|
self.message_subscribe_users(cr, uid, [thread_id], [uid], context=context)
|
||||||
|
|
||||||
# auto_subscribe: take values and defaults into account
|
# auto_subscribe: take values and defaults into account
|
||||||
create_values = dict(values)
|
create_values = dict(values)
|
||||||
for key, val in context.iteritems():
|
for key, val in context.iteritems():
|
||||||
|
@ -723,8 +722,8 @@ class mail_thread(osv.AbstractModel):
|
||||||
# Private message: should not contain any thread_id
|
# Private message: should not contain any thread_id
|
||||||
if not model and thread_id:
|
if not model and thread_id:
|
||||||
if assert_model:
|
if assert_model:
|
||||||
assert thread_id == 0, 'Routing: posting a message without model should be with a null res_id (private message).'
|
assert thread_id == 0, 'Routing: posting a message without model should be with a null res_id (private message), received %s.' % thread_id
|
||||||
_warn('posting a message without model should be with a null res_id (private message), resetting thread_id')
|
_warn('posting a message without model should be with a null res_id (private message), received %s, resetting thread_id' % thread_id)
|
||||||
thread_id = 0
|
thread_id = 0
|
||||||
# Private message: should have a parent_id (only answers)
|
# Private message: should have a parent_id (only answers)
|
||||||
if not model and not message_dict.get('parent_id'):
|
if not model and not message_dict.get('parent_id'):
|
||||||
|
@ -821,6 +820,7 @@ class mail_thread(osv.AbstractModel):
|
||||||
:return: list of [model, thread_id, custom_values, user_id, alias]
|
:return: list of [model, thread_id, custom_values, user_id, alias]
|
||||||
"""
|
"""
|
||||||
assert isinstance(message, Message), 'message must be an email.message.Message at this point'
|
assert isinstance(message, Message), 'message must be an email.message.Message at this point'
|
||||||
|
mail_msg_obj = self.pool['mail.message']
|
||||||
fallback_model = model
|
fallback_model = model
|
||||||
|
|
||||||
# Get email.message.Message variables for future processing
|
# Get email.message.Message variables for future processing
|
||||||
|
@ -829,31 +829,54 @@ class mail_thread(osv.AbstractModel):
|
||||||
email_to = decode_header(message, 'To')
|
email_to = decode_header(message, 'To')
|
||||||
references = decode_header(message, 'References')
|
references = decode_header(message, 'References')
|
||||||
in_reply_to = decode_header(message, 'In-Reply-To')
|
in_reply_to = decode_header(message, 'In-Reply-To')
|
||||||
|
|
||||||
# 1. Verify if this is a reply to an existing thread
|
|
||||||
thread_references = references or in_reply_to
|
thread_references = references or in_reply_to
|
||||||
|
|
||||||
|
# 1. message is a reply to an existing message (exact match of message_id)
|
||||||
|
msg_references = thread_references.split()
|
||||||
|
mail_message_ids = mail_msg_obj.search(cr, uid, [('message_id', 'in', msg_references)], context=context)
|
||||||
|
if mail_message_ids:
|
||||||
|
original_msg = mail_msg_obj.browse(cr, SUPERUSER_ID, mail_message_ids[0], context=context)
|
||||||
|
model, thread_id = original_msg.model, original_msg.res_id
|
||||||
|
_logger.info(
|
||||||
|
'Routing mail from %s to %s with Message-Id %s: direct reply to msg: model: %s, thread_id: %s, custom_values: %s, uid: %s',
|
||||||
|
email_from, email_to, message_id, model, thread_id, custom_values, uid)
|
||||||
|
route = self.message_route_verify(
|
||||||
|
cr, uid, message, message_dict,
|
||||||
|
(model, thread_id, custom_values, uid, None),
|
||||||
|
update_author=True, assert_model=True, create_fallback=True, context=context)
|
||||||
|
return route and [route] or []
|
||||||
|
|
||||||
|
# 2. message is a reply to an existign thread (6.1 compatibility)
|
||||||
ref_match = thread_references and tools.reference_re.search(thread_references)
|
ref_match = thread_references and tools.reference_re.search(thread_references)
|
||||||
if ref_match:
|
if ref_match:
|
||||||
thread_id = int(ref_match.group(1))
|
thread_id = int(ref_match.group(1))
|
||||||
model = ref_match.group(2) or fallback_model
|
model = ref_match.group(2) or fallback_model
|
||||||
if thread_id and model in self.pool:
|
if thread_id and model in self.pool:
|
||||||
model_obj = self.pool[model]
|
model_obj = self.pool[model]
|
||||||
if model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'):
|
compat_mail_msg_ids = mail_msg_obj.search(
|
||||||
_logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s',
|
cr, uid, [
|
||||||
email_from, email_to, message_id, model, thread_id, custom_values, uid)
|
('message_id', '=', False),
|
||||||
route = self.message_route_verify(cr, uid, message, message_dict,
|
('model', '=', model),
|
||||||
(model, thread_id, custom_values, uid, None),
|
('res_id', '=', thread_id),
|
||||||
update_author=True, assert_model=True, create_fallback=True, context=context)
|
], context=context)
|
||||||
|
if compat_mail_msg_ids and model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'):
|
||||||
|
_logger.info(
|
||||||
|
'Routing mail from %s to %s with Message-Id %s: direct thread reply (compat-mode) to model: %s, thread_id: %s, custom_values: %s, uid: %s',
|
||||||
|
email_from, email_to, message_id, model, thread_id, custom_values, uid)
|
||||||
|
route = self.message_route_verify(
|
||||||
|
cr, uid, message, message_dict,
|
||||||
|
(model, thread_id, custom_values, uid, None),
|
||||||
|
update_author=True, assert_model=True, create_fallback=True, context=context)
|
||||||
return route and [route] or []
|
return route and [route] or []
|
||||||
|
|
||||||
# 2. Reply to a private message
|
# 2. Reply to a private message
|
||||||
if in_reply_to:
|
if in_reply_to:
|
||||||
mail_message_ids = self.pool.get('mail.message').search(cr, uid, [
|
mail_message_ids = mail_msg_obj.search(cr, uid, [
|
||||||
('message_id', '=', in_reply_to),
|
('message_id', '=', in_reply_to),
|
||||||
'!', ('message_id', 'ilike', 'reply_to')
|
'!', ('message_id', 'ilike', 'reply_to')
|
||||||
], limit=1, context=context)
|
], limit=1, context=context)
|
||||||
if mail_message_ids:
|
if mail_message_ids:
|
||||||
mail_message = self.pool.get('mail.message').browse(cr, uid, mail_message_ids[0], context=context)
|
mail_message = mail_msg_obj.browse(cr, uid, mail_message_ids[0], context=context)
|
||||||
_logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to a private message: %s, custom_values: %s, uid: %s',
|
_logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to a private message: %s, custom_values: %s, uid: %s',
|
||||||
email_from, email_to, message_id, mail_message.id, custom_values, uid)
|
email_from, email_to, message_id, mail_message.id, custom_values, uid)
|
||||||
route = self.message_route_verify(cr, uid, message, message_dict,
|
route = self.message_route_verify(cr, uid, message, message_dict,
|
||||||
|
@ -1096,7 +1119,7 @@ class mail_thread(osv.AbstractModel):
|
||||||
encoding = part.get_content_charset() # None if attachment
|
encoding = part.get_content_charset() # None if attachment
|
||||||
# 1) Explicit Attachments -> attachments
|
# 1) Explicit Attachments -> attachments
|
||||||
if filename or part.get('content-disposition', '').strip().startswith('attachment'):
|
if filename or part.get('content-disposition', '').strip().startswith('attachment'):
|
||||||
attachments.append((filename or 'attachment', part.get_payload(decode=True)))
|
attachments.append((decode(filename) or 'attachment', part.get_payload(decode=True)))
|
||||||
continue
|
continue
|
||||||
# 2) text/plain -> <pre/>
|
# 2) text/plain -> <pre/>
|
||||||
if part.get_content_type() == 'text/plain' and (not alternative or not body):
|
if part.get_content_type() == 'text/plain' and (not alternative or not body):
|
||||||
|
@ -1321,6 +1344,40 @@ class mail_thread(osv.AbstractModel):
|
||||||
mail_message_obj.write(cr, SUPERUSER_ID, message_ids, {'author_id': partner_info['partner_id']}, context=context)
|
mail_message_obj.write(cr, SUPERUSER_ID, message_ids, {'author_id': partner_info['partner_id']}, context=context)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def _message_preprocess_attachments(self, cr, uid, attachments, attachment_ids, attach_model, attach_res_id, context=None):
|
||||||
|
""" Preprocess attachments for mail_thread.message_post() or mail_mail.create().
|
||||||
|
|
||||||
|
:param list attachments: list of attachment tuples in the form ``(name,content)``,
|
||||||
|
where content is NOT base64 encoded
|
||||||
|
:param list attachment_ids: a list of attachment ids, not in tomany command form
|
||||||
|
:param str attach_model: the model of the attachments parent record
|
||||||
|
:param integer attach_res_id: the id of the attachments parent record
|
||||||
|
"""
|
||||||
|
Attachment = self.pool['ir.attachment']
|
||||||
|
m2m_attachment_ids = []
|
||||||
|
if attachment_ids:
|
||||||
|
filtered_attachment_ids = Attachment.search(cr, SUPERUSER_ID, [
|
||||||
|
('res_model', '=', 'mail.compose.message'),
|
||||||
|
('create_uid', '=', uid),
|
||||||
|
('id', 'in', attachment_ids)], context=context)
|
||||||
|
if filtered_attachment_ids:
|
||||||
|
Attachment.write(cr, SUPERUSER_ID, filtered_attachment_ids, {'res_model': attach_model, 'res_id': attach_res_id}, context=context)
|
||||||
|
m2m_attachment_ids += [(4, id) for id in attachment_ids]
|
||||||
|
# Handle attachments parameter, that is a dictionary of attachments
|
||||||
|
for name, content in attachments:
|
||||||
|
if isinstance(content, unicode):
|
||||||
|
content = content.encode('utf-8')
|
||||||
|
data_attach = {
|
||||||
|
'name': name,
|
||||||
|
'datas': base64.b64encode(str(content)),
|
||||||
|
'datas_fname': name,
|
||||||
|
'description': name,
|
||||||
|
'res_model': attach_model,
|
||||||
|
'res_id': attach_res_id,
|
||||||
|
}
|
||||||
|
m2m_attachment_ids.append((0, 0, data_attach))
|
||||||
|
return m2m_attachment_ids
|
||||||
|
|
||||||
def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification',
|
def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification',
|
||||||
subtype=None, parent_id=False, attachments=None, context=None,
|
subtype=None, parent_id=False, attachments=None, context=None,
|
||||||
content_subtype='html', **kwargs):
|
content_subtype='html', **kwargs):
|
||||||
|
@ -1399,28 +1456,7 @@ class mail_thread(osv.AbstractModel):
|
||||||
|
|
||||||
# 3. Attachments
|
# 3. Attachments
|
||||||
# - HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message
|
# - HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message
|
||||||
attachment_ids = kwargs.pop('attachment_ids', []) or [] # because we could receive None (some old code sends None)
|
attachment_ids = self._message_preprocess_attachments(cr, uid, attachments, kwargs.pop('attachment_ids', []), model, thread_id, context)
|
||||||
if attachment_ids:
|
|
||||||
filtered_attachment_ids = ir_attachment.search(cr, SUPERUSER_ID, [
|
|
||||||
('res_model', '=', 'mail.compose.message'),
|
|
||||||
('create_uid', '=', uid),
|
|
||||||
('id', 'in', attachment_ids)], context=context)
|
|
||||||
if filtered_attachment_ids:
|
|
||||||
ir_attachment.write(cr, SUPERUSER_ID, filtered_attachment_ids, {'res_model': model, 'res_id': thread_id}, context=context)
|
|
||||||
attachment_ids = [(4, id) for id in attachment_ids]
|
|
||||||
# Handle attachments parameter, that is a dictionary of attachments
|
|
||||||
for name, content in attachments:
|
|
||||||
if isinstance(content, unicode):
|
|
||||||
content = content.encode('utf-8')
|
|
||||||
data_attach = {
|
|
||||||
'name': name,
|
|
||||||
'datas': base64.b64encode(str(content)),
|
|
||||||
'datas_fname': name,
|
|
||||||
'description': name,
|
|
||||||
'res_model': model,
|
|
||||||
'res_id': thread_id,
|
|
||||||
}
|
|
||||||
attachment_ids.append((0, 0, data_attach))
|
|
||||||
|
|
||||||
# 4: mail.message.subtype
|
# 4: mail.message.subtype
|
||||||
subtype_id = False
|
subtype_id = False
|
||||||
|
@ -1508,35 +1544,33 @@ class mail_thread(osv.AbstractModel):
|
||||||
else:
|
else:
|
||||||
self.check_access_rights(cr, uid, 'write')
|
self.check_access_rights(cr, uid, 'write')
|
||||||
|
|
||||||
for record in self.browse(cr, SUPERUSER_ID, ids, context=context):
|
existing_pids_dict = {}
|
||||||
existing_pids = set([f.id for f in record.message_follower_ids
|
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('res_id', 'in', ids)])
|
||||||
if f.id in partner_ids])
|
for fol in mail_followers_obj.browse(cr, SUPERUSER_ID, fol_ids, context=context):
|
||||||
|
existing_pids_dict.setdefault(fol.res_id, set()).add(fol.partner_id.id)
|
||||||
|
|
||||||
|
# subtype_ids specified: update already subscribed partners
|
||||||
|
if subtype_ids and fol_ids:
|
||||||
|
mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
|
||||||
|
# subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
|
||||||
|
if subtype_ids is None:
|
||||||
|
subtype_ids = subtype_obj.search(
|
||||||
|
cr, uid, [
|
||||||
|
('default', '=', True), '|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context)
|
||||||
|
|
||||||
|
for id in ids:
|
||||||
|
existing_pids = existing_pids_dict.get(id, set())
|
||||||
new_pids = set(partner_ids) - existing_pids
|
new_pids = set(partner_ids) - existing_pids
|
||||||
|
|
||||||
# subtype_ids specified: update already subscribed partners
|
|
||||||
if subtype_ids and existing_pids:
|
|
||||||
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [
|
|
||||||
('res_model', '=', self._name),
|
|
||||||
('res_id', '=', record.id),
|
|
||||||
('partner_id', 'in', list(existing_pids)),
|
|
||||||
], context=context)
|
|
||||||
mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
|
|
||||||
# subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
|
|
||||||
elif subtype_ids is None:
|
|
||||||
subtype_ids = subtype_obj.search(cr, uid, [
|
|
||||||
('default', '=', True),
|
|
||||||
'|',
|
|
||||||
('res_model', '=', self._name),
|
|
||||||
('res_model', '=', False)
|
|
||||||
], context=context)
|
|
||||||
# subscribe new followers
|
# subscribe new followers
|
||||||
for new_pid in new_pids:
|
for new_pid in new_pids:
|
||||||
mail_followers_obj.create(cr, SUPERUSER_ID, {
|
mail_followers_obj.create(
|
||||||
'res_model': self._name,
|
cr, SUPERUSER_ID, {
|
||||||
'res_id': record.id,
|
'res_model': self._name,
|
||||||
'partner_id': new_pid,
|
'res_id': id,
|
||||||
'subtype_ids': [(6, 0, subtype_ids)],
|
'partner_id': new_pid,
|
||||||
}, context=context)
|
'subtype_ids': [(6, 0, subtype_ids)],
|
||||||
|
}, context=context)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -1555,7 +1589,14 @@ class mail_thread(osv.AbstractModel):
|
||||||
self.check_access_rights(cr, uid, 'read')
|
self.check_access_rights(cr, uid, 'read')
|
||||||
else:
|
else:
|
||||||
self.check_access_rights(cr, uid, 'write')
|
self.check_access_rights(cr, uid, 'write')
|
||||||
return self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(3, pid) for pid in partner_ids]}, context=context)
|
fol_obj = self.pool['mail.followers']
|
||||||
|
fol_ids = fol_obj.search(
|
||||||
|
cr, SUPERUSER_ID, [
|
||||||
|
('res_model', '=', self._name),
|
||||||
|
('res_id', 'in', ids),
|
||||||
|
('partner_id', 'in', partner_ids)
|
||||||
|
], context=context)
|
||||||
|
return fol_obj.unlink(cr, SUPERUSER_ID, fol_ids, context=context)
|
||||||
|
|
||||||
def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=['user_id'], context=None):
|
def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=['user_id'], context=None):
|
||||||
""" Returns the list of relational fields linking to res.users that should
|
""" Returns the list of relational fields linking to res.users that should
|
||||||
|
|
|
@ -81,6 +81,12 @@ class res_users(osv.Model):
|
||||||
self._create_welcome_message(cr, uid, user, context=context)
|
self._create_welcome_message(cr, uid, user, context=context)
|
||||||
return user_id
|
return user_id
|
||||||
|
|
||||||
|
def copy_data(self, *args, **kwargs):
|
||||||
|
data = super(res_users, self).copy_data(*args, **kwargs)
|
||||||
|
if data.get('alias_name'):
|
||||||
|
data['alias_name'] = data['login']
|
||||||
|
return data
|
||||||
|
|
||||||
def _create_welcome_message(self, cr, uid, user, context=None):
|
def _create_welcome_message(self, cr, uid, user, context=None):
|
||||||
if not self.has_group(cr, uid, 'base.group_user'):
|
if not self.has_group(cr, uid, 'base.group_user'):
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -94,9 +94,7 @@
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_footer{
|
.openerp .oe_mail .oe_msg .oe_msg_footer{
|
||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
padding-top: 3px;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 4px;
|
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_content{
|
.openerp .oe_mail .oe_msg .oe_msg_content{
|
||||||
|
@ -478,7 +476,7 @@
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_footer button.oe_attach{
|
.openerp .oe_mail .oe_msg_footer button.oe_attach{
|
||||||
width: 24px;
|
width: 24px;
|
||||||
overflow: hidden;
|
margin-bottom: 5px; /* improved margin of file attach button according bootstrap3 */
|
||||||
filter:none;
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
|
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
|
||||||
|
@ -634,7 +632,7 @@
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
}
|
}
|
||||||
.openerp .oe_followers .oe_invite{
|
.openerp .oe_followers .oe_invite{
|
||||||
float: right;
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
.openerp .oe_followers .oe_partner {
|
.openerp .oe_followers .oe_partner {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
|
|
|
@ -378,7 +378,7 @@ class TestMailgateway(TestMail):
|
||||||
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
|
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
|
||||||
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
|
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
|
||||||
to='erroneous@example.com>', subject='Re: news',
|
to='erroneous@example.com>', subject='Re: news',
|
||||||
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
|
extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>\n')
|
||||||
# Test: no group 'Re: news' created, still only 1 Frogs group
|
# Test: no group 'Re: news' created, still only 1 Frogs group
|
||||||
self.assertEqual(len(frog_groups), 0,
|
self.assertEqual(len(frog_groups), 0,
|
||||||
'message_process: reply on Frogs should not have created a new group with new subject')
|
'message_process: reply on Frogs should not have created a new group with new subject')
|
||||||
|
@ -387,16 +387,41 @@ class TestMailgateway(TestMail):
|
||||||
'message_process: reply on Frogs should not have created a duplicate group with old subject')
|
'message_process: reply on Frogs should not have created a duplicate group with old subject')
|
||||||
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
# Test: one new message
|
# Test: one new message
|
||||||
self.assertEqual(len(frog_group.message_ids), 3, 'message_process: group should contain 2 messages after reply')
|
self.assertEqual(len(frog_group.message_ids), 3, 'message_process: group should contain 3 messages after reply')
|
||||||
# Test: author (and not recipient) added as follower
|
# Test: author (and not recipient) added as follower
|
||||||
frog_follower_ids = set([p.id for p in frog_group.message_follower_ids])
|
frog_follower_ids = set([p.id for p in frog_group.message_follower_ids])
|
||||||
self.assertEqual(frog_follower_ids, set([p1id, p2id]),
|
self.assertEqual(frog_follower_ids, set([p1id, p2id]),
|
||||||
'message_process: after reply, group should have 2 followers')
|
'message_process: after reply, group should have 2 followers')
|
||||||
|
|
||||||
|
# Do: incoming email with ref holding model / res_id but that does not match any message in the thread: must raise since OpenERP saas-3
|
||||||
|
self.assertRaises(AssertionError,
|
||||||
|
format_and_process,
|
||||||
|
MAIL_TEMPLATE, email_from='other5@gmail.com',
|
||||||
|
to='noone@example.com', subject='spam',
|
||||||
|
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>' % frog_group.id,
|
||||||
|
msg_id='<1.1.JavaMail.new@agrolait.com>')
|
||||||
|
# There are 6.1 messages, activate compat mode
|
||||||
|
tmp_msg_id = self.mail_message.create(cr, uid, {'message_id': False, 'model': 'mail.group', 'res_id': frog_group.id})
|
||||||
|
# Do: compat mode accepts partial-matching emails
|
||||||
|
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other5@gmail.com',
|
||||||
|
msg_id='<1.2.JavaMail.new@agrolait.com>',
|
||||||
|
to='noone@example.com>', subject='spam',
|
||||||
|
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>' % frog_group.id)
|
||||||
|
self.mail_message.unlink(cr, uid, [tmp_msg_id])
|
||||||
|
# Test: no group 'Re: news' created, still only 1 Frogs group
|
||||||
|
self.assertEqual(len(frog_groups), 0,
|
||||||
|
'message_process: reply on Frogs should not have created a new group with new subject')
|
||||||
|
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
||||||
|
self.assertEqual(len(frog_groups), 1,
|
||||||
|
'message_process: reply on Frogs should not have created a duplicate group with old subject')
|
||||||
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
|
# Test: one new message
|
||||||
|
self.assertEqual(len(frog_group.message_ids), 4, 'message_process: group should contain 4 messages after reply')
|
||||||
|
|
||||||
# Do: due to some issue, same email goes back into the mailgateway
|
# Do: due to some issue, same email goes back into the mailgateway
|
||||||
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
|
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other4@gmail.com',
|
||||||
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
|
msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
|
||||||
subject='Re: news', extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
|
subject='Re: news', extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>\n')
|
||||||
# Test: no group 'Re: news' created, still only 1 Frogs group
|
# Test: no group 'Re: news' created, still only 1 Frogs group
|
||||||
self.assertEqual(len(frog_groups), 0,
|
self.assertEqual(len(frog_groups), 0,
|
||||||
'message_process: reply on Frogs should not have created a new group with new subject')
|
'message_process: reply on Frogs should not have created a new group with new subject')
|
||||||
|
@ -405,7 +430,7 @@ class TestMailgateway(TestMail):
|
||||||
'message_process: reply on Frogs should not have created a duplicate group with old subject')
|
'message_process: reply on Frogs should not have created a duplicate group with old subject')
|
||||||
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
# Test: no new message
|
# Test: no new message
|
||||||
self.assertEqual(len(frog_group.message_ids), 3, 'message_process: message with already existing message_id should not have been duplicated')
|
self.assertEqual(len(frog_group.message_ids), 4, 'message_process: message with already existing message_id should not have been duplicated')
|
||||||
# Test: message_id is still unique
|
# Test: message_id is still unique
|
||||||
msg_ids = self.mail_message.search(cr, uid, [('message_id', 'ilike', '<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>')])
|
msg_ids = self.mail_message.search(cr, uid, [('message_id', 'ilike', '<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>')])
|
||||||
self.assertEqual(len(msg_ids), 1,
|
self.assertEqual(len(msg_ids), 1,
|
||||||
|
@ -422,7 +447,7 @@ class TestMailgateway(TestMail):
|
||||||
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
||||||
to='erroneous@example.com>', subject='Re: news (2)',
|
to='erroneous@example.com>', subject='Re: news (2)',
|
||||||
msg_id='<1198923581.41972151344608186760.JavaMail.new1@agrolait.com>',
|
msg_id='<1198923581.41972151344608186760.JavaMail.new1@agrolait.com>',
|
||||||
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
|
extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
|
||||||
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
||||||
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
# Test: author is A-Raoul (only existing)
|
# Test: author is A-Raoul (only existing)
|
||||||
|
@ -436,7 +461,7 @@ class TestMailgateway(TestMail):
|
||||||
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
||||||
to='erroneous@example.com>', subject='Re: news (3)',
|
to='erroneous@example.com>', subject='Re: news (3)',
|
||||||
msg_id='<1198923581.41972151344608186760.JavaMail.new2@agrolait.com>',
|
msg_id='<1198923581.41972151344608186760.JavaMail.new2@agrolait.com>',
|
||||||
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
|
extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
|
||||||
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
||||||
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
# Test: author is Raoul (user), not A-Raoul
|
# Test: author is Raoul (user), not A-Raoul
|
||||||
|
@ -451,7 +476,7 @@ class TestMailgateway(TestMail):
|
||||||
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
|
||||||
to='erroneous@example.com>', subject='Re: news (3)',
|
to='erroneous@example.com>', subject='Re: news (3)',
|
||||||
msg_id='<1198923581.41972151344608186760.JavaMail.new3@agrolait.com>',
|
msg_id='<1198923581.41972151344608186760.JavaMail.new3@agrolait.com>',
|
||||||
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
|
extra='In-Reply-To: <1198923581.41972151344608186799.JavaMail.diff1@agrolait.com>')
|
||||||
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
|
||||||
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
|
||||||
# Test: author is Raoul (user), not A-Raoul
|
# Test: author is Raoul (user), not A-Raoul
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
import base64
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
from openerp import SUPERUSER_ID
|
from openerp import SUPERUSER_ID
|
||||||
from openerp.osv import osv
|
from openerp.osv import osv
|
||||||
|
@ -260,6 +262,12 @@ class mail_compose_message(osv.TransientModel):
|
||||||
|
|
||||||
for res_id, mail_values in all_mail_values.iteritems():
|
for res_id, mail_values in all_mail_values.iteritems():
|
||||||
if mass_mail_mode and not wizard.post:
|
if mass_mail_mode and not wizard.post:
|
||||||
|
m2m_attachment_ids = self.pool['mail.thread']._message_preprocess_attachments(
|
||||||
|
cr, uid, mail_values.pop('attachments', []),
|
||||||
|
mail_values.pop('attachment_ids', []),
|
||||||
|
'mail.message', 0,
|
||||||
|
context=context)
|
||||||
|
mail_values['attachment_ids'] = m2m_attachment_ids
|
||||||
self.pool.get('mail.mail').create(cr, uid, mail_values, context=context)
|
self.pool.get('mail.mail').create(cr, uid, mail_values, context=context)
|
||||||
else:
|
else:
|
||||||
subtype = 'mail.mt_comment'
|
subtype = 'mail.mt_comment'
|
||||||
|
@ -298,7 +306,12 @@ class mail_compose_message(osv.TransientModel):
|
||||||
if mass_mail_mode and wizard.model:
|
if mass_mail_mode and wizard.model:
|
||||||
email_dict = rendered_values[res_id]
|
email_dict = rendered_values[res_id]
|
||||||
mail_values['partner_ids'] += email_dict.pop('partner_ids', [])
|
mail_values['partner_ids'] += email_dict.pop('partner_ids', [])
|
||||||
mail_values['attachments'] = email_dict.pop('attachments', [])
|
# process attachments: should not be encoded before being processed by message_post / mail_mail create
|
||||||
|
attachments = []
|
||||||
|
if email_dict.get('attachments'):
|
||||||
|
for name, enc_cont in email_dict.pop('attachments'):
|
||||||
|
attachments.append((name, base64.b64decode(enc_cont)))
|
||||||
|
mail_values['attachments'] = attachments
|
||||||
attachment_ids = []
|
attachment_ids = []
|
||||||
for attach_id in mail_values.pop('attachment_ids'):
|
for attach_id in mail_values.pop('attachment_ids'):
|
||||||
new_attach_id = self.pool.get('ir.attachment').copy(cr, uid, attach_id, {'res_model': self._name, 'res_id': wizard.id}, context=context)
|
new_attach_id = self.pool.get('ir.attachment').copy(cr, uid, attach_id, {'res_model': self._name, 'res_id': wizard.id}, context=context)
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
.openerp .oe_kanban_view .oe_kanban_mass_mailing.oe_kanban_mass_mailing_campaign {
|
.openerp .oe_kanban_view .oe_kanban_mass_mailing.oe_kanban_mass_mailing_campaign {
|
||||||
width: 540px;
|
/* Customize to manage content */
|
||||||
|
width: 552px;
|
||||||
|
min-height: 278px !important;
|
||||||
|
/* End of customize */
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_mass_mailing.oe_kanban_mass_mailing_segment {
|
.openerp .oe_kanban_view .oe_kanban_mass_mailing.oe_kanban_mass_mailing_segment {
|
||||||
width: 270px;
|
/* Customize to manage content */
|
||||||
|
width: 282px;
|
||||||
|
min-height: 246px !important;
|
||||||
|
/* End of customize */
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_kanban_view .oe_kanban_mass_mailing .oe_mail_stats {
|
.openerp .oe_kanban_view .oe_kanban_mass_mailing .oe_mail_stats {
|
||||||
width: 120px;
|
width: 122px; /* Manage space in between stats */
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 2px 5px 0px 5px;
|
margin: 2px 5px 0px 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
@ -15,9 +15,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
|
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
|
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>
|
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>
|
||||||
|
@ -29,9 +29,9 @@
|
||||||
<!--logo-->
|
<!--logo-->
|
||||||
<fill color="black"/>
|
<fill color="black"/>
|
||||||
<stroke color="black"/>
|
<stroke color="black"/>
|
||||||
<setFont name="DejaVu Sans" size="8"/>
|
<setFont name="DejaVuSans" size="8"/>
|
||||||
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
|
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
|
||||||
<setFont name="DejaVu Sans Bold" size="10"/>
|
<setFont name="DejaVuSans-Bold" size="10"/>
|
||||||
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
|
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
|
||||||
<stroke color="#000000"/>
|
<stroke color="#000000"/>
|
||||||
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>
|
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>
|
||||||
|
|
|
@ -147,6 +147,7 @@ class note_note(osv.osv):
|
||||||
if result and result[0]['stage_id'][0] == current_stage_ids[0]:
|
if result and result[0]['stage_id'][0] == current_stage_ids[0]:
|
||||||
dom_in = result[0]['__domain'].pop()
|
dom_in = result[0]['__domain'].pop()
|
||||||
result[0]['__domain'] = domain + ['|', dom_in, dom_not_in]
|
result[0]['__domain'] = domain + ['|', dom_in, dom_not_in]
|
||||||
|
result[0]['stage_id_count'] += nb_notes_ws
|
||||||
else:
|
else:
|
||||||
# add the first stage column
|
# add the first stage column
|
||||||
result = [{
|
result = [{
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
font-family: arial, sans-serif;
|
font-family: arial, sans-serif;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
line-height: 19px;
|
line-height: 19px;
|
||||||
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_form_nomargin .etherpad_readonly{
|
.openerp .oe_form_nomargin .etherpad_readonly{
|
||||||
|
|
|
@ -126,6 +126,7 @@
|
||||||
background: #393939;
|
background: #393939;
|
||||||
background: -moz-linear-gradient(#7b7979, #393939);
|
background: -moz-linear-gradient(#7b7979, #393939);
|
||||||
background: -webkit-gradient(linear, left top, left bottom, from(#7b7979), to(#393939));
|
background: -webkit-gradient(linear, left top, left bottom, from(#7b7979), to(#393939));
|
||||||
|
z-index: 2; /* Customize according bootstrap3 navbar */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* a) The left part of the top-bar */
|
/* a) The left part of the top-bar */
|
||||||
|
@ -659,6 +660,7 @@
|
||||||
.point-of-sale .screen header h2 {
|
.point-of-sale .screen header h2 {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
padding-top: 7px;
|
padding-top: 7px;
|
||||||
|
font-size: 1.5em /* Customize font according bootstrap3 */
|
||||||
}
|
}
|
||||||
.point-of-sale .screen p{
|
.point-of-sale .screen p{
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
margin: -40px 0 -32px -24px;
|
margin: -40px 0 -32px -24px;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
right: -153px;
|
right: -125px; /* improved margin according bootstrap3 */
|
||||||
|
|
||||||
background: #729FCF;
|
background: #729FCF;
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#729FCF), to(#3465A4));
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#729FCF), to(#3465A4));
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Finnish 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-12-01 22:23+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Finnish <fi@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16856)\n"
|
||||||
|
|
||||||
|
#. module: portal_anonymous
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/portal_anonymous/static/src/xml/portal_anonymous.xml:8
|
||||||
|
#, python-format
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Kirjautuminen"
|
|
@ -71,7 +71,7 @@ openerp.portal_anonymous = function(instance) {
|
||||||
this.$el.find('a.login').click(function() {
|
this.$el.find('a.login').click(function() {
|
||||||
var p = self.getParent();
|
var p = self.getParent();
|
||||||
var am = p.action_manager;
|
var am = p.action_manager;
|
||||||
p.$el.find('.oe_leftbar, .oe_topbar').hide();
|
p.$el.find('.oe_leftbar, .navbar').hide(); // .oe_topbar is replaced with .navbar of bootstrap3
|
||||||
self.session.session_logout().done(function () {
|
self.session.session_logout().done(function () {
|
||||||
am.do_action({
|
am.do_action({
|
||||||
type:'ir.actions.client',
|
type:'ir.actions.client',
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Finnish 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-12-01 22:24+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Finnish <fi@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16856)\n"
|
||||||
|
|
||||||
|
#. module: portal_claim
|
||||||
|
#: model:ir.actions.act_window,help:portal_claim.crm_case_categ_claim0
|
||||||
|
msgid ""
|
||||||
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
|
" Click to register a new claim. \n"
|
||||||
|
" </p><p>\n"
|
||||||
|
" You can track your claims from this menu and the action we\n"
|
||||||
|
" will take.\n"
|
||||||
|
" </p>\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_claim
|
||||||
|
#: model:ir.actions.act_window,name:portal_claim.crm_case_categ_claim0
|
||||||
|
#: model:ir.ui.menu,name:portal_claim.portal_after_sales_claims
|
||||||
|
msgid "Claims"
|
||||||
|
msgstr "Reklamaatiot"
|
|
@ -0,0 +1,548 @@
|
||||||
|
# Finnish 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-12-01 22:26+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Finnish <fi@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2013-12-02 05:23+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16856)\n"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,type:0
|
||||||
|
msgid "Lead"
|
||||||
|
msgstr "Liidi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,title:0
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titteli"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,probability:0
|
||||||
|
msgid "Success Rate (%)"
|
||||||
|
msgstr "Onnistumistodennäköisyys (%)"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Contact us"
|
||||||
|
msgstr "Ota yhteyttä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_action:0
|
||||||
|
msgid "Next Action Date"
|
||||||
|
msgstr "Seuraava toimenpidepäivä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,fax:0
|
||||||
|
msgid "Fax"
|
||||||
|
msgstr "Faksi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,zip:0
|
||||||
|
msgid "Zip"
|
||||||
|
msgstr "Postinumero"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,message_unread:0
|
||||||
|
msgid "Unread Messages"
|
||||||
|
msgstr "Lukemattomia viestejä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,company_id:0
|
||||||
|
msgid "Company"
|
||||||
|
msgstr "Yritys"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,day_open:0
|
||||||
|
msgid "Days to Open"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Thank you for your interest, we'll respond to your request shortly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "Highest"
|
||||||
|
msgstr "Korkein"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,mobile:0
|
||||||
|
msgid "Mobile"
|
||||||
|
msgstr "Matkapuhelin"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,description:0
|
||||||
|
msgid "Notes"
|
||||||
|
msgstr "Muistiinpanot"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,message_ids:0
|
||||||
|
msgid "Messages"
|
||||||
|
msgstr "Viestit"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,color:0
|
||||||
|
msgid "Color Index"
|
||||||
|
msgstr "Väri-indeksi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_latitude:0
|
||||||
|
msgid "Geo Latitude"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_name:0
|
||||||
|
msgid "Customer Name"
|
||||||
|
msgstr "Asiakkaan nimi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "Cancelled"
|
||||||
|
msgstr "Peruttu"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,message_unread:0
|
||||||
|
msgid "If checked new messages require your attention."
|
||||||
|
msgstr "Jos valittu, uudet viestit vaativat huomiosi."
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,channel_id:0
|
||||||
|
msgid "Communication channel (mail, direct, phone, ...)"
|
||||||
|
msgstr "Kommunikointikanava (sähköposti, suora, puhelin,...)"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,type_id:0
|
||||||
|
msgid "Campaign"
|
||||||
|
msgstr "Kampanja"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,ref:0
|
||||||
|
msgid "Reference"
|
||||||
|
msgstr "Viite"
|
||||||
|
|
||||||
|
#. 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 "Seuraava toimenpide"
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
"Sisältää viestien yhteenvedon (viestien määrän,...). Tämä yhteenveto on "
|
||||||
|
"valmiiksi html-muodossa, jotta se voidaan viedä kanban näkymään."
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_id:0
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr "Kumppani"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: model:ir.actions.act_window,name:portal_crm.action_contact_us
|
||||||
|
msgid "Contact Us"
|
||||||
|
msgstr "Ota yhteyttä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,name:0
|
||||||
|
msgid "Subject"
|
||||||
|
msgstr "Aihe"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,opt_out:0
|
||||||
|
msgid "Opt-Out"
|
||||||
|
msgstr "Jätä pois"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "Priority"
|
||||||
|
msgstr "Tärkeys"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,state_id:0
|
||||||
|
msgid "State"
|
||||||
|
msgstr "Valtio"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,message_follower_ids:0
|
||||||
|
msgid "Followers"
|
||||||
|
msgstr "Seuraajat"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,partner_id:0
|
||||||
|
msgid "Linked partner (optional). Usually created when converting the lead."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,payment_mode:0
|
||||||
|
msgid "Payment Mode"
|
||||||
|
msgstr "Maksutapa"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "New"
|
||||||
|
msgstr "Uusi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,type:0
|
||||||
|
msgid "Type"
|
||||||
|
msgstr "Tyyppi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,email_from:0
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Sähköposti"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,channel_id:0
|
||||||
|
msgid "Channel"
|
||||||
|
msgstr "Kanava"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "Lowest"
|
||||||
|
msgstr "Alin"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,create_date:0
|
||||||
|
msgid "Creation Date"
|
||||||
|
msgstr "Luontipäivä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Close"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "Pending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,type:0
|
||||||
|
msgid "Type is used to separate Leads and Opportunities"
|
||||||
|
msgstr "Tyyppiä käytetään erottamaan liidit ja mahdollisuudet toisistaan"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,categ_ids:0
|
||||||
|
msgid "Categories"
|
||||||
|
msgstr "Kategoriat"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,stage_id:0
|
||||||
|
msgid "Stage"
|
||||||
|
msgstr "Vaihe"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,user_login:0
|
||||||
|
msgid "User Login"
|
||||||
|
msgstr "Käyttäjätunnus"
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,contact_name:0
|
||||||
|
msgid "Contact Name"
|
||||||
|
msgstr "Yhteystiedon nimi"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: model:ir.ui.menu,name:portal_crm.portal_company_contact
|
||||||
|
msgid "Contact"
|
||||||
|
msgstr "Kontakti"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_address_email:0
|
||||||
|
msgid "Partner Contact Email"
|
||||||
|
msgstr "Kumppanin yhteystieto, sähköposti"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,planned_revenue:0
|
||||||
|
msgid "Expected Revenue"
|
||||||
|
msgstr "Odotetut tulot"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,task_ids:0
|
||||||
|
msgid "Tasks"
|
||||||
|
msgstr "Tehtävät"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Contact form"
|
||||||
|
msgstr "Yhteydenottolomake"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,company_currency:0
|
||||||
|
msgid "Currency"
|
||||||
|
msgstr "Valuutta"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,write_date:0
|
||||||
|
msgid "Update Date"
|
||||||
|
msgstr "Päivityksen ajankohta"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_deadline:0
|
||||||
|
msgid "Expected Closing"
|
||||||
|
msgstr "Odotettu päätös"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,ref2:0
|
||||||
|
msgid "Reference 2"
|
||||||
|
msgstr "Viittaus 2"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,user_email:0
|
||||||
|
msgid "User Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_open:0
|
||||||
|
msgid "Opened"
|
||||||
|
msgstr "Avattu"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "In Progress"
|
||||||
|
msgstr "Kesken"
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,planned_cost:0
|
||||||
|
msgid "Planned Costs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "Low"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_closed:0
|
||||||
|
#: selection:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "Closed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_assign:0
|
||||||
|
msgid "Assignation Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,state:0
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "Normal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,email_cc:0
|
||||||
|
msgid "Global CC"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,street2:0
|
||||||
|
msgid "Street2"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,phone:0
|
||||||
|
msgid "Phone"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,message_is_follower:0
|
||||||
|
msgid "Is a Follower"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,active:0
|
||||||
|
msgid "Active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,user_id:0
|
||||||
|
msgid "Salesperson"
|
||||||
|
msgstr "Myyjä"
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,day_close:0
|
||||||
|
msgid "Days to Close"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,company_ids:0
|
||||||
|
msgid "Companies"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,message_summary:0
|
||||||
|
msgid "Summary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_address_name:0
|
||||||
|
msgid "Partner Contact Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_longitude:0
|
||||||
|
msgid "Geo Longitude"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,date_assign:0
|
||||||
|
msgid "Last date this case was forwarded/assigned to a partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,email_from:0
|
||||||
|
msgid "Email address of the contact"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,city:0
|
||||||
|
msgid "City"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,function:0
|
||||||
|
msgid "Function"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,referred:0
|
||||||
|
msgid "Referred By"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,partner_assigned_id:0
|
||||||
|
msgid "Assigned Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,type:0
|
||||||
|
msgid "Opportunity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,partner_assigned_id:0
|
||||||
|
msgid "Partner this case has been forwarded/assigned to."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,country_id:0
|
||||||
|
msgid "Country"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: view:portal_crm.crm_contact_us:0
|
||||||
|
msgid "Thank you"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: help:portal_crm.crm_contact_us,message_ids:0
|
||||||
|
msgid "Messages and communication history"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. 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 ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: selection:portal_crm.crm_contact_us,priority:0
|
||||||
|
msgid "High"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,section_id:0
|
||||||
|
msgid "Sales Team"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,street:0
|
||||||
|
msgid "Street"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: field:portal_crm.crm_contact_us,date_action_last:0
|
||||||
|
msgid "Last Action"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: portal_crm
|
||||||
|
#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
|
||||||
|
msgid "Contact form for the portal"
|
||||||
|
msgstr ""
|
|
@ -13,6 +13,7 @@
|
||||||
<field name="auto_delete" eval="True"/>
|
<field name="auto_delete" eval="True"/>
|
||||||
<field name="report_template" ref="sale.report_sale_order"/>
|
<field name="report_template" ref="sale.report_sale_order"/>
|
||||||
<field name="report_name">${(object.name or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
|
<field name="report_name">${(object.name or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
|
||||||
|
<field name="lang">${object.partner_id.lang}</field>
|
||||||
<field name="body_html"><![CDATA[
|
<field name="body_html"><![CDATA[
|
||||||
<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); ">
|
<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); ">
|
||||||
|
|
||||||
|
@ -102,6 +103,7 @@
|
||||||
<field name="auto_delete" eval="True"/>
|
<field name="auto_delete" eval="True"/>
|
||||||
<field name="report_template" ref="account.account_invoices"/>
|
<field name="report_template" ref="account.account_invoices"/>
|
||||||
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
|
<field name="report_name">Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
|
||||||
|
<field name="lang">${object.partner_id.lang}</field>
|
||||||
<field name="body_html"><![CDATA[
|
<field name="body_html"><![CDATA[
|
||||||
<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); ">
|
<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); ">
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -15,6 +15,7 @@ access_product_pricelist_item_user,product.pricelist.item.user,model_product_pri
|
||||||
access_product_pricelist_type_partner_manager,product.pricelist.type partner manager,model_product_pricelist_type,base.group_partner_manager,1,0,0,0
|
access_product_pricelist_type_partner_manager,product.pricelist.type partner manager,model_product_pricelist_type,base.group_partner_manager,1,0,0,0
|
||||||
access_product_pricelist_partner_manager,product.pricelist partner manager,model_product_pricelist,base.group_partner_manager,1,0,0,0
|
access_product_pricelist_partner_manager,product.pricelist partner manager,model_product_pricelist,base.group_partner_manager,1,0,0,0
|
||||||
access_product_product_employee,product.product employee,model_product_product,base.group_user,1,0,0,0
|
access_product_product_employee,product.product employee,model_product_product,base.group_user,1,0,0,0
|
||||||
|
access_prices_history_employee,prices.history employee,model_prices_history,base.group_user,1,0,0,0
|
||||||
access_product_template_sale_manager,product.template salemanager,model_product_template,base.group_sale_manager,1,1,1,1
|
access_product_template_sale_manager,product.template salemanager,model_product_template,base.group_sale_manager,1,1,1,1
|
||||||
access_product_product_sale_manager,product.product salemanager,model_product_product,base.group_sale_manager,1,1,1,1
|
access_product_product_sale_manager,product.product salemanager,model_product_product,base.group_sale_manager,1,1,1,1
|
||||||
access_product_category_sale_manager,product.category salemanager,product.model_product_category,base.group_sale_manager,1,1,1,1
|
access_product_category_sale_manager,product.category salemanager,product.model_product_category,base.group_sale_manager,1,1,1,1
|
||||||
|
|
|
|
@ -33,7 +33,7 @@ Product extension. This module adds:
|
||||||
""",
|
""",
|
||||||
"init_xml" : [],
|
"init_xml" : [],
|
||||||
"demo_xml" : [],
|
"demo_xml" : [],
|
||||||
"update_xml" : ["product_extended_wizard.xml","product_extended_view.xml","mrp_view.xml"],
|
"data" : ["product_extended_wizard.xml","product_extended_view.xml","mrp_view.xml", 'security/ir.model.access.csv'],
|
||||||
"active": False,
|
"active": False,
|
||||||
"installable": True
|
"installable": True
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<record id="mrp_bom_form_view_product_extended" model="ir.ui.view">
|
<record id="mrp_bom_form_view_product_extended" model="ir.ui.view">
|
||||||
<field name="name">mrp.bom.form.product_extended</field>
|
<field name="name">mrp.bom.form.product_extended</field>
|
||||||
<field name="model">mrp.bom</field>
|
<field name="model">mrp.bom</field>
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
|
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="product_id" position="after">
|
<field name="product_id" position="after">
|
||||||
|
@ -17,7 +16,6 @@
|
||||||
<record id="mrp_bom_tree_view_product_extended" model="ir.ui.view">
|
<record id="mrp_bom_tree_view_product_extended" model="ir.ui.view">
|
||||||
<field name="name">mrp.bom.tree.product_extended</field>
|
<field name="name">mrp.bom.tree.product_extended</field>
|
||||||
<field name="model">mrp.bom</field>
|
<field name="model">mrp.bom</field>
|
||||||
<field name="type">tree</field>
|
|
||||||
<field name="inherit_id" ref="mrp.mrp_bom_tree_view"/>
|
<field name="inherit_id" ref="mrp.mrp_bom_tree_view"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="product_uom" position="after">
|
<field name="product_uom" position="after">
|
||||||
|
|
|
@ -1,22 +1,9 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<openerp>
|
<openerp>
|
||||||
<data>
|
<data>
|
||||||
<!-- <record model="ir.ui.view" id="product_product_ext_form_view">
|
|
||||||
<field name="name">product_extended.product.form.view</field>
|
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="model">product.product</field>
|
|
||||||
<field name="priority">2</field>
|
|
||||||
<field name="inherit_id" ref="stock.view_product_standard_price_form" />
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="virtual_available" position="after">
|
|
||||||
<field name="qty_dispo" />
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record> -->
|
|
||||||
<record model="ir.ui.view" id="product_product_ext_form_view2">
|
<record model="ir.ui.view" id="product_product_ext_form_view2">
|
||||||
<field name="name">product_extended.product.form.view</field>
|
<field name="name">product_extended.product.form.view</field>
|
||||||
<field name="model">product.product</field>
|
<field name="model">product.product</field>
|
||||||
<field name="type">form</field>
|
|
||||||
<field name="priority">3</field>
|
<field name="priority">3</field>
|
||||||
<field name="inherit_id" ref="product.product_normal_form_view" />
|
<field name="inherit_id" ref="product.product_normal_form_view" />
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_wizard_price_all,wizard.price all,model_wizard_price,,1,1,1,1
|
||||||
|
|
|
|
@ -88,7 +88,7 @@ class procurement_order(osv.osv):
|
||||||
'project_id': project and project.id or False,
|
'project_id': project and project.id or False,
|
||||||
'company_id': procurement.company_id.id,
|
'company_id': procurement.company_id.id,
|
||||||
},context=context)
|
},context=context)
|
||||||
self.write(cr, uid, [procurement.id], {'task_id': task_id, 'message':_('Task created.')}, context=context)
|
self.write(cr, uid, [procurement.id], {'task_id': task_id}, context=context)
|
||||||
self.project_task_create_note(cr, uid, [procurement.id], context=context)
|
self.project_task_create_note(cr, uid, [procurement.id], context=context)
|
||||||
return task_id
|
return task_id
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@
|
||||||
<field name="name">Purchase Order - Send by Email</field>
|
<field name="name">Purchase Order - Send by Email</field>
|
||||||
<field name="email_from">${object.validator.email or ''}</field>
|
<field name="email_from">${object.validator.email or ''}</field>
|
||||||
<field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field>
|
<field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field>
|
||||||
<field name="email_recipients">${object.partner_id.id}</field>
|
<field name="partner_to">${object.partner_id.id}</field>
|
||||||
<field name="model_id" ref="purchase.model_purchase_order"/>
|
<field name="model_id" ref="purchase.model_purchase_order"/>
|
||||||
<field name="auto_delete" eval="True"/>
|
<field name="auto_delete" eval="True"/>
|
||||||
<field name="report_template" ref="report_purchase_order"/>
|
<field name="report_template" ref="report_purchase_order"/>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -606,7 +606,7 @@ class purchase_order(osv.osv):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def invoice_done(self, cr, uid, ids, context=None):
|
def invoice_done(self, cr, uid, ids, context=None):
|
||||||
self.write(cr, uid, ids, {'state':'approved'}, context=context)
|
self.write(cr, uid, ids, {'state': 'approved'}, context=context)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def has_stockable_product(self, cr, uid, ids, *args):
|
def has_stockable_product(self, cr, uid, ids, *args):
|
||||||
|
@ -617,26 +617,26 @@ class purchase_order(osv.osv):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def wkf_action_cancel(self, cr, uid, ids, context=None):
|
def wkf_action_cancel(self, cr, uid, ids, context=None):
|
||||||
self.write(cr,uid,ids,{'state':'cancel'})
|
self.write(cr, uid, ids, {'state': 'cancel'})
|
||||||
self.set_order_line_status(cr, uid, ids, 'cancel', context=context)
|
self.set_order_line_status(cr, uid, ids, 'cancel', context=context)
|
||||||
|
|
||||||
def action_cancel(self, cr, uid, ids, context=None):
|
def action_cancel(self, cr, uid, ids, context=None):
|
||||||
for purchase in self.browse(cr, uid, ids, context=context):
|
for purchase in self.browse(cr, uid, ids, context=context):
|
||||||
for pick in purchase.picking_ids:
|
for pick in purchase.picking_ids:
|
||||||
if pick.state not in ('draft','cancel'):
|
if pick.state not in ('draft', 'cancel'):
|
||||||
raise osv.except_osv(
|
raise osv.except_osv(
|
||||||
_('Unable to cancel this purchase order.'),
|
_('Unable to cancel the purchase order %s.') % (purchase.name),
|
||||||
_('First cancel all receptions related to this purchase order.'))
|
_('First cancel all receptions related to this purchase order.'))
|
||||||
self.pool.get('stock.picking') \
|
self.pool.get('stock.picking') \
|
||||||
.signal_button_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids))
|
.signal_button_cancel(cr, uid, map(attrgetter('id'), purchase.picking_ids))
|
||||||
for inv in purchase.invoice_ids:
|
for inv in purchase.invoice_ids:
|
||||||
if inv and inv.state not in ('cancel','draft'):
|
if inv and inv.state not in ('cancel', 'draft'):
|
||||||
raise osv.except_osv(
|
raise osv.except_osv(
|
||||||
_('Unable to cancel this purchase order.'),
|
_('Unable to cancel this purchase order.'),
|
||||||
_('You must first cancel all receptions related to this purchase order.'))
|
_('You must first cancel all receptions related to this purchase order.'))
|
||||||
self.pool.get('account.invoice') \
|
self.pool.get('account.invoice') \
|
||||||
.signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids))
|
.signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids))
|
||||||
self.write(cr,uid,ids,{'state':'cancel'})
|
self.write(cr, uid, ids, {'state': 'cancel'})
|
||||||
self.set_order_line_status(cr, uid, ids, 'cancel', context=context)
|
self.set_order_line_status(cr, uid, ids, 'cancel', context=context)
|
||||||
self.signal_purchase_cancel(cr, uid, ids)
|
self.signal_purchase_cancel(cr, uid, ids)
|
||||||
return True
|
return True
|
||||||
|
@ -672,7 +672,6 @@ class purchase_order(osv.osv):
|
||||||
if order.currency_id.id != order.company_id.currency_id.id:
|
if order.currency_id.id != order.company_id.currency_id.id:
|
||||||
#we don't round the price_unit, as we may want to store the standard price with more digits than allowed by the currency
|
#we don't round the price_unit, as we may want to store the standard price with more digits than allowed by the currency
|
||||||
price_unit = self.pool.get('res.currency').compute(cr, uid, order.currency_id.id, order.company_id.currency_id.id, price_unit, round=False, context=context)
|
price_unit = self.pool.get('res.currency').compute(cr, uid, order.currency_id.id, order.company_id.currency_id.id, price_unit, round=False, context=context)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'name': order_line.name or '',
|
'name': order_line.name or '',
|
||||||
'product_id': order_line.product_id.id,
|
'product_id': order_line.product_id.id,
|
||||||
|
@ -693,6 +692,7 @@ class purchase_order(osv.osv):
|
||||||
'price_unit': price_unit,
|
'price_unit': price_unit,
|
||||||
'picking_type_id': order.picking_type_id.id,
|
'picking_type_id': order.picking_type_id.id,
|
||||||
'group_id': group_id,
|
'group_id': group_id,
|
||||||
|
'procurement_id': order_line.procurement_ids and order_line.procurement_ids[0].id or False,
|
||||||
'route_ids': order.picking_type_id.warehouse_id and [(6, 0, [x.id for x in order.picking_type_id.warehouse_id.route_ids])] or [],
|
'route_ids': order.picking_type_id.warehouse_id and [(6, 0, [x.id for x in order.picking_type_id.warehouse_id.route_ids])] or [],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -906,6 +906,14 @@ class purchase_order_line(osv.osv):
|
||||||
res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
|
res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def _get_uom_id(self, cr, uid, context=None):
|
||||||
|
try:
|
||||||
|
proxy = self.pool.get('ir.model.data')
|
||||||
|
result = proxy.get_object_reference(cr, uid, 'product', 'product_uom_unit')
|
||||||
|
return result[1]
|
||||||
|
except Exception, ex:
|
||||||
|
return False
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.text('Description', required=True),
|
'name': fields.text('Description', required=True),
|
||||||
'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
|
'product_qty': fields.float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
|
||||||
|
@ -933,6 +941,7 @@ class purchase_order_line(osv.osv):
|
||||||
'group_id': fields.related('procurement_ids', 'group_id', type='many2one', relation='procurement.group', string='Procurement Group'),
|
'group_id': fields.related('procurement_ids', 'group_id', type='many2one', relation='procurement.group', string='Procurement Group'),
|
||||||
}
|
}
|
||||||
_defaults = {
|
_defaults = {
|
||||||
|
'product_uom' : _get_uom_id,
|
||||||
'product_qty': lambda *a: 1.0,
|
'product_qty': lambda *a: 1.0,
|
||||||
'state': lambda *args: 'draft',
|
'state': lambda *args: 'draft',
|
||||||
'invoiced': lambda *a: 0,
|
'invoiced': lambda *a: 0,
|
||||||
|
@ -953,8 +962,11 @@ class purchase_order_line(osv.osv):
|
||||||
"""
|
"""
|
||||||
onchange handler of product_uom.
|
onchange handler of product_uom.
|
||||||
"""
|
"""
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
if not uom_id:
|
if not uom_id:
|
||||||
return {'value': {'price_unit': price_unit or 0.0, 'name': name or '', 'product_uom' : uom_id or False}}
|
return {'value': {'price_unit': price_unit or 0.0, 'name': name or '', 'product_uom' : uom_id or False}}
|
||||||
|
context = dict(context, purchase_uom_check=True)
|
||||||
return self.onchange_product_id(cr, uid, ids, pricelist_id, product_id, qty, uom_id,
|
return self.onchange_product_id(cr, uid, ids, pricelist_id, product_id, qty, uom_id,
|
||||||
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
|
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
|
||||||
name=name, price_unit=price_unit, state=state, context=context)
|
name=name, price_unit=price_unit, state=state, context=context)
|
||||||
|
@ -1034,7 +1046,7 @@ class purchase_order_line(osv.osv):
|
||||||
uom_id = product_uom_po_id
|
uom_id = product_uom_po_id
|
||||||
|
|
||||||
if product.uom_id.category_id.id != product_uom.browse(cr, uid, uom_id, context=context).category_id.id:
|
if product.uom_id.category_id.id != product_uom.browse(cr, uid, uom_id, context=context).category_id.id:
|
||||||
if self._check_product_uom_group(cr, uid, context=context):
|
if context.get('purchase_uom_check') and self._check_product_uom_group(cr, uid, context=context):
|
||||||
res['warning'] = {'title': _('Warning!'), 'message': _('Selected Unit of Measure does not belong to the same category as the product Unit of Measure.')}
|
res['warning'] = {'title': _('Warning!'), 'message': _('Selected Unit of Measure does not belong to the same category as the product Unit of Measure.')}
|
||||||
uom_id = product_uom_po_id
|
uom_id = product_uom_po_id
|
||||||
|
|
||||||
|
@ -1358,8 +1370,8 @@ class account_invoice(osv.Model):
|
||||||
else:
|
else:
|
||||||
user_id = uid
|
user_id = uid
|
||||||
po_ids = purchase_order_obj.search(cr, user_id, [('invoice_ids', 'in', ids)], context=context)
|
po_ids = purchase_order_obj.search(cr, user_id, [('invoice_ids', 'in', ids)], context=context)
|
||||||
if po_ids:
|
for po_id in po_ids:
|
||||||
purchase_order_obj.message_post(cr, user_id, po_ids, body=_("Invoice paid"), context=context)
|
purchase_order_obj.message_post(cr, user_id, po_id, body=_("Invoice paid"), context=context)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
class account_invoice_line(osv.Model):
|
class account_invoice_line(osv.Model):
|
||||||
|
|
|
@ -173,7 +173,7 @@
|
||||||
<button name="invoice_ok" states="except_invoice" string="Manually Corrected"/>
|
<button name="invoice_ok" states="except_invoice" string="Manually Corrected"/>
|
||||||
<button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_highlight" groups="purchase.group_purchase_manager"/>
|
<button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_highlight" groups="purchase.group_purchase_manager"/>
|
||||||
<button name="wkf_send_rfq" states="approved" string="Send PO by Email" type="object" context="{'send_rfq':False}"/>
|
<button name="wkf_send_rfq" states="approved" string="Send PO by Email" type="object" context="{'send_rfq':False}"/>
|
||||||
<button name="view_picking" string="Receptions" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}" class="oe_highlight"/>
|
<button name="view_picking" string="Receive Products" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}" class="oe_highlight"/>
|
||||||
<button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
|
<button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/>
|
||||||
<button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object" />
|
<button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object" />
|
||||||
<button name="purchase_cancel" states="draft,confirmed,sent,bid" string="Cancel"/>
|
<button name="purchase_cancel" states="draft,confirmed,sent,bid" string="Cancel"/>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
<field name="date_order"/>
|
<field name="date_order"/>
|
||||||
<field name="origin" attr="{'invisible': [('origin','=',False)]}"/>
|
<field name="origin" attr="{'invisible': [('origin','=',False)]}"/>
|
||||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||||
<field name="picking_type_id" on_change="onchange_picking_type_id(picking_type_id, context)" domain="[('code','=','incoming')]" widget="selection" context="{'special_shortened_wh_name': True}"/>
|
<field name="picking_type_id" on_change="onchange_picking_type_id(picking_type_id, context)" domain="[('code','=','incoming')]" widget="selection" context="{'special_shortened_wh_name': True}" groups="stock.group_locations"/>
|
||||||
<field name="related_location_id" invisible="1"/>
|
<field name="related_location_id" invisible="1"/>
|
||||||
<field name="dest_address_id" string="Customer Address" on_change="onchange_dest_address_id(dest_address_id)"
|
<field name="dest_address_id" string="Customer Address" on_change="onchange_dest_address_id(dest_address_id)"
|
||||||
attrs="{'invisible':['|', ('picking_type_id','=',False), ('related_location_id','!=', False)],
|
attrs="{'invisible':['|', ('picking_type_id','=',False), ('related_location_id','!=', False)],
|
||||||
|
@ -418,7 +418,7 @@
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Notes">
|
<page string="Notes">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
</page><page string="Invoices and Receptions">
|
</page><page string="Invoices and Incoming Shipments">
|
||||||
<field name="invoice_lines"/>
|
<field name="invoice_lines"/>
|
||||||
<field name="move_ids"/>
|
<field name="move_ids"/>
|
||||||
</page>
|
</page>
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Spanish (Peru) 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-12-10 17:49+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: purchase_analytic_plans
|
||||||
|
#: field:purchase.order.line,analytics_id:0
|
||||||
|
msgid "Analytic Distribution"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_analytic_plans
|
||||||
|
#: model:ir.model,name:purchase_analytic_plans.model_purchase_order_line
|
||||||
|
msgid "Purchase Order Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_analytic_plans
|
||||||
|
#: model:ir.model,name:purchase_analytic_plans.model_purchase_order
|
||||||
|
msgid "Purchase Order"
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,49 @@
|
||||||
|
# Spanish (Peru) 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-12-10 18:09+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: model:ir.model,name:purchase_double_validation.model_purchase_config_settings
|
||||||
|
msgid "purchase.config.settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: view:purchase.order:0
|
||||||
|
msgid "Purchase orders which are not approved yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: field:purchase.config.settings,limit_amount:0
|
||||||
|
msgid "limit to require a second approval"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: view:board.board:0
|
||||||
|
#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting
|
||||||
|
msgid "Purchase Orders Waiting Approval"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: view:purchase.order:0
|
||||||
|
msgid "To Approve"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: purchase_double_validation
|
||||||
|
#: help:purchase.config.settings,limit_amount:0
|
||||||
|
msgid "Amount after which validation of purchase is required."
|
||||||
|
msgstr ""
|
|
@ -15,7 +15,6 @@
|
||||||
<record id="requisition1" model="purchase.requisition">
|
<record id="requisition1" model="purchase.requisition">
|
||||||
<field name="user_id" ref="base.user_root"/>
|
<field name="user_id" ref="base.user_root"/>
|
||||||
<field name="exclusive">exclusive</field>
|
<field name="exclusive">exclusive</field>
|
||||||
<field name="date_start" eval="time.strftime('%Y/%m/%d %H:%M:%S')"/>
|
|
||||||
<field name="warehouse_id" ref="stock.stock_warehouse_shop0"/>
|
<field name="warehouse_id" ref="stock.stock_warehouse_shop0"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||||
"PO-Revision-Date: 2013-11-19 12:50+0000\n"
|
"PO-Revision-Date: 2013-12-09 15:46+0000\n"
|
||||||
"Last-Translator: krnkris <Unknown>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-11-20 05:24+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16831)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:res.groups,name:sale.group_analytic_accounting
|
#: model:res.groups,name:sale.group_analytic_accounting
|
||||||
|
@ -116,7 +116,7 @@ msgstr "Beszerzési módszer"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,date_confirm:0
|
#: help:sale.order,date_confirm:0
|
||||||
msgid "Date on which sales order is confirmed."
|
msgid "Date on which sales order is confirmed."
|
||||||
msgstr "Az értékesítési megbízás megerősítésének dátuma."
|
msgstr "A vevői megrendelés megerősítésének dátuma."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:account.config.settings,module_sale_analytic_plans:0
|
#: field:account.config.settings,module_sale_analytic_plans:0
|
||||||
|
@ -132,7 +132,8 @@ msgstr "Március"
|
||||||
#: code:addons/sale/sale.py:565
|
#: code:addons/sale/sale.py:565
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "First cancel all invoices attached to this sales order."
|
msgid "First cancel all invoices attached to this sales order."
|
||||||
msgstr "Először vonja vissza a megrendelés összes számla mellékletét."
|
msgstr ""
|
||||||
|
"Először vonja vissza a vevői megrendeléshez kötött összes számla mellékletet."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -254,12 +255,13 @@ msgstr "Az előleg mennyiség értékének pozitívnak kell lennie"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.config.settings,group_discount_per_so_line:0
|
#: help:sale.config.settings,group_discount_per_so_line:0
|
||||||
msgid "Allows you to apply some discount per sales order line."
|
msgid "Allows you to apply some discount per sales order line."
|
||||||
msgstr "Lehetővé teszi a megrendelés soraihoz árengedmény alkalmazását"
|
msgstr ""
|
||||||
|
"Lehetővé teszi a megrendelés egyes soraihoz árengedmény alkalmazását."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Sales Order Lines that are in 'done' state"
|
msgid "Sales Order Lines that are in 'done' state"
|
||||||
msgstr "'Elvégzett' állapotú megrendelési sorok"
|
msgstr "'Elvégzett' állapotú vevői megrendelési sorok"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: selection:sale.order.line,type:0
|
#: selection:sale.order.line,type:0
|
||||||
|
@ -349,7 +351,8 @@ msgstr "Érvénytelenített"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Sales Order Lines related to a Sales Order of mine"
|
msgid "Sales Order Lines related to a Sales Order of mine"
|
||||||
msgstr "Megrendelés sorok melyek összefüggenk az én megrendeléseimmel"
|
msgstr ""
|
||||||
|
"Megrendelés sorok melyek összefüggenek az én vásárlói megrendeléseimmel"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: selection:sale.order,state:0
|
#: selection:sale.order,state:0
|
||||||
|
@ -398,7 +401,7 @@ msgstr "Számlázási cím"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,create_date:0
|
#: help:sale.order,create_date:0
|
||||||
msgid "Date on which sales order is created."
|
msgid "Date on which sales order is created."
|
||||||
msgstr "Az értékesítési megbízás létrehozásának dátuma."
|
msgstr "Vásárlói megrendelés létrehozásának dátuma."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
@ -451,7 +454,7 @@ msgid ""
|
||||||
"The 'Waiting Schedule' status is set when the invoice is confirmed "
|
"The 'Waiting Schedule' status is set when the invoice is confirmed "
|
||||||
" but waiting for the scheduler to run on the order date."
|
" but waiting for the scheduler to run on the order date."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Az árajánlatkérés vagy a megrendelés állapotát adja. \n"
|
"Az árajánlatkérés vagy a vásárlói megrendelés állapotát adja. \n"
|
||||||
"A kizárás állapot automatikusan beállított egy visszavonás művelet "
|
"A kizárás állapot automatikusan beállított egy visszavonás művelet "
|
||||||
"elvégzésekkor egy számla érvényesítésekor (Számla kizárás) "
|
"elvégzésekkor egy számla érvényesítésekor (Számla kizárás) "
|
||||||
"vagy a kiválogatási lista műveletekben (Szállítási kizárás).\n"
|
"vagy a kiválogatási lista műveletekben (Szállítási kizárás).\n"
|
||||||
|
@ -482,7 +485,8 @@ msgstr ""
|
||||||
#: help:sale.order.line,sequence:0
|
#: help:sale.order.line,sequence:0
|
||||||
msgid "Gives the sequence order when displaying a list of sales order lines."
|
msgid "Gives the sequence order when displaying a list of sales order lines."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A megrendelés sorrendet adja ha a megrendelési sorok listáját jelzi ki."
|
"A vásárlói megrendelés sorrendet adja ha a megrendelési sorok listáját jelzi "
|
||||||
|
"ki."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.report:0
|
#: view:sale.report:0
|
||||||
|
@ -501,8 +505,8 @@ msgstr "Fax:"
|
||||||
msgid ""
|
msgid ""
|
||||||
"In order to delete a confirmed sales order, you must cancel it before !"
|
"In order to delete a confirmed sales order, you must cancel it before !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ahhoz, hogy törölni tudjon egy megerősített megrendelést, először vissza "
|
"Ahhoz, hogy törölni tudjon egy megerősített vsárlói megrendelést, először "
|
||||||
"kell vonnia azt !"
|
"vissza kell vonnia azt !"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -538,7 +542,7 @@ msgstr "Vevői megrendelés"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:res.groups,name:sale.group_invoice_so_lines
|
#: model:res.groups,name:sale.group_invoice_so_lines
|
||||||
msgid "Enable Invoicing Sales order lines"
|
msgid "Enable Invoicing Sales order lines"
|
||||||
msgstr "Megrendelés sorai számlázásának engedélyezése"
|
msgstr "Vásárlói megrendelés sorai számlázásának engedélyezése"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:ir.model,name:sale.model_sale_order_line
|
#: model:ir.model,name:sale.model_sale_order_line
|
||||||
|
@ -573,7 +577,7 @@ msgstr "Egy alkalmazottnak különböző funkciója lehet egy szerződésen bel
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: selection:sale.advance.payment.inv,advance_payment_method:0
|
#: selection:sale.advance.payment.inv,advance_payment_method:0
|
||||||
msgid "Invoice the whole sales order"
|
msgid "Invoice the whole sales order"
|
||||||
msgstr "Számlázza ki a teljes megrendelést"
|
msgstr "Számlázza ki a teljes vásárlói megrendelést"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.shop,payment_default_id:0
|
#: field:sale.shop,payment_default_id:0
|
||||||
|
@ -624,7 +628,7 @@ msgstr "Különböző mértékegységek használatának engedélyezése"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:mail.message.subtype,name:sale.mt_order_confirmed
|
#: model:mail.message.subtype,name:sale.mt_order_confirmed
|
||||||
msgid "Sales Order Confirmed"
|
msgid "Sales Order Confirmed"
|
||||||
msgstr "Megrendelés visszaigazolva"
|
msgstr "Vásárlói megrendelés visszaigazolva"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -675,7 +679,7 @@ msgstr "Összérték"
|
||||||
msgid "Allows you to specify an analytic account on sales orders."
|
msgid "Allows you to specify an analytic account on sales orders."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lehetővé teszi az analitikus/elemző könyvelés gyűjtőkód meghatározását a "
|
"Lehetővé teszi az analitikus/elemző könyvelés gyűjtőkód meghatározását a "
|
||||||
"megrendeléseken."
|
"vevői megrendeléseken."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.config.settings,module_sale_journal:0
|
#: help:sale.config.settings,module_sale_journal:0
|
||||||
|
@ -743,7 +747,7 @@ msgstr "Számlázandó"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,partner_invoice_id:0
|
#: help:sale.order,partner_invoice_id:0
|
||||||
msgid "Invoice address for current sales order."
|
msgid "Invoice address for current sales order."
|
||||||
msgstr "Az aktuális megrendelés számlázási címe."
|
msgstr "Az aktuális vevői megrendelés számlázási címe."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: selection:sale.order,invoice_quantity:0
|
#: selection:sale.order,invoice_quantity:0
|
||||||
|
@ -887,7 +891,7 @@ msgstr "Megrendelés dátuma"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
msgid "Sales Order done"
|
msgid "Sales Order done"
|
||||||
msgstr "Megrendelés elvégezve"
|
msgstr "Vevői megrendelés elvégezve"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: code:addons/sale/sale.py:364
|
#: code:addons/sale/sale.py:364
|
||||||
|
@ -928,7 +932,7 @@ msgstr "Számla létrehozása és megtekintése"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Sales order lines done"
|
msgid "Sales order lines done"
|
||||||
msgstr "Megrendelési tételek elvégezve"
|
msgstr "Vevői megrendelési tételek elvégezve"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.make.invoice,grouped:0
|
#: field:sale.make.invoice,grouped:0
|
||||||
|
@ -965,11 +969,10 @@ msgid ""
|
||||||
"1.The state of this sales order line is either \"draft\" or \"cancel\"!\n"
|
"1.The state of this sales order line is either \"draft\" or \"cancel\"!\n"
|
||||||
"2.The Sales Order Line is Invoiced!"
|
"2.The Sales Order Line is Invoiced!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nem készíthet számlát ehhez az értékesítési megbízási tételhez, az alábbi "
|
"Nem készíthet számlát ehhez a vásárlói megrendelés tételhez, az alábbi okok "
|
||||||
"okok egyike miatt:\n"
|
"egyike miatt:\n"
|
||||||
"1. Az értékesítési megbízás tételének állapota: \"Tervezet\" vagy "
|
"1. A vevői megrendelés tételének állapota: \"Tervezet\" vagy \"Mégsem\".\n"
|
||||||
"\"Mégsem\".\n"
|
"2. A vevői megrendelési tétel már kiszámlázásra került."
|
||||||
"2. Az értékesítési megbízás tétel már kiszámlázásra került."
|
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line.make.invoice:0
|
#: view:sale.order.line.make.invoice:0
|
||||||
|
@ -1048,7 +1051,7 @@ msgstr "Üzlet neve"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
msgid "My Sales Orders"
|
msgid "My Sales Orders"
|
||||||
msgstr "Az én megrendeléseim"
|
msgstr "Az én vevői megrendeléseim"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: report:sale.order:0
|
#: report:sale.order:0
|
||||||
|
@ -1085,7 +1088,7 @@ msgstr "Értékesítési menü megnyitása"
|
||||||
#: code:addons/sale/sale.py:598
|
#: code:addons/sale/sale.py:598
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You cannot confirm a sales order which has no line."
|
msgid "You cannot confirm a sales order which has no line."
|
||||||
msgstr "Nem tud megerősíteni tétel nélküli értékesítési megbízást"
|
msgstr "Nem tud megerősíteni tétel nélküli vevői megrendelést"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: selection:sale.report,state:0
|
#: selection:sale.report,state:0
|
||||||
|
@ -1215,7 +1218,7 @@ msgstr ""
|
||||||
"<p class=\"oe_view_nocontent_create\">\n"
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
" Kattintson új értékesítési hely meghatározáshoz.\n"
|
" Kattintson új értékesítési hely meghatározáshoz.\n"
|
||||||
" </p><p>\n"
|
" </p><p>\n"
|
||||||
" Mindegyik árajánlatot vagy értékesítési megbízást össze kell "
|
" Mindegyik árajánlatot vagy vevői megrendelést össze kell "
|
||||||
"kötni egy értékesítési helyhez. Az\n"
|
"kötni egy értékesítési helyhez. Az\n"
|
||||||
" értékesítési hely meghatároz egy raktárhelyet ahonnan a "
|
" értékesítési hely meghatároz egy raktárhelyet ahonnan a "
|
||||||
"termék\n"
|
"termék\n"
|
||||||
|
@ -1247,13 +1250,13 @@ msgid ""
|
||||||
"Sales Order Lines that are confirmed, done or in exception state and haven't "
|
"Sales Order Lines that are confirmed, done or in exception state and haven't "
|
||||||
"yet been invoiced"
|
"yet been invoiced"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Értékesítési megbízási tételek, melyek megerősítettek, elvégzettek vagy "
|
"Vásárlói megrendelési tételek, melyek megerősítettek, elvégzettek vagy "
|
||||||
"kifogásolt állapotúak és még nincs számlázva"
|
"kifogásolt állapotúak és még nincs számlázva"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:ir.model,name:sale.model_sale_report
|
#: model:ir.model,name:sale.model_sale_report
|
||||||
msgid "Sales Orders Statistics"
|
msgid "Sales Orders Statistics"
|
||||||
msgstr "Értékesítési megbízási statisztikák"
|
msgstr "Vevői megrendelési statisztikák"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.order,date_order:0
|
#: field:sale.order,date_order:0
|
||||||
|
@ -1310,10 +1313,10 @@ msgid ""
|
||||||
"is 'Shipping and Manual in Progress'. The invoice is created automatically "
|
"is 'Shipping and Manual in Progress'. The invoice is created automatically "
|
||||||
"if the shipping policy is 'Payment before Delivery'."
|
"if the shipping policy is 'Payment before Delivery'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Az értékesítő manuálisan létrehoz egy számlát, hogy ha az értékesítési "
|
"Az értékesítő kézzel hoz létre egy számlát, hogy ha a vevői megrendelés "
|
||||||
"megbízás szállítási szabálya: \"Szállítás és manuális vezérléssel "
|
"szállítási szabálya: \"Szállítás és manuális vezérléssel folyamatban\". A "
|
||||||
"folyamatban\". A számla automatikusan létrejön , ha a szállítási szabály: "
|
"számla automatikusan létrejön , ha a szállítási szabály: \"Fizetés "
|
||||||
"\"Fizetés kiszállítás előtt\"."
|
"kiszállítás előtt\"."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:ir.model,name:sale.model_sale_shop
|
#: model:ir.model,name:sale.model_sale_shop
|
||||||
|
@ -1351,12 +1354,12 @@ msgstr "Január"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.config.settings,group_discount_per_so_line:0
|
#: field:sale.config.settings,group_discount_per_so_line:0
|
||||||
msgid "Allow setting a discount on the sales order lines"
|
msgid "Allow setting a discount on the sales order lines"
|
||||||
msgstr "Engedélyezi a megrendelés tételeire az árengedmény beállítását"
|
msgstr "Engedélyezi a vevői megrendelés tételeire az árengedmény beállítását"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:ir.actions.act_window,name:sale.action_orders_in_progress
|
#: model:ir.actions.act_window,name:sale.action_orders_in_progress
|
||||||
msgid "Sales Order in Progress"
|
msgid "Sales Order in Progress"
|
||||||
msgstr "Értékesítési megbízás folyamatban"
|
msgstr "Folyamatban lévő vevői megrendelés"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line.make.invoice:0
|
#: view:sale.order.line.make.invoice:0
|
||||||
|
@ -1366,9 +1369,9 @@ msgid ""
|
||||||
" or a fixed price (for advances) directly from the sales "
|
" or a fixed price (for advances) directly from the sales "
|
||||||
"order form if you prefer."
|
"order form if you prefer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ezen a megrendelésen minden tétel sor számlázva lesz. Lehetősége van a "
|
"Ezen a vásárlói megrendelésen minden tétel sor számlázva lesz. Lehetősége "
|
||||||
"megrendelés egy bizonyos százalékának számlázására\n"
|
"van a megrendelés egy bizonyos százalékának számlázására\n"
|
||||||
" vagy fix ár (az előlegekre), ah kívánja direkt a "
|
" vagy fix ár (az előlegekre), ha kívánja direkt a "
|
||||||
"megrendelés űrlapról."
|
"megrendelés űrlapról."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
|
@ -1394,7 +1397,7 @@ msgstr "Paypal Url"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,project_id:0
|
#: help:sale.order,project_id:0
|
||||||
msgid "The analytic account related to a sales order."
|
msgid "The analytic account related to a sales order."
|
||||||
msgstr "Az értékesítési megbízáshoz kapcsolódó analitikus/elemző számla."
|
msgstr "A vevői megrendeléshez kapcsolódó analitikus/elemző számla."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -1435,7 +1438,7 @@ msgstr ""
|
||||||
#: help:sale.order,origin:0
|
#: help:sale.order,origin:0
|
||||||
msgid "Reference of the document that generated this sales order request."
|
msgid "Reference of the document that generated this sales order request."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A dokumentum hivatkozása, amely létrehozta ezt az értékesítési megbízási "
|
"A dokumentum hivatkozása, amely létrehozta ezt a vásárlói megrendelési "
|
||||||
"igényt."
|
"igényt."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
|
@ -1478,7 +1481,7 @@ msgstr "Hiba figyelmen kívül hagyása"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,partner_shipping_id:0
|
#: help:sale.order,partner_shipping_id:0
|
||||||
msgid "Delivery address for current sales order."
|
msgid "Delivery address for current sales order."
|
||||||
msgstr "Szállítási cím a jelenlegi megrendeléshez."
|
msgstr "Szállítási cím a jelenlegi vásárlói megrendeléshez."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.config.settings,module_sale_margin:0
|
#: field:sale.config.settings,module_sale_margin:0
|
||||||
|
@ -1492,9 +1495,9 @@ msgid ""
|
||||||
"The same sales order may have been invoiced in several times (by line for "
|
"The same sales order may have been invoiced in several times (by line for "
|
||||||
"example)."
|
"example)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ez egy olyan számlalista, amely ehhez az értékesítési megbízáshoz jött "
|
"Ez egy olyan számlalista, amely ehhez a vevői megrendeléshez jött létre. "
|
||||||
"létre. Ugyanaz az értékesítési megbízás több alkalommal is számlázásra "
|
"Ugyanaz a vevői megrendelés több alkalommal is számlázásra kerülhetett "
|
||||||
"kerülhetett (például tételek alapján)."
|
"(például tételek alapján)."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: report:sale.order:0
|
#: report:sale.order:0
|
||||||
|
@ -1606,7 +1609,7 @@ msgstr "Számla"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "My Sales Order Lines"
|
msgid "My Sales Order Lines"
|
||||||
msgstr "Az én értékesítési megbízásam tételei"
|
msgstr "Az én vevői megrendekléseim tételei"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:process.transition.action,name:sale.process_transition_action_cancel0
|
#: model:process.transition.action,name:sale.process_transition_action_cancel0
|
||||||
|
@ -1630,7 +1633,7 @@ msgstr "Nincs árlista ! : "
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
msgid "Sales Order "
|
msgid "Sales Order "
|
||||||
msgstr "Megrendelés "
|
msgstr "Vásárlói megrendelés "
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:mail.message.subtype,description:sale.mt_order_sent
|
#: model:mail.message.subtype,description:sale.mt_order_sent
|
||||||
|
@ -1668,8 +1671,8 @@ msgid ""
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<p>\n"
|
"<p>\n"
|
||||||
" Ez itt a lista a már kiszámlázott megrendelési tételekről. "
|
" Ez itt a lista a már kiszámlázott vevői megrendelési "
|
||||||
"Tud\n"
|
"tételekről. Tud\n"
|
||||||
" számlázni megrendelési részt, a megrendelés tételeivel. "
|
" számlázni megrendelési részt, a megrendelés tételeivel. "
|
||||||
"Nincs\n"
|
"Nincs\n"
|
||||||
" szüksége erre a listára, ha kiszállítási Kiszolgáltatási "
|
" szüksége erre a listára, ha kiszállítási Kiszolgáltatási "
|
||||||
|
@ -1695,7 +1698,7 @@ msgstr "Nem csoportosíthat különböző devizákon értékesítést egy partne
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.advance.payment.inv:0
|
#: view:sale.advance.payment.inv:0
|
||||||
msgid "Invoice Sales Order"
|
msgid "Invoice Sales Order"
|
||||||
msgstr "Megrendelés számlázás"
|
msgstr "Vevői megrendelés számlázás"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,invoice_quantity:0
|
#: help:sale.order,invoice_quantity:0
|
||||||
|
@ -1705,8 +1708,8 @@ msgid ""
|
||||||
"if you want your invoice based on ordered "
|
"if you want your invoice based on ordered "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A megrendelés automatikusan létre lesz hozva a díjbekérő / előleg (Számla "
|
"A megrendelés automatikusan létre lesz hozva a díjbekérő / előleg (Számla "
|
||||||
"terv) alapján. Választhatja, ha "
|
"terv) alapján. Ki kell "
|
||||||
"akarja a számlázást a megrendelés alapján "
|
"választania, ha a számlázást a megrendelés alapján kívánja "
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.config.settings,module_account_analytic_analysis:0
|
#: field:sale.config.settings,module_account_analytic_analysis:0
|
||||||
|
@ -1998,12 +2001,12 @@ msgid ""
|
||||||
"Before delivery: A draft invoice is created from the sales order and must be "
|
"Before delivery: A draft invoice is created from the sales order and must be "
|
||||||
"paid before the products can be delivered."
|
"paid before the products can be delivered."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Igényléskori: Egy terv/előleg számla hozható létre a megrendelésből, ha "
|
"Igényléskori: Egy terv/előleg számla hozható létre a vevői megrendelésből, "
|
||||||
"szükséges. \n"
|
"ha szükséges. \n"
|
||||||
"A kézbesítési bizonylatkor: Egy terv/előleg számla hozható létre a "
|
"A kézbesítési bizonylatkor: Egy terv/előleg számla hozható létre a "
|
||||||
"kézbesítési bizonylatra ha az árut szállításba adták. \n"
|
"kézbesítési bizonylatra, ha az árut szállításba adták. \n"
|
||||||
"Szállítás előtt: Egy terv/előleg számla hozható létre a megrendelésből és ki "
|
"Szállítás előtt: Egy terv/előleg számla hozható létre a vevői megrendelésből "
|
||||||
"kell egyenlíteni mielőtt az árut kiszállítanák."
|
"és ki kell egyenlíteni mielőtt az árut kiszállítanák."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:ir.actions.act_window,help:sale.action_order_report_all
|
#: model:ir.actions.act_window,help:sale.action_order_report_all
|
||||||
|
@ -2014,8 +2017,8 @@ msgid ""
|
||||||
"having invoiced yet. If you want to analyse your turnover, you should use "
|
"having invoiced yet. If you want to analyse your turnover, you should use "
|
||||||
"the Invoice Analysis report in the Accounting application."
|
"the Invoice Analysis report in the Accounting application."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ez a jelentés elemzést készít az árajánlatairól és az értékesítési "
|
"Ez a jelentés elemzést készít az árajánlatairól és a vásárlói "
|
||||||
"megbízásairól. Az elemzés kimutatja az értékesítési bevételeit, és "
|
"megrendelésekről. Az elemzés kimutatja az értékesítés bevételeit, és "
|
||||||
"szétosztja különböző kritériumok alapján (értékesítő, partner, termék stb.). "
|
"szétosztja különböző kritériumok alapján (értékesítő, partner, termék stb.). "
|
||||||
"Használja ezt a jelentést, ha elemzést szeretne készíteni a még ki nem "
|
"Használja ezt a jelentést, ha elemzést szeretne készíteni a még ki nem "
|
||||||
"számlázott értékesítéseiről. Ha a forgalmát szeretné elemezni, akkor "
|
"számlázott értékesítéseiről. Ha a forgalmát szeretné elemezni, akkor "
|
||||||
|
@ -2064,10 +2067,10 @@ msgstr ""
|
||||||
" a megrendelés visszaigazolásában, a szállításban,\n"
|
" a megrendelés visszaigazolásában, a szállításban,\n"
|
||||||
" a számlázásban és az áru ellenértékének beszedésében.\n"
|
" a számlázásban és az áru ellenértékének beszedésében.\n"
|
||||||
" </p><p>\n"
|
" </p><p>\n"
|
||||||
" A társadalmi jellemzők segítenek az értékesítések "
|
" A társadalmi jellemzők segítenek a vevői megrendelések "
|
||||||
"megbeszélésének szervezésében,\n"
|
"megbeszélésének szervezésében,\n"
|
||||||
" és lehetővé teszik a megrendeléseken a vásárlói fejlődésének "
|
" és lehetővé teszik a megrendeléseken a vásárlói "
|
||||||
"követését.\n"
|
"megrendelések fejlődésénak követését.\n"
|
||||||
" </p>\n"
|
" </p>\n"
|
||||||
" "
|
" "
|
||||||
|
|
||||||
|
@ -2138,7 +2141,7 @@ msgid ""
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<p class=\"oe_view_nocontent_create\">\n"
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
" Kattintson megrendelésre átalakítható árajánlat "
|
" Kattintson vásárlói megrendelésre átalakítható árajánlat "
|
||||||
"létrehozásához.\n"
|
"létrehozásához.\n"
|
||||||
" </p><p>\n"
|
" </p><p>\n"
|
||||||
" OpenERP segít a hatékony értékesítési folyamat hatékony "
|
" OpenERP segít a hatékony értékesítési folyamat hatékony "
|
||||||
|
@ -2237,8 +2240,8 @@ msgid ""
|
||||||
" "
|
" "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<p class=\"oe_view_nocontent_create\">\n"
|
"<p class=\"oe_view_nocontent_create\">\n"
|
||||||
" Kattintson ehhez a vevőhöz tartozó árajánlat vagy "
|
" Kattintson ehhez a vevőhöz tartozó árajánlat vagy vevői "
|
||||||
"értékesítési megbízás létrehozásához.\n"
|
"megrendelés létrehozásához.\n"
|
||||||
" </p><p>\n"
|
" </p><p>\n"
|
||||||
" OpenERP segít az értékesítési folyamat hatékony "
|
" OpenERP segít az értékesítési folyamat hatékony "
|
||||||
"kezelésében:\n"
|
"kezelésében:\n"
|
||||||
|
@ -2266,7 +2269,7 @@ msgstr "Üzenetek és kommunikáció történet"
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Search Sales Order"
|
msgid "Search Sales Order"
|
||||||
msgstr "Értékesítési megbízás keresése"
|
msgstr "Vásárlói megrendelés keresése"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: report:sale.order:0
|
#: report:sale.order:0
|
||||||
|
@ -2294,12 +2297,13 @@ msgstr "A megrendelés megrendelési hónapja"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:process.transition,name:sale.process_transition_saleinvoice0
|
#: model:process.transition,name:sale.process_transition_saleinvoice0
|
||||||
msgid "From a sales order"
|
msgid "From a sales order"
|
||||||
msgstr "Értékesítési megbízásból"
|
msgstr "Vevői megrendelésből"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Confirmed sales order lines, not yet delivered"
|
msgid "Confirmed sales order lines, not yet delivered"
|
||||||
msgstr "Megerősített megrendelési tételek, amiket még nem szállítottak ki"
|
msgstr ""
|
||||||
|
"Megerősített vásárlói megrendelési tételek, melyeket még nem szállítottak ki"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: model:process.transition,note:sale.process_transition_saleinvoice0
|
#: model:process.transition,note:sale.process_transition_saleinvoice0
|
||||||
|
@ -2309,10 +2313,10 @@ msgid ""
|
||||||
"generates an invoice or a delivery order as soon as it is confirmed by the "
|
"generates an invoice or a delivery order as soon as it is confirmed by the "
|
||||||
"salesman."
|
"salesman."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Az értékesítési megbízás számlázási beállításaitól függően a számla "
|
"A vevői megrendelés számlázási beállításaitól függően a számla alapulhat a "
|
||||||
"alapulhat a kiszállítási vagy a megrendelési mennyiségen. A rendszer az "
|
"kiszállítási vagy a megrendelési mennyiségen. A rendszer a vevői "
|
||||||
"értékesítési megbízásból létrehozhat egy számlát vagy egy kiszállítási "
|
"megrendelésből létrehozhat egy számlát vagy egy kiszállítási megbízást, "
|
||||||
"megbízást, amint az értékesítő megerősíti azt."
|
"amint az értékesítő megerősíti azt."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -2346,7 +2350,7 @@ msgstr "Számlázásra kész megrendelés"
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: field:sale.config.settings,group_invoice_so_lines:0
|
#: field:sale.config.settings,group_invoice_so_lines:0
|
||||||
msgid "Generate invoices based on the sales order lines"
|
msgid "Generate invoices based on the sales order lines"
|
||||||
msgstr "Számla létrehozása a megrendelési téetelsorokra"
|
msgstr "Számla létrehozása a vevői megrendelési téetelsorokra"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: view:sale.advance.payment.inv:0
|
#: view:sale.advance.payment.inv:0
|
||||||
|
@ -2360,12 +2364,12 @@ msgstr "vagy"
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
#: view:sale.order.line:0
|
#: view:sale.order.line:0
|
||||||
msgid "Sales Order Lines"
|
msgid "Sales Order Lines"
|
||||||
msgstr "Értékesítési megbízási tételek"
|
msgstr "Vevői megrendelési tételek"
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: help:sale.order,pricelist_id:0
|
#: help:sale.order,pricelist_id:0
|
||||||
msgid "Pricelist for current sales order."
|
msgid "Pricelist for current sales order."
|
||||||
msgstr "A jelenlegi értékesítési megbízás árlistája."
|
msgstr "A jelenlegi vevői megrendelés árlistája."
|
||||||
|
|
||||||
#. module: sale
|
#. module: sale
|
||||||
#: report:sale.order:0
|
#: report:sale.order:0
|
||||||
|
@ -2395,7 +2399,7 @@ msgid ""
|
||||||
"between the Unit Price and Cost Price.\n"
|
"between the Unit Price and Cost Price.\n"
|
||||||
" This installs the module sale_margin."
|
" This installs the module sale_margin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ez hozzáadja az 'Árrés' -t a megrendelésre.\n"
|
"Ez hozzáadja az 'Árrés' -t a vevői megrendelésre.\n"
|
||||||
" Jövedelmezőséget ad az egységár és a költség ár "
|
" Jövedelmezőséget ad az egységár és a költség ár "
|
||||||
"különbözetéből.\n"
|
"különbözetéből.\n"
|
||||||
" Ez a sale_margin modult telepíti."
|
" Ez a sale_margin modult telepíti."
|
||||||
|
|
|
@ -27,6 +27,7 @@ class sale_report(osv.osv):
|
||||||
_description = "Sales Orders Statistics"
|
_description = "Sales Orders Statistics"
|
||||||
_auto = False
|
_auto = False
|
||||||
_rec_name = 'date'
|
_rec_name = 'date'
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'date': fields.date('Date Order', readonly=True),
|
'date': fields.date('Date Order', readonly=True),
|
||||||
'date_confirm': fields.date('Date Confirm', readonly=True),
|
'date_confirm': fields.date('Date Confirm', readonly=True),
|
||||||
|
@ -60,12 +61,9 @@ class sale_report(osv.osv):
|
||||||
}
|
}
|
||||||
_order = 'date desc'
|
_order = 'date desc'
|
||||||
|
|
||||||
def init(self, cr):
|
def _select(self):
|
||||||
tools.drop_view_if_exists(cr, 'sale_report')
|
select_str = """
|
||||||
cr.execute("""
|
SELECT min(l.id) as id,
|
||||||
create or replace view sale_report as (
|
|
||||||
select
|
|
||||||
min(l.id) as id,
|
|
||||||
l.product_id as product_id,
|
l.product_id as product_id,
|
||||||
t.uom_id as product_uom,
|
t.uom_id as product_uom,
|
||||||
sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,
|
sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,
|
||||||
|
@ -84,15 +82,23 @@ class sale_report(osv.osv):
|
||||||
t.categ_id as categ_id,
|
t.categ_id as categ_id,
|
||||||
s.pricelist_id as pricelist_id,
|
s.pricelist_id as pricelist_id,
|
||||||
s.project_id as analytic_account_id
|
s.project_id as analytic_account_id
|
||||||
from
|
"""
|
||||||
sale_order_line l
|
return select_str
|
||||||
|
|
||||||
|
def _from(self):
|
||||||
|
from_str = """
|
||||||
|
sale_order_line l
|
||||||
join sale_order s on (l.order_id=s.id)
|
join sale_order s on (l.order_id=s.id)
|
||||||
left join product_product p on (l.product_id=p.id)
|
left join product_product p on (l.product_id=p.id)
|
||||||
left join product_template t on (p.product_tmpl_id=t.id)
|
left join product_template t on (p.product_tmpl_id=t.id)
|
||||||
left join product_uom u on (u.id=l.product_uom)
|
left join product_uom u on (u.id=l.product_uom)
|
||||||
left join product_uom u2 on (u2.id=t.uom_id)
|
left join product_uom u2 on (u2.id=t.uom_id)
|
||||||
group by
|
"""
|
||||||
l.product_id,
|
return from_str
|
||||||
|
|
||||||
|
def _group_by(self):
|
||||||
|
group_by_str = """
|
||||||
|
GROUP BY l.product_id,
|
||||||
l.order_id,
|
l.order_id,
|
||||||
t.uom_id,
|
t.uom_id,
|
||||||
t.categ_id,
|
t.categ_id,
|
||||||
|
@ -104,7 +110,16 @@ class sale_report(osv.osv):
|
||||||
s.state,
|
s.state,
|
||||||
s.pricelist_id,
|
s.pricelist_id,
|
||||||
s.project_id
|
s.project_id
|
||||||
)
|
"""
|
||||||
""")
|
return group_by_str
|
||||||
|
|
||||||
|
def init(self, cr):
|
||||||
|
# self._table = sale_report
|
||||||
|
tools.drop_view_if_exists(cr, self._table)
|
||||||
|
cr.execute("""CREATE or REPLACE VIEW %s as (
|
||||||
|
%s
|
||||||
|
FROM ( %s )
|
||||||
|
%s
|
||||||
|
)""" % (self._table, self._select(), self._from(), self._group_by()))
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -47,10 +47,8 @@
|
||||||
<search string="Sales Analysis">
|
<search string="Sales Analysis">
|
||||||
<field name="date"/>
|
<field name="date"/>
|
||||||
<field name="date_confirm"/>
|
<field name="date_confirm"/>
|
||||||
<filter icon="terp-document-new" string="Quotations" domain="[('state','=','draft')]"/>
|
<filter icon="terp-document-new" name="Quotations" domain="[('state','=','draft')]"/>
|
||||||
<filter icon="terp-check" string="Sales" domain="[('state','not in',('draft','done','cancel'))]"/>
|
<filter icon="terp-check" name="Sales" domain="[('state','not in',('draft','done','cancel'))]"/>
|
||||||
<separator/>
|
|
||||||
<filter icon="terp-accessories-archiver" string="Picked" domain="[('shipped','=',True)]"/>
|
|
||||||
<separator/>
|
<separator/>
|
||||||
<filter icon="terp-personal" string="My Sales" help="My Sales" domain="[('user_id','=',uid)]"/>
|
<filter icon="terp-personal" string="My Sales" help="My Sales" domain="[('user_id','=',uid)]"/>
|
||||||
<field name="partner_id"/>
|
<field name="partner_id"/>
|
||||||
|
|
|
@ -320,6 +320,9 @@ class sale_order(osv.osv):
|
||||||
context = {}
|
context = {}
|
||||||
if vals.get('name', '/') == '/':
|
if vals.get('name', '/') == '/':
|
||||||
vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order') or '/'
|
vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order') or '/'
|
||||||
|
if vals.get('partner_id') and any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id']):
|
||||||
|
defaults = self.onchange_partner_id(cr, uid, [], vals['partner_id'], context)['value']
|
||||||
|
vals = dict(defaults, **vals)
|
||||||
context.update({'mail_create_nolog': True})
|
context.update({'mail_create_nolog': True})
|
||||||
new_id = super(sale_order, self).create(cr, uid, vals, context=context)
|
new_id = super(sale_order, self).create(cr, uid, vals, context=context)
|
||||||
self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=context)
|
self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=context)
|
||||||
|
@ -962,6 +965,24 @@ class sale_order_line(osv.osv):
|
||||||
pass
|
pass
|
||||||
return {'value': value}
|
return {'value': value}
|
||||||
|
|
||||||
|
def create(self, cr, uid, values, context=None):
|
||||||
|
if values.get('order_id') and values.get('product_id') and any(f not in values for f in ['name', 'price_unit', 'type', 'product_uom_qty', 'product_uom']):
|
||||||
|
order = self.pool['sale.order'].read(cr, uid, values['order_id'], ['pricelist_id', 'partner_id', 'date_order', 'fiscal_position'], context=context)
|
||||||
|
defaults = self.product_id_change(cr, uid, [], order['pricelist_id'][0], values['product_id'],
|
||||||
|
qty=float(values.get('product_uom_qty', False)),
|
||||||
|
uom=values.get('product_uom', False),
|
||||||
|
qty_uos=float(values.get('product_uos_qty', False)),
|
||||||
|
uos=values.get('product_uos', False),
|
||||||
|
name=values.get('name', False),
|
||||||
|
partner_id=order['partner_id'][0],
|
||||||
|
date_order=order['date_order'],
|
||||||
|
fiscal_position=order['fiscal_position'][0] if order['fiscal_position'] else False,
|
||||||
|
flag=False, # Force name update
|
||||||
|
context=context
|
||||||
|
)['value']
|
||||||
|
values = dict(defaults, **values)
|
||||||
|
return super(sale_order_line, self).create(cr, uid, values, context=context)
|
||||||
|
|
||||||
def copy_data(self, cr, uid, id, default=None, context=None):
|
def copy_data(self, cr, uid, id, default=None, context=None):
|
||||||
if not default:
|
if not default:
|
||||||
default = {}
|
default = {}
|
||||||
|
|
|
@ -78,6 +78,13 @@
|
||||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.rule" id="sale_order_report_comp_rule">
|
||||||
|
<field name="name">Sales Order Analysis multi-company</field>
|
||||||
|
<field name="model_id" ref="model_sale_report"/>
|
||||||
|
<field name="global" eval="True"/>
|
||||||
|
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!-- Multi - Salesmen sales order assignation rules -->
|
<!-- Multi - Salesmen sales order assignation rules -->
|
||||||
|
|
||||||
<record id="sale_order_personal_rule" model="ir.rule">
|
<record id="sale_order_personal_rule" model="ir.rule">
|
||||||
|
@ -93,6 +100,19 @@
|
||||||
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="sale_order_report_personal_rule" model="ir.rule">
|
||||||
|
<field name="name">Personal Orders Analysis</field>
|
||||||
|
<field ref="model_sale_report" name="model_id"/>
|
||||||
|
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="sale_order_report_see_all" model="ir.rule">
|
||||||
|
<field name="name">All Orders Analysis</field>
|
||||||
|
<field ref="model_sale_report" name="model_id"/>
|
||||||
|
<field name="domain_force">[(1,'=',1)]</field>
|
||||||
|
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="sale_order_line_personal_rule" model="ir.rule">
|
<record id="sale_order_line_personal_rule" model="ir.rule">
|
||||||
<field name="name">Personal Order Lines</field>
|
<field name="name">Personal Order Lines</field>
|
||||||
|
|
|
@ -61,7 +61,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
|
||||||
else:
|
else:
|
||||||
pay_term = False
|
pay_term = False
|
||||||
inv = {
|
inv = {
|
||||||
'name': order.name,
|
'name': order.client_order_ref or '',
|
||||||
'origin': order.name,
|
'origin': order.name,
|
||||||
'type': 'out_invoice',
|
'type': 'out_invoice',
|
||||||
'reference': "P%dSO%d" % (order.partner_id.id, order.id),
|
'reference': "P%dSO%d" % (order.partner_id.id, order.id),
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||||
"PO-Revision-Date: 2013-01-07 22:28+0000\n"
|
"PO-Revision-Date: 2013-12-09 15:55+0000\n"
|
||||||
"Last-Translator: krnkris <Unknown>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 05:57+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale_analytic_plans
|
#. module: sale_analytic_plans
|
||||||
#: field:sale.order.line,analytics_id:0
|
#: field:sale.order.line,analytics_id:0
|
||||||
|
@ -29,7 +29,7 @@ msgstr "Vevői megrendelés"
|
||||||
#. module: sale_analytic_plans
|
#. module: sale_analytic_plans
|
||||||
#: model:ir.model,name:sale_analytic_plans.model_sale_order_line
|
#: model:ir.model,name:sale_analytic_plans.model_sale_order_line
|
||||||
msgid "Sales Order Line"
|
msgid "Sales Order Line"
|
||||||
msgstr "Vevői megrendelés sor"
|
msgstr "Vevői megrendelési tétel sor"
|
||||||
|
|
||||||
#~ msgid "Sales Analytic Distribution Management"
|
#~ msgid "Sales Analytic Distribution Management"
|
||||||
#~ msgstr "Értékesítés analitikus felosztás kezelés"
|
#~ msgstr "Értékesítés analitikus felosztás kezelés"
|
||||||
|
|
|
@ -46,6 +46,7 @@ modules.
|
||||||
'security/sale_crm_security.xml',
|
'security/sale_crm_security.xml',
|
||||||
'security/ir.model.access.csv',
|
'security/ir.model.access.csv',
|
||||||
'report/sale_crm_account_invoice_report_view.xml',
|
'report/sale_crm_account_invoice_report_view.xml',
|
||||||
|
'report/sale_report_view.xml',
|
||||||
],
|
],
|
||||||
'js': [
|
'js': [
|
||||||
'static/src/js/sale_crm.js',
|
'static/src/js/sale_crm.js',
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||||
"PO-Revision-Date: 2011-02-01 18:33+0000\n"
|
"PO-Revision-Date: 2013-12-09 15:59+0000\n"
|
||||||
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 05:19+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
|
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
|
||||||
|
@ -81,7 +81,7 @@ msgstr "Árajánlat"
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: field:crm.make.sale,partner_id:0
|
#: field:crm.make.sale,partner_id:0
|
||||||
msgid "Customer"
|
msgid "Customer"
|
||||||
msgstr "Vevő"
|
msgstr "Vásárló"
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: view:crm.make.sale:0
|
#: view:crm.make.sale:0
|
||||||
|
@ -91,7 +91,7 @@ msgstr "_Létrehoz"
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: model:ir.model,name:sale_crm.model_crm_make_sale
|
#: model:ir.model,name:sale_crm.model_crm_make_sale
|
||||||
msgid "Make sales"
|
msgid "Make sales"
|
||||||
msgstr "Értékesítés létrehozás"
|
msgstr "Vevői értékesítés létrehozás"
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: model:ir.model,name:sale_crm.model_account_invoice
|
#: model:ir.model,name:sale_crm.model_account_invoice
|
||||||
|
@ -108,7 +108,7 @@ msgstr "Lehetőség: %s"
|
||||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:113
|
#: code:addons/sale_crm/wizard/crm_make_sale.py:113
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Opportunity has been <b>converted</b> to the quotation <em>%s</em>."
|
msgid "Opportunity has been <b>converted</b> to the quotation <em>%s</em>."
|
||||||
msgstr "A lehetőségát lett <b>konvertálva</b> árajánlattá <em>%s</em>."
|
msgstr "A lehetőség át lett <b>konvertálva</b> árajánlattá <em>%s</em>."
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: field:crm.make.sale,shop_id:0
|
#: field:crm.make.sale,shop_id:0
|
||||||
|
@ -119,12 +119,12 @@ msgstr "Üzlet"
|
||||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
|
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No addresse(s) defined for this customer."
|
msgid "No addresse(s) defined for this customer."
|
||||||
msgstr "Ehhez a vevőhöz nem lett cím meghatározva."
|
msgstr "Ehhez a vevőhöz nem lett meghatározva cím."
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: model:mail.message.subtype,name:sale_crm.mt_salesteam_order_confirmed
|
#: model:mail.message.subtype,name:sale_crm.mt_salesteam_order_confirmed
|
||||||
msgid "Sales Order Confirmed"
|
msgid "Sales Order Confirmed"
|
||||||
msgstr "Megrendelés visszaigazolva"
|
msgstr "Vásárlói megrendelés visszaigazolva"
|
||||||
|
|
||||||
#. module: sale_crm
|
#. module: sale_crm
|
||||||
#: view:account.invoice:0
|
#: view:account.invoice:0
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
import sales_crm_account_invoice_report
|
import sales_crm_account_invoice_report
|
||||||
|
import sale_report
|
||||||
|
|
||||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from openerp.osv import fields, osv
|
||||||
|
|
||||||
|
|
||||||
|
class sale_report(osv.osv):
|
||||||
|
_inherit = "sale.report"
|
||||||
|
_columns = {
|
||||||
|
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||||
|
}
|
||||||
|
|
||||||
|
def _select(self):
|
||||||
|
return super(sale_report, self)._select() + ", s.section_id as section_id"
|
||||||
|
|
||||||
|
def _group_by(self):
|
||||||
|
return super(sale_report, self)._group_by() + ", s.section_id"
|
||||||
|
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<record id="view_order_product_tree_sale_crm_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">sale.report.tree.sale.crm</field>
|
||||||
|
<field name="model">sale.report</field>
|
||||||
|
<field name="inherit_id" ref="sale.view_order_product_tree"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="product_uom_qty" position="after">
|
||||||
|
<field name="section_id" groups="base.group_multi_salesteams"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="view_order_product_search_sale_crm_inherit" model="ir.ui.view">
|
||||||
|
<field name="name">sale.report.search.sale.crm</field>
|
||||||
|
<field name="model">sale.report</field>
|
||||||
|
<field name="inherit_id" ref="sale.view_order_product_search"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<filter name="User" position="after">
|
||||||
|
<separator/>
|
||||||
|
<filter string="Sales Team" context="{'group_by':'section_id'}"/>
|
||||||
|
</filter>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
|
@ -53,10 +53,10 @@ class crm_case_section(osv.osv):
|
||||||
date_end = month_begin.replace(day=calendar.monthrange(month_begin.year, month_begin.month)[1]).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
|
date_end = month_begin.replace(day=calendar.monthrange(month_begin.year, month_begin.month)[1]).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
|
||||||
for id in ids:
|
for id in ids:
|
||||||
res[id] = dict()
|
res[id] = dict()
|
||||||
created_domain = [('section_id', '=', id), ('state', 'in', ['draft', 'sent']), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
created_domain = [('section_id', '=', id), ('state', '=', ['draft']), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
||||||
res[id]['monthly_quoted'] = self.__get_bar_values(cr, uid, obj, created_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context)
|
res[id]['monthly_quoted'] = self.__get_bar_values(cr, uid, obj, created_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context)
|
||||||
validated_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'sent']), ('date_confirm', '>=', date_begin), ('date_order', '<=', date_end)]
|
validated_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'sent', 'cancel']), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
||||||
res[id]['monthly_confirmed'] = self.__get_bar_values(cr, uid, obj, validated_domain, ['amount_total', 'date_confirm'], 'amount_total', 'date_confirm', context=context)
|
res[id]['monthly_confirmed'] = self.__get_bar_values(cr, uid, obj, validated_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_invoices_data(self, cr, uid, ids, field_name, arg, context=None):
|
def _get_invoices_data(self, cr, uid, ids, field_name, arg, context=None):
|
||||||
|
@ -90,7 +90,7 @@ class crm_case_section(osv.osv):
|
||||||
}
|
}
|
||||||
|
|
||||||
def action_forecast(self, cr, uid, id, value, context=None):
|
def action_forecast(self, cr, uid, id, value, context=None):
|
||||||
return self.write(cr, uid, [id], {'invoiced_forecast': value}, context=context)
|
return self.write(cr, uid, [id], {'invoiced_forecast': round(float(value))}, context=context)
|
||||||
|
|
||||||
|
|
||||||
class res_users(osv.Model):
|
class res_users(osv.Model):
|
||||||
|
|
|
@ -211,6 +211,36 @@
|
||||||
<field name="act_window_id" ref="sale_crm.action_invoice_salesteams"/>
|
<field name="act_window_id" ref="sale_crm.action_invoice_salesteams"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="action_order_report_quotation_salesteam" model="ir.actions.act_window">
|
||||||
|
<field name="name">Quotations Analysis</field>
|
||||||
|
<field name="res_model">sale.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('state','=','draft'),('section_id', '=', active_id)]</field>
|
||||||
|
<field name="context">{'search_default_order_month':1}</field>
|
||||||
|
<field name="help">This report performs analysis on your quotations. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_order_report_so_salesteam" model="ir.actions.act_window">
|
||||||
|
<field name="name">Sales Analysis</field>
|
||||||
|
<field name="res_model">sale.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('state','not in',('draft','sent','cancel')),('section_id', '=', active_id)]</field>
|
||||||
|
<field name="context">{'search_default_order_month':1}</field>
|
||||||
|
<field name="help">This report performs analysis on your sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_account_invoice_report_salesteam" model="ir.actions.act_window">
|
||||||
|
<field name="name">Invoices Analysis</field>
|
||||||
|
<field name="res_model">account.invoice.report</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,graph</field>
|
||||||
|
<field name="domain">[('section_id', '=', active_id),('state', 'not in', ['draft', 'cancel'])]</field>
|
||||||
|
<field name="context">{'search_default_month':1}</field>
|
||||||
|
<field name="help">From this report, you can have an overview of the amount invoiced to your customer. The tool search can also be used to personalise your Invoices reports and so, match this analysis to your needs.</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="crm_case_section_salesteams_view_form" model="ir.ui.view">
|
<record id="crm_case_section_salesteams_view_form" model="ir.ui.view">
|
||||||
<field name="name">crm.case.section.form</field>
|
<field name="name">crm.case.section.form</field>
|
||||||
<field name="model">crm.case.section</field>
|
<field name="model">crm.case.section</field>
|
||||||
|
@ -241,9 +271,9 @@
|
||||||
<xpath expr="//div[@class='oe_salesteams_leads']" position="after">
|
<xpath expr="//div[@class='oe_salesteams_leads']" position="after">
|
||||||
<div class="oe_salesteams_orders">
|
<div class="oe_salesteams_orders">
|
||||||
<a name="%(action_orders_salesteams)d" type="action">Sales Orders</a>
|
<a name="%(action_orders_salesteams)d" type="action">Sales Orders</a>
|
||||||
<a name="%(sale.action_order_report_all)d" type="action" class="oe_sparkline_bar_link">
|
<a name="%(action_order_report_so_salesteam)d" type="action" class="oe_sparkline_bar_link">
|
||||||
<field name="monthly_confirmed" widget="sparkline_bar">
|
<field name="monthly_confirmed" widget="sparkline_bar" options="{'delayIn': '3000'}">
|
||||||
Revenue of confirmed sales orders per month.<br/>Click the acces to Sales Analysis
|
Revenue of confirmed sales orders per month.<br/>Click to acces the Sales Analysis.
|
||||||
</field>
|
</field>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -251,27 +281,29 @@
|
||||||
<xpath expr="//div[@class='oe_salesteams_opportunities']" position="after">
|
<xpath expr="//div[@class='oe_salesteams_opportunities']" position="after">
|
||||||
<div class="oe_salesteams_invoices" groups="account.group_account_invoice">
|
<div class="oe_salesteams_invoices" groups="account.group_account_invoice">
|
||||||
<a name="%(action_invoice_salesteams)d" type="action">Invoices</a>
|
<a name="%(action_invoice_salesteams)d" type="action">Invoices</a>
|
||||||
<a name="%(account.action_account_invoice_report_all)d" type="action" class="oe_sparkline_bar_link">
|
<a name="%(action_account_invoice_report_salesteam)d" type="action" class="oe_sparkline_bar_link">
|
||||||
<field name="monthly_invoiced" widget="sparkline_bar">
|
<field name="monthly_invoiced" widget="sparkline_bar" options="{'delayIn': '3000'}">
|
||||||
Revenue of sent invoices per month.<br/>Click to see a detailed analysis of invoices.
|
Revenue of sent invoices per month.<br/>Click to see a detailed analysis of invoices.
|
||||||
</field>
|
</field>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_salesteams_quotations">
|
<div class="oe_salesteams_quotations">
|
||||||
<a name="%(action_quotations_salesteams)d" type="action" class="oe_sparkline_bar_link">Quotations</a>
|
<a name="%(action_quotations_salesteams)d" type="action" class="oe_sparkline_bar_link">Quotations</a>
|
||||||
<a name="%(sale.action_order_report_all)d" type="action" class="oe_sparkline_bar_link">
|
<a name="%(action_order_report_quotation_salesteam)d" type="action" class="oe_sparkline_bar_link">
|
||||||
<field name="monthly_quoted" widget="sparkline_bar">
|
<field name="monthly_quoted" widget="sparkline_bar" options="{'delayIn': '3000'}">
|
||||||
Revenue of created quotation per month.<br/>Click to see a detailed analysis of sales.
|
Revenue of created quotations per month.<br/>Click to see a detailed analysis.
|
||||||
</field>
|
</field>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//div[@class='oe_items_list']" position="after">
|
<xpath expr="//div[@class='oe_clear']" position="after">
|
||||||
<div class="oe_center" t-if="record.invoiced_target.raw_value">
|
<div class="oe_center" t-if="record.invoiced_target.raw_value">
|
||||||
<field name="monthly_invoiced" widget="gauge" style="width:160px; height: 120px;" options="{'max_field': 'invoiced_target'}">Invoiced</field>
|
<field name="monthly_invoiced" widget="gauge" style="width:160px; height: 120px; cursor: pointer;"
|
||||||
<field name="invoiced_forecast" widget="gauge" style="width:160px; height: 120px;" options="{'max_field': 'invoiced_target', 'action_change': 'action_forecast'}">Forecast</field>
|
options="{'max_field': 'invoiced_target'}">Invoiced</field>
|
||||||
|
<field name="invoiced_forecast" widget="gauge" style="width:160px; height: 120px; cursor: pointer;"
|
||||||
|
options="{'max_field': 'invoiced_target', 'action_change': 'action_forecast'}">Forecast</field>
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_center" style="color:#bbbbbb;" t-if="!record.invoiced_target.raw_value">
|
<div class="oe_center oe_salesteams_help" style="color:#bbbbbb;" t-if="!record.invoiced_target.raw_value">
|
||||||
<br/>Define an invoicing target in the sales team settings to see the period's achievement and forecast at a glance.
|
<br/>Define an invoicing target in the sales team settings to see the period's achievement and forecast at a glance.
|
||||||
</div>
|
</div>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
|
@ -47,7 +47,7 @@ class crm_make_sale(osv.osv_memory):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
lead = lead_obj.read(cr, uid, active_id, ['partner_id'], context=context)
|
lead = lead_obj.read(cr, uid, active_id, ['partner_id'], context=context)
|
||||||
return lead['partner_id'][0]
|
return lead['partner_id'][0] if lead['partner_id'] else False
|
||||||
|
|
||||||
def view_init(self, cr, uid, fields_list, context=None):
|
def view_init(self, cr, uid, fields_list, context=None):
|
||||||
return super(crm_make_sale, self).view_init(cr, uid, fields_list, context=context)
|
return super(crm_make_sale, self).view_init(cr, uid, fields_list, context=context)
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
# Spanish (Peru) 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-12-09 18:37+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: field:sale_journal.invoice.type,note:0
|
||||||
|
msgid "Note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: field:res.partner,property_invoice_type:0
|
||||||
|
msgid "Invoicing Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: help:res.partner,property_invoice_type:0
|
||||||
|
msgid ""
|
||||||
|
"This invoicing type will be used, by default, to invoice the current partner."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: view:res.partner:0
|
||||||
|
msgid "Sales & Purchases"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: view:res.partner:0
|
||||||
|
msgid "Invoicing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.model,name:sale_journal.model_stock_picking_in
|
||||||
|
msgid "Incoming Shipments"
|
||||||
|
msgstr "Entregas a Recibir"
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: help:sale_journal.invoice.type,active:0
|
||||||
|
msgid ""
|
||||||
|
"If the active field is set to False, it will allow you to hide the invoice "
|
||||||
|
"type without removing it."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: view:sale_journal.invoice.type:0
|
||||||
|
msgid "Notes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: field:sale_journal.invoice.type,invoicing_method:0
|
||||||
|
msgid "Invoicing method"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.model,name:sale_journal.model_stock_picking
|
||||||
|
msgid "Picking List"
|
||||||
|
msgstr "Guía"
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_invoice_type
|
||||||
|
#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type
|
||||||
|
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_invoice_type
|
||||||
|
msgid "Invoice Types"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: selection:sale_journal.invoice.type,invoicing_method:0
|
||||||
|
msgid "Non grouped"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: selection:sale_journal.invoice.type,invoicing_method:0
|
||||||
|
msgid "Grouped"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.actions.act_window,help:sale_journal.action_definition_journal_invoice_type
|
||||||
|
msgid ""
|
||||||
|
"Invoice types are used for partners, sales orders and delivery orders. You "
|
||||||
|
"can create a specific invoicing journal to group your invoicing according to "
|
||||||
|
"your customer's needs: daily, each Wednesday, monthly, etc."
|
||||||
|
msgstr ""
|
||||||
|
"Los tipos de facturas son utilizados por las Empresas, Pedidos de Venta y "
|
||||||
|
"Órdenes de Entrega. Puede crear un diario de facturación específico para "
|
||||||
|
"agrupar su facturación en función de las necesidades de sus clientes: "
|
||||||
|
"diaria, cada miércoles, mensual, etc."
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: help:sale.order,invoice_type_id:0
|
||||||
|
msgid "Generate invoice based on the selected option."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: view:sale.order:0
|
||||||
|
#: field:sale.order,invoice_type_id:0
|
||||||
|
#: view:sale_journal.invoice.type:0
|
||||||
|
#: field:sale_journal.invoice.type,name:0
|
||||||
|
#: view:stock.picking:0
|
||||||
|
#: field:stock.picking,invoice_type_id:0
|
||||||
|
#: view:stock.picking.in:0
|
||||||
|
#: field:stock.picking.in,invoice_type_id:0
|
||||||
|
#: view:stock.picking.out:0
|
||||||
|
#: field:stock.picking.out,invoice_type_id:0
|
||||||
|
msgid "Invoice Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: field:sale_journal.invoice.type,active:0
|
||||||
|
msgid "Active"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.model,name:sale_journal.model_res_partner
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.model,name:sale_journal.model_sale_order
|
||||||
|
msgid "Sales Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_journal
|
||||||
|
#: model:ir.model,name:sale_journal.model_stock_picking_out
|
||||||
|
msgid "Delivery Orders"
|
||||||
|
msgstr ""
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||||
"PO-Revision-Date: 2011-02-01 22:09+0000\n"
|
"PO-Revision-Date: 2013-12-09 16:03+0000\n"
|
||||||
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 06:13+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale_margin
|
#. module: sale_margin
|
||||||
#: field:sale.order.line,purchase_price:0
|
#: field:sale.order.line,purchase_price:0
|
||||||
|
@ -35,7 +35,7 @@ msgstr "Árrés"
|
||||||
#. module: sale_margin
|
#. module: sale_margin
|
||||||
#: model:ir.model,name:sale_margin.model_sale_order_line
|
#: model:ir.model,name:sale_margin.model_sale_order_line
|
||||||
msgid "Sales Order Line"
|
msgid "Sales Order Line"
|
||||||
msgstr "Vevői megrendelés sor"
|
msgstr "Vevői megrendelési tétel sor"
|
||||||
|
|
||||||
#. module: sale_margin
|
#. module: sale_margin
|
||||||
#: help:sale.order,margin:0
|
#: help:sale.order,margin:0
|
||||||
|
|
|
@ -7,19 +7,19 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||||
"PO-Revision-Date: 2011-02-01 22:23+0000\n"
|
"PO-Revision-Date: 2013-12-09 16:06+0000\n"
|
||||||
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 06:14+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale_mrp
|
#. module: sale_mrp
|
||||||
#: model:ir.model,name:sale_mrp.model_mrp_production
|
#: model:ir.model,name:sale_mrp.model_mrp_production
|
||||||
msgid "Manufacturing Order"
|
msgid "Manufacturing Order"
|
||||||
msgstr "Gyártási utasítás"
|
msgstr "Gyártási rendelés"
|
||||||
|
|
||||||
#. module: sale_mrp
|
#. module: sale_mrp
|
||||||
#: help:mrp.production,sale_name:0
|
#: help:mrp.production,sale_name:0
|
||||||
|
@ -34,7 +34,7 @@ msgstr "A vevői megrendelés vevő hivatkozására utal."
|
||||||
#. module: sale_mrp
|
#. module: sale_mrp
|
||||||
#: field:mrp.production,sale_ref:0
|
#: field:mrp.production,sale_ref:0
|
||||||
msgid "Sale Reference"
|
msgid "Sale Reference"
|
||||||
msgstr "Értékesítési referencia"
|
msgstr "Vevői megrendelési referencia"
|
||||||
|
|
||||||
#. module: sale_mrp
|
#. module: sale_mrp
|
||||||
#: field:mrp.production,sale_name:0
|
#: field:mrp.production,sale_name:0
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
# Spanish (Peru) 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-12-09 18:32+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: view:sale.order:0
|
||||||
|
msgid "Dates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: field:sale.order,commitment_date:0
|
||||||
|
msgid "Commitment Date"
|
||||||
|
msgstr "Fecha Prometida"
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: field:sale.order,effective_date:0
|
||||||
|
msgid "Effective Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: help:sale.order,effective_date:0
|
||||||
|
msgid "Date on which picking is created."
|
||||||
|
msgstr "Fecha en que la Guía fue creada."
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: help:sale.order,requested_date:0
|
||||||
|
msgid "Date requested by the customer for the sale."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: field:sale.order,requested_date:0
|
||||||
|
msgid "Requested Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: model:ir.model,name:sale_order_dates.model_sale_order
|
||||||
|
msgid "Sales Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_order_dates
|
||||||
|
#: help:sale.order,commitment_date:0
|
||||||
|
msgid "Committed date for delivery."
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,609 @@
|
||||||
|
# Spanish (Peru) 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-12-09 18:14+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish (Peru) <es_PE@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-12-11 05:32+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,group_invoice_deli_orders:0
|
||||||
|
msgid ""
|
||||||
|
"To allow your salesman to make invoices for Delivery Orders using the menu "
|
||||||
|
"'Deliveries to Invoice'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,name:sale_stock.process_node_deliveryorder0
|
||||||
|
msgid "Delivery Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.actions.act_window,name:sale_stock.outgoing_picking_list_to_invoice
|
||||||
|
#: model:ir.ui.menu,name:sale_stock.menu_action_picking_list_to_invoice
|
||||||
|
msgid "Deliveries to Invoice"
|
||||||
|
msgstr "Entregas a facturar"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:570
|
||||||
|
#, python-format
|
||||||
|
msgid "Picking Information ! : "
|
||||||
|
msgstr "Información de la Guía! "
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,name:sale_stock.process_node_packinglist0
|
||||||
|
msgid "Pick List"
|
||||||
|
msgstr "Guía"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:565
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You selected a quantity of %d Units.\n"
|
||||||
|
"But it's not compatible with the selected packaging.\n"
|
||||||
|
"Here is a proposition of quantities according to the packaging:\n"
|
||||||
|
"EAN: %s Quantity: %s Type of ul: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,note:sale_stock.process_node_packinglist0
|
||||||
|
msgid "Document of the move to the output or to the customer."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,group_multiple_shops:0
|
||||||
|
msgid "Manage multiple shops"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_validate0
|
||||||
|
msgid "Validate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:209
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You must first cancel all delivery order(s) attached to this sales order."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,name:sale_stock.process_transition_saleprocurement0
|
||||||
|
msgid "Create Procurement Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:stock.picking.out,sale_id:0
|
||||||
|
msgid "Sale Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
|
||||||
|
msgid ""
|
||||||
|
"For every sales order line, a procurement order is created to supply the "
|
||||||
|
"sold product."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:615
|
||||||
|
#, python-format
|
||||||
|
msgid "Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order,picking_policy:0
|
||||||
|
msgid "Shipping Policy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:616
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You cannot make an advance on a sales order that is "
|
||||||
|
"defined as 'Automatic Invoice after delivery'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
|
||||||
|
msgid "Shop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
|
||||||
|
msgid "Drives procurement orders for every sales order line."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_stock_move
|
||||||
|
msgid "Stock Move"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:163
|
||||||
|
#, python-format
|
||||||
|
msgid "Invalid Action!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,module_project_timesheet:0
|
||||||
|
msgid "Project Timesheet"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,group_sale_delivery_address:0
|
||||||
|
msgid "Allow a different address for delivery and invoicing "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:572
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:623
|
||||||
|
#, python-format
|
||||||
|
msgid "Configuration Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,name:sale_stock.process_node_saleprocurement0
|
||||||
|
msgid "Procurement Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: selection:sale.config.settings,default_order_policy:0
|
||||||
|
msgid "Invoice based on deliveries"
|
||||||
|
msgstr "Facturar desde entregas"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_order
|
||||||
|
#: field:stock.picking,sale_id:0
|
||||||
|
msgid "Sales Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_stock_picking_out
|
||||||
|
msgid "Delivery Orders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_order_line
|
||||||
|
#: field:stock.move,sale_line_id:0
|
||||||
|
msgid "Sales Order Line"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,note:sale_stock.process_transition_packing0
|
||||||
|
msgid ""
|
||||||
|
"The Pick List form is created as soon as the sales order is confirmed, in "
|
||||||
|
"the same time as the procurement order. It represents the assignment of "
|
||||||
|
"parts to the sales order. There is 1 pick list by sales order line which "
|
||||||
|
"evolves with the availability of parts."
|
||||||
|
msgstr ""
|
||||||
|
"El Guía se crea tan pronto como se confirma el pedido de venta, a la vez que "
|
||||||
|
"la orden de abastecimiento. Representa la asignación de los componentes del "
|
||||||
|
"pedido de venta. Hay una Guía por línea del pedido de venta que evoluciona "
|
||||||
|
"según la disponibilidad de los componentes."
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:res.company,security_lead:0
|
||||||
|
msgid ""
|
||||||
|
"This is the days added to what you promise to customers for security purpose"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_stock_picking
|
||||||
|
msgid "Picking List"
|
||||||
|
msgstr "Guía"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.shop,warehouse_id:0
|
||||||
|
msgid "Warehouse"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_forceassignation0
|
||||||
|
msgid "Force Assignation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,default_order_policy:0
|
||||||
|
msgid "The default invoicing method is"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,delay:0
|
||||||
|
msgid "Delivery Lead Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,note:sale_stock.process_node_deliveryorder0
|
||||||
|
msgid "Document of the move to the customer."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.order:0
|
||||||
|
msgid "View Delivery Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,move_ids:0
|
||||||
|
msgid "Inventory Moves"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.config.settings:0
|
||||||
|
msgid "Default Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,module_project_mrp:0
|
||||||
|
msgid "Project MRP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,note:sale_stock.process_transition_invoiceafterdelivery0
|
||||||
|
msgid ""
|
||||||
|
"The invoice is created automatically if the shipping policy is 'Invoice from "
|
||||||
|
"pick' or 'Invoice on order after delivery'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,procurement_id:0
|
||||||
|
msgid "Procurement"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.report:0
|
||||||
|
#: field:sale.report,shipped:0
|
||||||
|
#: field:sale.report,shipped_qty_1:0
|
||||||
|
msgid "Shipped"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:265
|
||||||
|
#, python-format
|
||||||
|
msgid "invalid mode for test_state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
|
||||||
|
msgid ""
|
||||||
|
"A procurement order is automatically created as soon as a sales order is "
|
||||||
|
"confirmed or as the invoice is paid. It drives the purchasing and the "
|
||||||
|
"production of products regarding to the rules and to the sales order's "
|
||||||
|
"parameters. "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,group_mrp_properties:0
|
||||||
|
msgid "Allows you to tag sales order lines with properties."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,group_invoice_deli_orders:0
|
||||||
|
msgid "Generate invoices after and based on delivery orders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,module_delivery:0
|
||||||
|
msgid "Allow adding shipping costs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.order:0
|
||||||
|
msgid "days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,product_packaging:0
|
||||||
|
msgid "Packaging"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.order,incoterm:0
|
||||||
|
msgid ""
|
||||||
|
"International Commercial Terms are a series of predefined commercial terms "
|
||||||
|
"used in international transactions."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,module_delivery:0
|
||||||
|
msgid ""
|
||||||
|
"Allows you to add delivery methods in sales orders and delivery orders.\n"
|
||||||
|
" You can define your own carrier and delivery grids for "
|
||||||
|
"prices.\n"
|
||||||
|
" This installs the module delivery."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,default_picking_policy:0
|
||||||
|
msgid "Deliver all at once when all products are available."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
|
||||||
|
msgid "Enable Invoicing Delivery orders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:res.company,security_lead:0
|
||||||
|
msgid "Security Days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,name:sale_stock.process_transition_saleorderprocurement0
|
||||||
|
msgid "Procurement of sold material"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.order,picking_policy:0
|
||||||
|
msgid ""
|
||||||
|
"Pick 'Deliver each product when available' if you allow partial delivery."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:208
|
||||||
|
#, python-format
|
||||||
|
msgid "Cannot cancel sales order!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_shop
|
||||||
|
msgid "Sales Shop"
|
||||||
|
msgstr "Tiendas"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.order,shipped:0
|
||||||
|
msgid ""
|
||||||
|
"It indicates that the sales order has been delivered. This field is updated "
|
||||||
|
"only after the scheduler(s) have been launched."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,property_ids:0
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,group_mrp_properties:0
|
||||||
|
msgid "Product properties on order lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,default_order_policy:0
|
||||||
|
msgid ""
|
||||||
|
"You can generate invoices based on sales orders or based on shippings."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_report
|
||||||
|
msgid "Sales Orders Statistics"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_res_company
|
||||||
|
msgid "Companies"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,task_work:0
|
||||||
|
msgid ""
|
||||||
|
"Lets you transfer the entries under tasks defined for Project Management to\n"
|
||||||
|
" the Timesheet line entries for particular date and "
|
||||||
|
"particular user with the effect of creating, editing and deleting either "
|
||||||
|
"ways\n"
|
||||||
|
" and to automatically creates project tasks from procurement "
|
||||||
|
"lines.\n"
|
||||||
|
" This installs the modules project_timesheet and project_mrp."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,group_sale_delivery_address:0
|
||||||
|
msgid ""
|
||||||
|
"Allows you to specify different delivery and invoice addresses on a sales "
|
||||||
|
"order."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,note:sale_stock.process_node_saleprocurement0
|
||||||
|
msgid ""
|
||||||
|
"One Procurement order for each sales order line and for each of the "
|
||||||
|
"components."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
|
||||||
|
msgid "Assign"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:618
|
||||||
|
#, python-format
|
||||||
|
msgid "Not enough stock ! : "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.order.line,delay:0
|
||||||
|
msgid ""
|
||||||
|
"Number of days between the order confirmation and the shipping of the "
|
||||||
|
"products to the customer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,default_picking_policy:0
|
||||||
|
msgid ""
|
||||||
|
"Sales order by default will be configured to deliver all products at once "
|
||||||
|
"instead of delivering each product when it is available. This may have an "
|
||||||
|
"impact on the shipping price."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: selection:sale.config.settings,default_order_policy:0
|
||||||
|
msgid "Invoice based on sales orders"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
|
||||||
|
msgid "Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_cancel1
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_cancel2
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:163
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"In order to delete a confirmed sales order, you must cancel it.\n"
|
||||||
|
"To do so, you must first cancel related picking for delivery orders."
|
||||||
|
msgstr ""
|
||||||
|
"Para borrar un pedido de venta confirmado, debe cancelarlo.\n"
|
||||||
|
"Para hacerlo, debe cancelar primero las guías relacionadas para sus órdenes "
|
||||||
|
"de entrega."
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order.line,number_packages:0
|
||||||
|
msgid "Number Packages"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order,shipped:0
|
||||||
|
msgid "Delivered"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
|
||||||
|
msgid "Create Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.config.settings,task_work:0
|
||||||
|
msgid "Prepare invoices based on task's activities"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
|
||||||
|
msgid "Sales Advance Payment Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:523
|
||||||
|
#, python-format
|
||||||
|
msgid "You must first cancel stock moves attached to this sales order line."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:561
|
||||||
|
#, python-format
|
||||||
|
msgid "(n/a)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order,incoterm:0
|
||||||
|
msgid "Incoterm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:522
|
||||||
|
#, python-format
|
||||||
|
msgid "Cannot cancel sales order line!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
|
||||||
|
msgid "Cancel Assignation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
|
||||||
|
msgid "Based on the shipped or on the ordered quantities."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: selection:sale.order,picking_policy:0
|
||||||
|
msgid "Deliver all products at once"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order,picking_ids:0
|
||||||
|
msgid "Related Picking"
|
||||||
|
msgstr "Guía relacionada"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:ir.model,name:sale_stock.model_sale_config_settings
|
||||||
|
msgid "sale.config.settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.order,picking_ids:0
|
||||||
|
msgid ""
|
||||||
|
"This is a list of delivery orders that has been generated for this sales "
|
||||||
|
"order."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
|
||||||
|
msgid "Sales Order Requisition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,name:sale_stock.process_transition_deliver0
|
||||||
|
msgid "Create Delivery Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.order:0
|
||||||
|
msgid "Ignore Exception"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: code:addons/sale_stock/sale_stock.py:614
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You plan to sell %.2f %s but you only have %.2f %s available !\n"
|
||||||
|
"The real stock is %.2f %s. (without reservations)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: view:sale.order:0
|
||||||
|
msgid "Recreate Delivery Order"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: help:sale.config.settings,group_multiple_shops:0
|
||||||
|
msgid "This allows to configure and use multiple shops."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: field:sale.order,picked_rate:0
|
||||||
|
msgid "Picked"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: selection:sale.order,picking_policy:0
|
||||||
|
msgid "Deliver each product when available"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,name:sale_stock.process_transition_packing0
|
||||||
|
msgid "Create Pick List"
|
||||||
|
msgstr "Crear Guía"
|
||||||
|
|
||||||
|
#. module: sale_stock
|
||||||
|
#: model:process.transition,note:sale_stock.process_transition_deliver0
|
||||||
|
msgid ""
|
||||||
|
"Depending on the configuration of the location Output, the move between the "
|
||||||
|
"output area and the customer is done through the Delivery Order manually or "
|
||||||
|
"automatically."
|
||||||
|
msgstr ""
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||||
"PO-Revision-Date: 2013-01-10 12:41+0000\n"
|
"PO-Revision-Date: 2013-12-09 19:30+0000\n"
|
||||||
"Last-Translator: krnkris <Unknown>\n"
|
"Last-Translator: krnkris <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2013-09-12 06:36+0000\n"
|
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
|
||||||
"X-Generator: Launchpad (build 16761)\n"
|
"X-Generator: Launchpad (build 16869)\n"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: help:sale.config.settings,group_invoice_deli_orders:0
|
#: help:sale.config.settings,group_invoice_deli_orders:0
|
||||||
|
@ -94,7 +94,7 @@ msgstr "Beszerzési megbízás létrehozása"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:stock.picking.out,sale_id:0
|
#: field:stock.picking.out,sale_id:0
|
||||||
msgid "Sale Order"
|
msgid "Sale Order"
|
||||||
msgstr "Rendelés"
|
msgstr "Vevői megrendelés"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
|
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
|
||||||
|
@ -102,7 +102,7 @@ msgid ""
|
||||||
"For every sales order line, a procurement order is created to supply the "
|
"For every sales order line, a procurement order is created to supply the "
|
||||||
"sold product."
|
"sold product."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Minden értékesítési megbízási sorhoz létrejön egy beszerzési megbízás is az "
|
"Minden vásárlói megrendelés tételhez, létrehoz egy beszerzési megbízás is az "
|
||||||
"eladott termék előteremtésére."
|
"eladott termék előteremtésére."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
|
@ -123,8 +123,8 @@ msgid ""
|
||||||
"You cannot make an advance on a sales order that is "
|
"You cannot make an advance on a sales order that is "
|
||||||
"defined as 'Automatic Invoice after delivery'."
|
"defined as 'Automatic Invoice after delivery'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nem végezhet előrelépést egy megrendelésen ami úgy van meghatározva, hogy "
|
"Nem végezhet díjbekérést egy olyan vásárlói megrendelésen ami úgy van "
|
||||||
"'Szállítás után automatikus számlázás'."
|
"meghatározva, hogy 'Szállítás után automatikus számlázás'."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
|
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
|
||||||
|
@ -134,7 +134,8 @@ msgstr "Üzlet"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
|
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
|
||||||
msgid "Drives procurement orders for every sales order line."
|
msgid "Drives procurement orders for every sales order line."
|
||||||
msgstr "Beszerzési megbízást generál minden értékesítési megbízási sorhoz."
|
msgstr ""
|
||||||
|
"Beszerzési megbízást generál minden vásárlói megrendelési tétel sorhoz."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_stock_move
|
#: model:ir.model,name:sale_stock.model_stock_move
|
||||||
|
@ -150,12 +151,12 @@ msgstr "Érvénytelen lépés!"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,module_project_timesheet:0
|
#: field:sale.config.settings,module_project_timesheet:0
|
||||||
msgid "Project Timesheet"
|
msgid "Project Timesheet"
|
||||||
msgstr "Projekt munkaidő-kimutatása"
|
msgstr "Projekt időbeosztás-kimutatása"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,group_sale_delivery_address:0
|
#: field:sale.config.settings,group_sale_delivery_address:0
|
||||||
msgid "Allow a different address for delivery and invoicing "
|
msgid "Allow a different address for delivery and invoicing "
|
||||||
msgstr "Engedélyezze akülönböző címeket a szállításhoz és a számlázáshoz "
|
msgstr "Engedélyezze a szállításhoz és a számlázáshoz a különböző címeket "
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: code:addons/sale_stock/sale_stock.py:572
|
#: code:addons/sale_stock/sale_stock.py:572
|
||||||
|
@ -178,7 +179,7 @@ msgstr "Számla a szállítások alapján"
|
||||||
#: model:ir.model,name:sale_stock.model_sale_order
|
#: model:ir.model,name:sale_stock.model_sale_order
|
||||||
#: field:stock.picking,sale_id:0
|
#: field:stock.picking,sale_id:0
|
||||||
msgid "Sales Order"
|
msgid "Sales Order"
|
||||||
msgstr "Értékesítési megbízás"
|
msgstr "Vevői megrendelés"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_stock_picking_out
|
#: model:ir.model,name:sale_stock.model_stock_picking_out
|
||||||
|
@ -189,7 +190,7 @@ msgstr "Kiszállítások kézbesítési bizonylatai"
|
||||||
#: model:ir.model,name:sale_stock.model_sale_order_line
|
#: model:ir.model,name:sale_stock.model_sale_order_line
|
||||||
#: field:stock.move,sale_line_id:0
|
#: field:stock.move,sale_line_id:0
|
||||||
msgid "Sales Order Line"
|
msgid "Sales Order Line"
|
||||||
msgstr "Értékesítési megbízási sor"
|
msgstr "Vevői megrendelési tétel sor"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition,note:sale_stock.process_transition_packing0
|
#: model:process.transition,note:sale_stock.process_transition_packing0
|
||||||
|
@ -199,21 +200,22 @@ msgid ""
|
||||||
"parts to the sales order. There is 1 pick list by sales order line which "
|
"parts to the sales order. There is 1 pick list by sales order line which "
|
||||||
"evolves with the availability of parts."
|
"evolves with the availability of parts."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The Pick List form is created as soon as the sales order is confirmed, in "
|
"A kiválogatási lista adatlapját a vevői megrendelés visszaigazolásakor "
|
||||||
"the same time as the procurement order. It represents the assignment of "
|
"azonnal létrehozza, ugyanakkor amikor a beszerzési megbízást. Ez képviseli a "
|
||||||
"parts to the sales order. There is 1 pick list by sales order line which "
|
"vevői megrendelés tételeit. Itt a vevői megrendelés tételekként 1 "
|
||||||
"evolves with the availability of parts."
|
"kiválogatási lista van, ami mindjárt megmutatja a tételek hozzáférhetőségét "
|
||||||
|
"is."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: help:res.company,security_lead:0
|
#: help:res.company,security_lead:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is the days added to what you promise to customers for security purpose"
|
"This is the days added to what you promise to customers for security purpose"
|
||||||
msgstr "A vevőknek ígért, biztonsági okokból hozzáadott napok száma."
|
msgstr "A vevőknek megígért, biztonsági okokból hozzáadott, napok száma."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_stock_picking
|
#: model:ir.model,name:sale_stock.model_stock_picking
|
||||||
msgid "Picking List"
|
msgid "Picking List"
|
||||||
msgstr "Kiszedési lista"
|
msgstr "Kiválogatási lista"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.shop,warehouse_id:0
|
#: field:sale.shop,warehouse_id:0
|
||||||
|
@ -238,7 +240,7 @@ msgstr "Kiszállítás átfutási idő"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,note:sale_stock.process_node_deliveryorder0
|
#: model:process.node,note:sale_stock.process_node_deliveryorder0
|
||||||
msgid "Document of the move to the customer."
|
msgid "Document of the move to the customer."
|
||||||
msgstr "Dokumentum a vevőnek történő mozgásról."
|
msgstr "Dokumentum a vevőhöz történő mozgatásról."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: view:sale.order:0
|
#: view:sale.order:0
|
||||||
|
@ -248,12 +250,12 @@ msgstr "Kiszállítási kézbesítési bizonylatok áttekintése"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.order.line,move_ids:0
|
#: field:sale.order.line,move_ids:0
|
||||||
msgid "Inventory Moves"
|
msgid "Inventory Moves"
|
||||||
msgstr "Leltármozgás"
|
msgstr "Leltárkészlet mozgás"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: view:sale.config.settings:0
|
#: view:sale.config.settings:0
|
||||||
msgid "Default Options"
|
msgid "Default Options"
|
||||||
msgstr "Alapértelmezett lehetőség"
|
msgstr "Alapértelmezett lehetőségek"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,module_project_mrp:0
|
#: field:sale.config.settings,module_project_mrp:0
|
||||||
|
@ -266,8 +268,8 @@ msgid ""
|
||||||
"The invoice is created automatically if the shipping policy is 'Invoice from "
|
"The invoice is created automatically if the shipping policy is 'Invoice from "
|
||||||
"pick' or 'Invoice on order after delivery'."
|
"pick' or 'Invoice on order after delivery'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A számla automatikusan létrejön, ha a kiszállítási szabály: számlázás "
|
"A számla automatikusan létrejön, ha a kiszállítási szabály: 'számlázás "
|
||||||
"kiszedésből vagy számlázás kiszállítás után."
|
"kiszedésből' vagy 'számlázás kiszállítás után'."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.order.line,procurement_id:0
|
#: field:sale.order.line,procurement_id:0
|
||||||
|
@ -285,7 +287,7 @@ msgstr "Kiszállított"
|
||||||
#: code:addons/sale_stock/sale_stock.py:265
|
#: code:addons/sale_stock/sale_stock.py:265
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "invalid mode for test_state"
|
msgid "invalid mode for test_state"
|
||||||
msgstr "érvénytelen mód a tesztállapotban"
|
msgstr "érvénytelen mód a teszt_állapotban"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
|
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
|
||||||
|
@ -296,21 +298,23 @@ msgid ""
|
||||||
"parameters. "
|
"parameters. "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A rendszer automatikusan egy beszerzési megbízást hoz létre, amint "
|
"A rendszer automatikusan egy beszerzési megbízást hoz létre, amint "
|
||||||
"megerősítettük az értékesítési megbízást, vagy a számlát kifizették. A "
|
"megerősítettük a vevői megrendelést, vagy a számlát kifizették. A rendszer "
|
||||||
"rendszer az értékesítési megbízásokon keresztül irányítja a szállítói "
|
"az értékesítési megbízásokon keresztül irányítja a szállítói megrendeléseket "
|
||||||
"megrendeléseket és a termékek gyártását is a beállított szabályoknak és az "
|
"és a termékek gyártását is a beállított szabályoknak és a vevői megrendelés "
|
||||||
"értékesítési megbízás paramétereinek megfelelően. "
|
"paramétereinek megfelelően. "
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: help:sale.config.settings,group_mrp_properties:0
|
#: help:sale.config.settings,group_mrp_properties:0
|
||||||
msgid "Allows you to tag sales order lines with properties."
|
msgid "Allows you to tag sales order lines with properties."
|
||||||
msgstr "Lehetővé teszi a megrendelési sorok tulajdonságokal való kijelölését"
|
msgstr ""
|
||||||
|
"Lehetővé teszi a vásárlói megrendelési tételek tulajdonságokkal való "
|
||||||
|
"címkézését"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,group_invoice_deli_orders:0
|
#: field:sale.config.settings,group_invoice_deli_orders:0
|
||||||
msgid "Generate invoices after and based on delivery orders"
|
msgid "Generate invoices after and based on delivery orders"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Számla generálása később és a kiszállítási kézbesítési bizonylatok alapján"
|
"Számla generálása a kiszállítási kézbesítési bizonylatok alapján és után"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,module_delivery:0
|
#: field:sale.config.settings,module_delivery:0
|
||||||
|
@ -346,14 +350,14 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lehetővé teszi szállítási mód hozzáadását a megrendelésekhez és a "
|
"Lehetővé teszi szállítási mód hozzáadását a megrendelésekhez és a "
|
||||||
"kiszállítási kézbesítési bizonylatokhoz.\n"
|
"kiszállítási kézbesítési bizonylatokhoz.\n"
|
||||||
" Meghatározhatja a saját szállítóját és szállítási hálózatát "
|
" Meghatározhatja a saját szállítóját és szállítási hálózat "
|
||||||
"külön árárt.\n"
|
"külön árát.\n"
|
||||||
" Ez a delivery modult telepíti."
|
" Ez a delivery (szállítás) modult telepíti."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,default_picking_policy:0
|
#: field:sale.config.settings,default_picking_policy:0
|
||||||
msgid "Deliver all at once when all products are available."
|
msgid "Deliver all at once when all products are available."
|
||||||
msgstr "Egyszerre történő szállítás, ha az összes termék rendelkezésre áll."
|
msgstr "Egyszerre szállítsa, ha az összes termék rendelkezésre áll."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
|
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
|
||||||
|
@ -375,7 +379,7 @@ msgstr "Az eladott anyagok beszerzése"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Pick 'Deliver each product when available' if you allow partial delivery."
|
"Pick 'Deliver each product when available' if you allow partial delivery."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rés "
|
"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rész "
|
||||||
"szállítmányt akar megengedni."
|
"szállítmányt akar megengedni."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
|
@ -395,7 +399,7 @@ msgid ""
|
||||||
"It indicates that the sales order has been delivered. This field is updated "
|
"It indicates that the sales order has been delivered. This field is updated "
|
||||||
"only after the scheduler(s) have been launched."
|
"only after the scheduler(s) have been launched."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jelzi, hogy az értékesítési megbízás kiszállításra került. Ez a mező csak "
|
"Jelzi, hogy a vásárlói megrendelés kiszállításra került. Ez a mező csak "
|
||||||
"akkor frissül, ha az ütemező(k) elindult(ak)."
|
"akkor frissül, ha az ütemező(k) elindult(ak)."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
|
@ -406,19 +410,18 @@ msgstr "Tulajdonságok"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,group_mrp_properties:0
|
#: field:sale.config.settings,group_mrp_properties:0
|
||||||
msgid "Product properties on order lines"
|
msgid "Product properties on order lines"
|
||||||
msgstr "Termék tulajdonságok a megrendelés sorain"
|
msgstr "Termék tulajdonságok a megrendelés tétel sorain"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: help:sale.config.settings,default_order_policy:0
|
#: help:sale.config.settings,default_order_policy:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can generate invoices based on sales orders or based on shippings."
|
"You can generate invoices based on sales orders or based on shippings."
|
||||||
msgstr ""
|
msgstr "Létrehozhat számlát vásárlói megrendelés vagy kiszállítások alapján."
|
||||||
"Létrehozhat számlát értékesítési megbízások vagy kiszállítások alapján."
|
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_sale_report
|
#: model:ir.model,name:sale_stock.model_sale_report
|
||||||
msgid "Sales Orders Statistics"
|
msgid "Sales Orders Statistics"
|
||||||
msgstr "Értékesítési megbízási statisztikák"
|
msgstr "Vevői megrendelési statisztikák"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_res_company
|
#: model:ir.model,name:sale_stock.model_res_company
|
||||||
|
@ -441,8 +444,8 @@ msgstr ""
|
||||||
" kiválasztott felhasználó és kiválasztott dátum időkimutatás "
|
" kiválasztott felhasználó és kiválasztott dátum időkimutatás "
|
||||||
"sor tételeibe, ennek értelmében bármilyen módon létrehozhat, szerkeszthet "
|
"sor tételeibe, ennek értelmében bármilyen módon létrehozhat, szerkeszthet "
|
||||||
"és törölhet \n"
|
"és törölhet \n"
|
||||||
" és automatikusan létrehoz terv feladatokat a beszerzés "
|
" és automatikusan létrehozhat terv feladatokat a beszerzés "
|
||||||
"soraiból.\n"
|
"tétel soraiból.\n"
|
||||||
" Ez a project_timesheet és project_mrp modult telepíti."
|
" Ez a project_timesheet és project_mrp modult telepíti."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
|
@ -452,7 +455,7 @@ msgid ""
|
||||||
"order."
|
"order."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lehetővé teszi különböző szállítási és számlázási cím meghatározását a "
|
"Lehetővé teszi különböző szállítási és számlázási cím meghatározását a "
|
||||||
"megrendelésekhez."
|
"vásárlói megrendelésekhez."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,note:sale_stock.process_node_saleprocurement0
|
#: model:process.node,note:sale_stock.process_node_saleprocurement0
|
||||||
|
@ -460,8 +463,8 @@ msgid ""
|
||||||
"One Procurement order for each sales order line and for each of the "
|
"One Procurement order for each sales order line and for each of the "
|
||||||
"components."
|
"components."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Egy beszerzési megbízás minden egyes értékesítési megbízási sorhoz és minden "
|
"Egy beszerzési megbízás minden egyes vásárlói megrendelés tétel sorhoz és "
|
||||||
"egyes alkotóelemhez."
|
"minden egyes alkotóelemhez."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
|
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
|
||||||
|
@ -490,14 +493,14 @@ msgid ""
|
||||||
"instead of delivering each product when it is available. This may have an "
|
"instead of delivering each product when it is available. This may have an "
|
||||||
"impact on the shipping price."
|
"impact on the shipping price."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A megrendelések alapértelmezetten az összes termék egyszerre történő "
|
"A vásárlói megrendelések alapértelmezetten az összes termék egyszerre "
|
||||||
"kiszállítására van beállítva, nem pedig az egyes termékek elérhetőségétől "
|
"történő kiszállítására van beállítva, nem pedig az egyes termékek "
|
||||||
"függően. Ez befolyással lehet a szállítási árra."
|
"elérhetőségétől függően. Ez befolyással lehet a szállítási árra."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: selection:sale.config.settings,default_order_policy:0
|
#: selection:sale.config.settings,default_order_policy:0
|
||||||
msgid "Invoice based on sales orders"
|
msgid "Invoice based on sales orders"
|
||||||
msgstr "Megrendeléseken alapuló számla"
|
msgstr "Vásárlói megrendeléseken alapuló számla"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
|
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
|
||||||
|
@ -517,7 +520,8 @@ msgid ""
|
||||||
"In order to delete a confirmed sales order, you must cancel it.\n"
|
"In order to delete a confirmed sales order, you must cancel it.\n"
|
||||||
"To do so, you must first cancel related picking for delivery orders."
|
"To do so, you must first cancel related picking for delivery orders."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Egy visszaigazolt megrendelés törléséhez, először vissza kell azt vonni.\n"
|
"Egy visszaigazolt vásárlói megrendelés törléséhez, először vissza kell azt "
|
||||||
|
"vonni.\n"
|
||||||
"Ehhez, először az ide tartozó megrendelési kiválogatási listákat kell "
|
"Ehhez, először az ide tartozó megrendelési kiválogatási listákat kell "
|
||||||
"törölni."
|
"törölni."
|
||||||
|
|
||||||
|
@ -534,7 +538,7 @@ msgstr "Kiszállított"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
|
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
|
||||||
msgid "Create Invoice"
|
msgid "Create Invoice"
|
||||||
msgstr "Számla készítése"
|
msgstr "Számla létrehozás"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: field:sale.config.settings,task_work:0
|
#: field:sale.config.settings,task_work:0
|
||||||
|
@ -544,14 +548,14 @@ msgstr "Számlák készítése a feladat tevékenységek alapján"
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
|
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
|
||||||
msgid "Sales Advance Payment Invoice"
|
msgid "Sales Advance Payment Invoice"
|
||||||
msgstr "Értékesítési Fizetési számla"
|
msgstr "Vevői díjbekérő előlegszámla"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: code:addons/sale_stock/sale_stock.py:523
|
#: code:addons/sale_stock/sale_stock.py:523
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You must first cancel stock moves attached to this sales order line."
|
msgid "You must first cancel stock moves attached to this sales order line."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Először érvénytelenítenie kell az ehhez az értékesítési megbízási sorhoz "
|
"Először érvénytelenítenie kell az ehhez a vásárlói megrendelési tétel sorhoz "
|
||||||
"tartozó készletmozgásokat."
|
"tartozó készletmozgásokat."
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
|
@ -569,12 +573,12 @@ msgstr "Nemzetközi Kereskedelmi Feltételek"
|
||||||
#: code:addons/sale_stock/sale_stock.py:522
|
#: code:addons/sale_stock/sale_stock.py:522
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Cannot cancel sales order line!"
|
msgid "Cannot cancel sales order line!"
|
||||||
msgstr "A megrendelés sorát nem tudja visszavonni!"
|
msgstr "A vásárlói megrendelés tétel sorát nem tudja visszavonni!"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
|
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
|
||||||
msgid "Cancel Assignation"
|
msgid "Cancel Assignation"
|
||||||
msgstr "Számla sztornó"
|
msgstr "Hozzárendelés megszüntetése"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
|
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
|
||||||
|
@ -608,7 +612,7 @@ msgstr ""
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
|
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
|
||||||
msgid "Sales Order Requisition"
|
msgid "Sales Order Requisition"
|
||||||
msgstr "Értékesítési megbízás igénylés"
|
msgstr "Vásárlói megrendelés igény"
|
||||||
|
|
||||||
#. module: sale_stock
|
#. module: sale_stock
|
||||||
#: model:process.transition,name:sale_stock.process_transition_deliver0
|
#: model:process.transition,name:sale_stock.process_transition_deliver0
|
||||||
|
|
|
@ -39,57 +39,10 @@ class sale_report(osv.osv):
|
||||||
('cancel', 'Cancelled')
|
('cancel', 'Cancelled')
|
||||||
], 'Order Status', readonly=True),
|
], 'Order Status', readonly=True),
|
||||||
}
|
}
|
||||||
def init(self, cr):
|
|
||||||
tools.drop_view_if_exists(cr, 'sale_report')
|
def _select(self):
|
||||||
# TODO: make parent view extensible similarly to invoice analysis and
|
return super(sale_report, self)._select() + ", s.warehouse_id as warehouse_id, s.shipped, s.shipped::integer as shipped_qty_1"
|
||||||
# remove the duplication
|
|
||||||
cr.execute("""
|
def _group_by(self):
|
||||||
create or replace view sale_report as (
|
return super(sale_report, self)._group_by() + ", s.warehouse_id, s.shipped"
|
||||||
select
|
|
||||||
min(l.id) as id,
|
|
||||||
l.product_id as product_id,
|
|
||||||
t.uom_id as product_uom,
|
|
||||||
sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty,
|
|
||||||
sum(l.product_uom_qty * l.price_unit * (100.0-l.discount) / 100.0) as price_total,
|
|
||||||
count(*) as nbr,
|
|
||||||
s.date_order as date,
|
|
||||||
s.date_confirm as date_confirm,
|
|
||||||
to_char(s.date_order, 'YYYY') as year,
|
|
||||||
to_char(s.date_order, 'MM') as month,
|
|
||||||
to_char(s.date_order, 'YYYY-MM-DD') as day,
|
|
||||||
s.partner_id as partner_id,
|
|
||||||
s.user_id as user_id,
|
|
||||||
s.company_id as company_id,
|
|
||||||
s.warehouse_id as warehouse_id,
|
|
||||||
extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,
|
|
||||||
s.state,
|
|
||||||
t.categ_id as categ_id,
|
|
||||||
s.shipped,
|
|
||||||
s.shipped::integer as shipped_qty_1,
|
|
||||||
s.pricelist_id as pricelist_id,
|
|
||||||
s.project_id as analytic_account_id
|
|
||||||
from
|
|
||||||
sale_order_line l
|
|
||||||
join sale_order s on (l.order_id=s.id)
|
|
||||||
left join product_product p on (l.product_id=p.id)
|
|
||||||
left join product_template t on (p.product_tmpl_id=t.id)
|
|
||||||
left join product_uom u on (u.id=l.product_uom)
|
|
||||||
left join product_uom u2 on (u2.id=t.uom_id)
|
|
||||||
group by
|
|
||||||
l.product_id,
|
|
||||||
l.order_id,
|
|
||||||
t.uom_id,
|
|
||||||
t.categ_id,
|
|
||||||
s.date_order,
|
|
||||||
s.date_confirm,
|
|
||||||
s.partner_id,
|
|
||||||
s.user_id,
|
|
||||||
s.warehouse_id,
|
|
||||||
s.company_id,
|
|
||||||
s.state,
|
|
||||||
s.shipped,
|
|
||||||
s.pricelist_id,
|
|
||||||
s.project_id
|
|
||||||
)
|
|
||||||
""")
|
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,10 @@
|
||||||
<field name="model">sale.report</field>
|
<field name="model">sale.report</field>
|
||||||
<field name="inherit_id" ref="sale.view_order_product_search"/>
|
<field name="inherit_id" ref="sale.view_order_product_search"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
<filter name="Sales" position="after">
|
||||||
|
<separator/>
|
||||||
|
<filter icon="terp-accessories-archiver" string="Picked" domain="[('shipped','=',True)]"/>
|
||||||
|
</filter>
|
||||||
<xpath expr="//group/filter[@string='Status']" position="after">
|
<xpath expr="//group/filter[@string='Status']" position="after">
|
||||||
<filter string="Warehouse" context="{'group_by':'warehouse_id'}"/>
|
<filter string="Warehouse" context="{'group_by':'warehouse_id'}"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
import openerp
|
||||||
|
from openerp import SUPERUSER_ID
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
|
|
||||||
|
@ -75,12 +77,13 @@ class sale_configuration(osv.osv_memory):
|
||||||
}
|
}
|
||||||
|
|
||||||
def set_sale_defaults(self, cr, uid, ids, context=None):
|
def set_sale_defaults(self, cr, uid, ids, context=None):
|
||||||
|
if uid != SUPERUSER_ID and not self.pool['res.users'].has_group(cr, uid, 'base.group_erp_manager'):
|
||||||
|
raise openerp.exceptions.AccessError(_("Only administrators can change the settings"))
|
||||||
ir_values = self.pool.get('ir.values')
|
ir_values = self.pool.get('ir.values')
|
||||||
ir_model_data = self.pool.get('ir.model.data')
|
|
||||||
wizard = self.browse(cr, uid, ids)[0]
|
wizard = self.browse(cr, uid, ids)[0]
|
||||||
|
|
||||||
default_picking_policy = 'one' if wizard.default_picking_policy else 'direct'
|
default_picking_policy = 'one' if wizard.default_picking_policy else 'direct'
|
||||||
ir_values.set_default(cr, uid, 'sale.order', 'picking_policy', default_picking_policy)
|
ir_values.set_default(cr, SUPERUSER_ID, 'sale.order', 'picking_policy', default_picking_policy)
|
||||||
res = super(sale_configuration, self).set_sale_defaults(cr, uid, ids, context)
|
res = super(sale_configuration, self).set_sale_defaults(cr, uid, ids, context)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ class sale_order(osv.osv):
|
||||||
company_id = self.pool.get('res.users')._get_company(cr, uid, context=context)
|
company_id = self.pool.get('res.users')._get_company(cr, uid, context=context)
|
||||||
warehouse_ids = self.pool.get('stock.warehouse').search(cr, uid, [('company_id', '=', company_id)], context=context)
|
warehouse_ids = self.pool.get('stock.warehouse').search(cr, uid, [('company_id', '=', company_id)], context=context)
|
||||||
if not warehouse_ids:
|
if not warehouse_ids:
|
||||||
raise osv.except_osv(_('Error!'), _('There is no warehouse defined for selected company.'))
|
return False
|
||||||
return warehouse_ids[0]
|
return warehouse_ids[0]
|
||||||
|
|
||||||
def _get_shipped(self, cr, uid, ids, name, args, context=None):
|
def _get_shipped(self, cr, uid, ids, name, args, context=None):
|
||||||
|
@ -371,7 +371,7 @@ class sale_order_line(osv.osv):
|
||||||
if not isMto:
|
if not isMto:
|
||||||
uom2 = False
|
uom2 = False
|
||||||
if uom:
|
if uom:
|
||||||
uom2 = product_uom_obj.browse(cr, uid, uom)
|
uom2 = product_uom_obj.browse(cr, uid, uom, context=context)
|
||||||
if product_obj.uom_id.category_id.id != uom2.category_id.id:
|
if product_obj.uom_id.category_id.id != uom2.category_id.id:
|
||||||
uom = False
|
uom = False
|
||||||
if not uom2:
|
if not uom2:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue