[MERGE] Merged with main addons.
bzr revid: tde@openerp.com-20120601113625-c9w0kmnw1dzvjswx
This commit is contained in:
@@ -201,17 +201,18 @@ class account_invoice(osv.osv):
|
||||
|
||||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('cancel','Cancelled'),
|
||||
('proforma','Pro-forma'),
|
||||
('proforma2','Pro-forma'),
|
||||
('open','Open'),
|
||||
('paid','Paid')
|
||||
],'Status', select=True, readonly=True,
|
||||
('paid','Paid'),
|
||||
('cancel','Cancelled'),
|
||||
],'State', select=True, readonly=True,
|
||||
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \
|
||||
\n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \
|
||||
\n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
|
||||
\n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \
|
||||
\n* The \'Cancelled\' state is used when user cancel invoice.'),
|
||||
'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."),
|
||||
'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"),
|
||||
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True,
|
||||
help="If you use payment terms, the due date will be computed automatically at the generation "\
|
||||
@@ -286,6 +287,7 @@ class account_invoice(osv.osv):
|
||||
'check_total': 0.0,
|
||||
'internal_number': False,
|
||||
'user_id': lambda s, cr, u, c: u,
|
||||
'sent': False,
|
||||
}
|
||||
_sql_constraints = [
|
||||
('number_uniq', 'unique(number, company_id, journal_id, type)', 'Invoice Number must be unique per Company!'),
|
||||
@@ -366,6 +368,47 @@ class account_invoice(osv.osv):
|
||||
else:
|
||||
raise orm.except_orm(_('Unknown Error'), str(e))
|
||||
|
||||
def invoice_print(self, cr, uid, ids, context=None):
|
||||
'''
|
||||
This function prints the invoice and mark it as sent, so that we can see more easily the next step of the workflow
|
||||
'''
|
||||
assert len(ids) == 1, 'This option should only be used for a single id at a time'
|
||||
self.write(cr, uid, ids, {'sent': True}, context=context)
|
||||
datas = {
|
||||
'ids': ids,
|
||||
'model': 'account.invoice',
|
||||
'form': self.read(cr, uid, ids[0], context=context)
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.invoice',
|
||||
'datas': datas,
|
||||
'nodestroy' : True
|
||||
}
|
||||
|
||||
def action_invoice_sent(self, cr, uid, ids, context=None):
|
||||
'''
|
||||
This function opens a window to compose an email, with the edi invoice template message loaded by default
|
||||
'''
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
template = mod_obj.get_object_reference(cr, uid, 'account', 'email_template_edi_invoice')
|
||||
template_id = template and template[1] or False
|
||||
res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')
|
||||
res_id = res and res[1] or False
|
||||
ctx = dict(context, active_model='account.invoice', active_id=ids[0])
|
||||
ctx.update({'mail.compose.template_id': template_id})
|
||||
return {
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'mail.compose.message',
|
||||
'views': [(res_id, 'form')],
|
||||
'view_id': res_id,
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
'context': ctx,
|
||||
'nodestroy': True,
|
||||
}
|
||||
|
||||
def confirm_paid(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -604,6 +647,7 @@ class account_invoice(osv.osv):
|
||||
'move_name':False,
|
||||
'internal_number': False,
|
||||
'period_id': False,
|
||||
'sent': False,
|
||||
})
|
||||
if 'date_invoice' not in default:
|
||||
default.update({
|
||||
@@ -1664,4 +1708,14 @@ class res_partner(osv.osv):
|
||||
|
||||
res_partner()
|
||||
|
||||
class mail_message(osv.osv):
|
||||
_name = 'mail.message'
|
||||
_inherit = 'mail.message'
|
||||
|
||||
def _postprocess_sent_message(self, cr, uid, message, context=None):
|
||||
if message.model == 'account.invoice':
|
||||
self.pool.get('account.invoice').write(cr, uid, [message.res_id], {'sent':True}, context=context)
|
||||
return super(mail_message, self)._postprocess_sent_message(cr, uid, message=message, context=context)
|
||||
|
||||
mail_message()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="invoice_open" states="draft,proforma2" string="Approve"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid'/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
|
||||
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid'/>
|
||||
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
|
||||
<div class="oe_right">
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
|
||||
</div>
|
||||
@@ -262,13 +262,15 @@
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
|
||||
<button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
|
||||
<button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
|
||||
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
|
||||
<button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid'/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/>
|
||||
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='paid'/>
|
||||
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/>
|
||||
<!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/-->
|
||||
<div class="oe_right">
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/>
|
||||
</div>
|
||||
@@ -291,6 +293,7 @@
|
||||
<newline/>
|
||||
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" groups="account.group_account_user"/>
|
||||
<field name="name"/>
|
||||
<field name="sent"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Invoice">
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
string="Invoices"
|
||||
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')"
|
||||
usage="default"
|
||||
multi="True"/>
|
||||
/>
|
||||
<report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/>
|
||||
<report auto="False" id="account_intracom" menu="False" model="account.move.line" name="account.intracom" string="IntraCom"/>
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
from osv import fields, osv, orm
|
||||
from edi import EDIMixin
|
||||
from edi.models import edi
|
||||
|
||||
INVOICE_LINE_EDI_STRUCT = {
|
||||
'name': True,
|
||||
@@ -71,6 +72,16 @@ INVOICE_EDI_STRUCT = {
|
||||
class account_invoice(osv.osv, EDIMixin):
|
||||
_inherit = 'account.invoice'
|
||||
|
||||
def action_invoice_sent(self, cr, uid, ids, context=None):
|
||||
""""Override this method to add a link to mail"""
|
||||
if context is None:
|
||||
context = {}
|
||||
invoice_objs = self.browse(cr, uid, ids, context=context)
|
||||
edi_token = self.pool.get('edi.document').export_edi(cr, uid, invoice_objs, context = context)[0]
|
||||
web_root_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
|
||||
ctx = dict(context, edi_web_url_view=edi.EDI_VIEW_WEB_URL % (web_root_url, cr.dbname, edi_token))
|
||||
return super(account_invoice, self).action_invoice_sent(cr, uid, ids, context=ctx)
|
||||
|
||||
def edi_export(self, cr, uid, records, edi_struct=None, context=None):
|
||||
"""Exports a supplier or customer invoice"""
|
||||
edi_struct = dict(edi_struct or INVOICE_EDI_STRUCT)
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:54+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-22 12:17+0000\n"
|
||||
"Last-Translator: Francois Degrave <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:08+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:1200
|
||||
@@ -3767,7 +3767,7 @@ msgstr "Date"
|
||||
#. module: account
|
||||
#: view:account.move:0
|
||||
msgid "Post"
|
||||
msgstr "Message"
|
||||
msgstr "Comptabiliser"
|
||||
|
||||
#. module: account
|
||||
#: view:account.unreconcile:0
|
||||
@@ -10886,7 +10886,7 @@ msgstr "Rechercher une facture"
|
||||
#: view:account.invoice.report:0
|
||||
#: model:ir.actions.act_window,name:account.action_account_invoice_refund
|
||||
msgid "Refund"
|
||||
msgstr "Créer un avoir"
|
||||
msgstr "Avoir"
|
||||
|
||||
#. module: account
|
||||
#: model:email.template,body_text:account.email_template_edi_invoice
|
||||
|
||||
+21
-15
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-15 06:17+0000\n"
|
||||
"PO-Revision-Date: 2012-06-01 01:29+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-16 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 15247)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
@@ -1662,7 +1662,7 @@ msgstr "切り離された仕訳帳順序"
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Responsible"
|
||||
msgstr "責任担当"
|
||||
msgstr "担当"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
|
||||
@@ -1679,7 +1679,7 @@ msgstr "請求書のキャンセル:現在の請求書をキャンセルする
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
|
||||
msgid "Invoicing"
|
||||
msgstr "請求"
|
||||
msgstr "請求中"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/report/account_partner_balance.py:115
|
||||
@@ -2615,7 +2615,7 @@ msgstr "銀行消し込み"
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
msgid "Disc.(%)"
|
||||
msgstr "ディスク(%)"
|
||||
msgstr "割引(%)"
|
||||
|
||||
#. module: account
|
||||
#: report:account.general.ledger:0
|
||||
@@ -4445,7 +4445,7 @@ msgstr ""
|
||||
#: view:account.tax:0
|
||||
#: view:account.tax.template:0
|
||||
msgid "Keep empty to use the income account"
|
||||
msgstr "損益勘定を使うためは空のままとして下さい。"
|
||||
msgstr "収益勘定を使うためは空のままとして下さい。"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:3299
|
||||
@@ -5300,7 +5300,7 @@ msgstr "年度エントリー仕訳帳の末尾"
|
||||
#: code:addons/account/wizard/account_move_journal.py:63
|
||||
#, python-format
|
||||
msgid "Configuration Error !"
|
||||
msgstr "設定エラー。"
|
||||
msgstr "設定エラーです。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.payment.term.line,value_amount:0
|
||||
@@ -5592,7 +5592,7 @@ msgstr "買掛金合計"
|
||||
#: model:account.account.type,name:account.data_account_type_income
|
||||
#: model:account.financial.report,name:account.account_financial_report_income0
|
||||
msgid "Income"
|
||||
msgstr "収益"
|
||||
msgstr "収入"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.bank.statement.line,type:0
|
||||
@@ -5888,7 +5888,7 @@ msgstr "サブスクリプション期間中"
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
msgid "Fiscal Position Remark :"
|
||||
msgstr "会計ポジション注釈:"
|
||||
msgstr "会計ポジションの注釈:"
|
||||
|
||||
#. module: account
|
||||
#: view:analytic.entries.report:0
|
||||
@@ -7024,7 +7024,7 @@ msgstr "財務レポートの階層"
|
||||
#: view:analytic.entries.report:0
|
||||
#: field:analytic.entries.report,product_uom_id:0
|
||||
msgid "Product UOM"
|
||||
msgstr "製品単位"
|
||||
msgstr "製品の単位"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
|
||||
@@ -7335,7 +7335,7 @@ msgstr ""
|
||||
#: field:account.invoice.tax,invoice_id:0
|
||||
#: model:ir.model,name:account.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr "請求行"
|
||||
msgstr "請求書行"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
@@ -7590,7 +7590,7 @@ msgstr "仕訳帳の仕訳帳エントリー記帳"
|
||||
#. module: account
|
||||
#: view:product.product:0
|
||||
msgid "Sale Taxes"
|
||||
msgstr "消費税(売上)"
|
||||
msgstr "消費税"
|
||||
|
||||
#. module: account
|
||||
#: field:account.financial.report,name:0
|
||||
@@ -8156,7 +8156,7 @@ msgstr "一部が支払済の請求書のキャンセルはできません。ま
|
||||
#. module: account
|
||||
#: field:account.chart.template,property_account_income_categ:0
|
||||
msgid "Income Category Account"
|
||||
msgstr "収益分類のアカウント"
|
||||
msgstr "収入分類のアカウント"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account,adjusted_balance:0
|
||||
@@ -9454,7 +9454,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Pending"
|
||||
msgstr "保留"
|
||||
msgstr "保留中"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_analyticinvoice0
|
||||
@@ -10758,3 +10758,9 @@ msgstr "仕訳帳エントリーの買掛金、または買掛金の残差金額
|
||||
|
||||
#~ msgid "Description On Invoices"
|
||||
#~ msgstr "請求書説明"
|
||||
|
||||
#~ msgid "Write-Off journal"
|
||||
#~ msgstr "償却仕訳帳"
|
||||
|
||||
#~ msgid "Full Payment"
|
||||
#~ msgstr "全支払"
|
||||
|
||||
+48
-44
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:57+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:04+0000\n"
|
||||
"Last-Translator: ThinkOpen Solutions <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
@@ -93,7 +93,7 @@ msgstr "Antiguidade de saldos de clientes até hoje."
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_invoiceimport0
|
||||
msgid "Import from invoice or payment"
|
||||
msgstr "Importar da fatura ou do pagamento"
|
||||
msgstr "Importar da fatura ou pagamento"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
|
||||
@@ -274,7 +274,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
msgid "Sub-Total :"
|
||||
msgstr "Sub-total :"
|
||||
msgstr "Sub-Total :"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
|
||||
@@ -404,12 +404,12 @@ msgstr "account.bank.accounts.wizard"
|
||||
#: field:account.move.line,date_created:0
|
||||
#: field:account.move.reconcile,create_date:0
|
||||
msgid "Creation date"
|
||||
msgstr "Data de criação"
|
||||
msgstr "Data da Criação"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.journal,type:0
|
||||
msgid "Purchase Refund"
|
||||
msgstr "Nota de Crédito de Compras"
|
||||
msgstr "Reembolso da Compra"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.journal,type:0
|
||||
@@ -686,7 +686,7 @@ msgstr "Fechar periodo"
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_common_partner_report
|
||||
msgid "Account Common Partner Report"
|
||||
msgstr "Relatório Comum de Conta de Paceiros"
|
||||
msgstr "Relatório Comum de Conta de Parceiros"
|
||||
|
||||
#. module: account
|
||||
#: field:account.fiscalyear.close,period_id:0
|
||||
@@ -715,7 +715,7 @@ msgstr "Todos os movimentos a conciliar devem ser da mesma empresa."
|
||||
#: model:ir.actions.act_window,name:account.action_aged_receivable
|
||||
#, python-format
|
||||
msgid "Receivable Accounts"
|
||||
msgstr "Contas a receber"
|
||||
msgstr "Contas a Receber"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.move.line:0
|
||||
@@ -873,6 +873,10 @@ msgid ""
|
||||
"or Loss you'd realized if those transactions were ended today. Only for "
|
||||
"accounts having a secondary currency set."
|
||||
msgstr ""
|
||||
"Ao fazer transações multi-moeda, pode perder ou ganhar alguma quantia devida "
|
||||
"a alterações da taxa de câmbio. Este menu dá uma previsão do ganho ou perda "
|
||||
"que percebeu se essas transações foram terminadas hoje. Somente para contas "
|
||||
"com um conjunto moeda secundária."
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
@@ -881,7 +885,7 @@ msgstr ""
|
||||
#: selection:report.account.sales,month:0
|
||||
#: selection:report.account_type.sales,month:0
|
||||
msgid "September"
|
||||
msgstr "setembro"
|
||||
msgstr "Setembro"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.subscription,period_type:0
|
||||
@@ -1000,7 +1004,7 @@ msgstr "Responsabilidade"
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr "Filtros Extendidos..."
|
||||
msgstr "Filtros Avançados..."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_account_central_journal
|
||||
@@ -1157,7 +1161,7 @@ msgstr "Em disputa"
|
||||
#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
|
||||
#: model:ir.ui.menu,name:account.journal_cash_move_lines
|
||||
msgid "Cash Registers"
|
||||
msgstr "Registos de Caixa"
|
||||
msgstr "Caixa Registadora"
|
||||
|
||||
#. module: account
|
||||
#: report:account.analytic.account.journal:0
|
||||
@@ -1289,7 +1293,7 @@ msgid ""
|
||||
"You can not use this general account in this journal, check the tab 'Entry "
|
||||
"Controls' on the related journal !"
|
||||
msgstr ""
|
||||
"Não pode usar esta conta geral nesta diário, verificar 'Controles de "
|
||||
"Não pode usar esta conta geral neste diário, verificar 'Controles de "
|
||||
"Entrada' do guia do diário relacionado!"
|
||||
|
||||
#. module: account
|
||||
@@ -1434,7 +1438,7 @@ msgstr "Saldo de abertura"
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr "Voltar a rascunho"
|
||||
msgstr "Redefinir para rascunho"
|
||||
|
||||
#. module: account
|
||||
#: view:wizard.multi.charts.accounts:0
|
||||
@@ -1518,7 +1522,7 @@ msgstr "Calcular impostos"
|
||||
#: field:account.chart.template,code_digits:0
|
||||
#: field:wizard.multi.charts.accounts,code_digits:0
|
||||
msgid "# of Digits"
|
||||
msgstr "Nº de dígitos"
|
||||
msgstr "# de Dígitos"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,entry_posted:0
|
||||
@@ -1529,7 +1533,7 @@ msgstr "Saltar o estado \"Rascunho\" para lançamentos manuais"
|
||||
#: view:account.invoice.report:0
|
||||
#: field:account.invoice.report,price_total:0
|
||||
msgid "Total Without Tax"
|
||||
msgstr "Total, com taxas"
|
||||
msgstr "Total sem Impostos"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_move_journal_line
|
||||
@@ -1547,7 +1551,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
msgid "# of Entries "
|
||||
msgstr "Nº. de movimentos "
|
||||
msgstr "# de Entradas "
|
||||
|
||||
#. module: account
|
||||
#: help:account.fiscal.position,active:0
|
||||
@@ -1652,7 +1656,7 @@ msgstr "Conta de imposto para notas de crédito"
|
||||
#: view:account.bank.statement:0
|
||||
#: field:account.bank.statement,line_ids:0
|
||||
msgid "Statement lines"
|
||||
msgstr "Linhas de extrato"
|
||||
msgstr "Linhas do extrato"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_bank_statement_tree
|
||||
@@ -1681,7 +1685,7 @@ msgstr "Data/Código"
|
||||
#: view:analytic.entries.report:0
|
||||
#: field:analytic.entries.report,general_account_id:0
|
||||
msgid "General Account"
|
||||
msgstr "Contas gerais"
|
||||
msgstr "Conta Geral"
|
||||
|
||||
#. module: account
|
||||
#: field:res.partner,debit_limit:0
|
||||
@@ -1730,8 +1734,8 @@ msgid ""
|
||||
"Cancel Invoice: Creates the refund invoice, validate and reconcile it to "
|
||||
"cancel the current invoice."
|
||||
msgstr ""
|
||||
"Anular fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura atual, "
|
||||
"Ficando as duas no estado pago."
|
||||
"Cancelar fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura "
|
||||
"atual, Ficando as duas no estado pago."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
|
||||
@@ -1865,7 +1869,7 @@ msgstr "Erro!"
|
||||
#. module: account
|
||||
#: sql_constraint:account.move.line:0
|
||||
msgid "Wrong credit or debit value in accounting entry !"
|
||||
msgstr "Valor de crédito ou débito errado no movimento contabilístico !"
|
||||
msgstr "Valor de Crédito ou débito errado na entrada de contabilidade!"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
@@ -1898,7 +1902,7 @@ msgstr "Baseado em"
|
||||
#: field:account.invoice,move_id:0
|
||||
#: field:account.invoice,move_name:0
|
||||
msgid "Journal Entry"
|
||||
msgstr "Lançamento de diário"
|
||||
msgstr "Entradas no diário"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
@@ -1932,7 +1936,7 @@ msgstr "Venda / Compra Diário"
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Analytic account"
|
||||
msgstr "Conta analítica"
|
||||
msgstr "Conta Analítica"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_bank_statement.py:339
|
||||
@@ -2045,7 +2049,7 @@ msgstr ""
|
||||
#: view:account.invoice:0
|
||||
#: view:report.invoice.created:0
|
||||
msgid "Untaxed Amount"
|
||||
msgstr "Valor sem Impostos"
|
||||
msgstr "Montante sem Impostos"
|
||||
|
||||
#. module: account
|
||||
#: help:account.tax,active:0
|
||||
@@ -2053,7 +2057,7 @@ msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the tax "
|
||||
"without removing it."
|
||||
msgstr ""
|
||||
"Se o campo activo for definido como 'Falso', ele permitirá que oculte o "
|
||||
"Se o campo ativo for definido como 'Falso', ele permitirá que oculte o "
|
||||
"imposto sem o remover."
|
||||
|
||||
#. module: account
|
||||
@@ -2123,7 +2127,7 @@ msgstr "Importar da fatura"
|
||||
#: selection:report.account.sales,month:0
|
||||
#: selection:report.account_type.sales,month:0
|
||||
msgid "January"
|
||||
msgstr "janeiro"
|
||||
msgstr "Janeiro"
|
||||
|
||||
#. module: account
|
||||
#: view:account.journal:0
|
||||
@@ -2261,7 +2265,7 @@ msgstr "ECNJ"
|
||||
#: view:account.subscription:0
|
||||
#: selection:account.subscription,state:0
|
||||
msgid "Running"
|
||||
msgstr "Em execução"
|
||||
msgstr "Em Funcionamento"
|
||||
|
||||
#. module: account
|
||||
#: view:account.chart.template:0
|
||||
@@ -2307,7 +2311,7 @@ msgstr "# de Qt. de Artigos "
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr "Template Artigo"
|
||||
msgstr "Template do Artigo"
|
||||
|
||||
#. module: account
|
||||
#: report:account.account.balance:0
|
||||
@@ -2505,7 +2509,7 @@ msgstr "Progresso de 30% ao fim de 30 dias"
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
msgid "Unreconciled entries"
|
||||
msgstr "Movimentos Dereconciliado"
|
||||
msgstr "Movimentos Desreconciliados"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.tax,base_code_id:0
|
||||
@@ -2606,7 +2610,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
msgid "Select period"
|
||||
msgstr "Seleccione o período"
|
||||
msgstr "Selecione o período"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_account_pp_statements
|
||||
@@ -2679,7 +2683,7 @@ msgstr "Erro de Configuração!"
|
||||
#. module: account
|
||||
#: field:account.invoice.report,price_average:0
|
||||
msgid "Average Price"
|
||||
msgstr "Preço médio"
|
||||
msgstr "Preço Médio"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
@@ -2824,8 +2828,8 @@ msgid ""
|
||||
"always skipping that state."
|
||||
msgstr ""
|
||||
"Marque esta caixa se não pretende que os novos movimentos do diário passem "
|
||||
"através do estado \"rascunho\" e vão directamente para o estado "
|
||||
"\"Publicado\" sem qualquer validação manual.\n"
|
||||
"através do estado 'rascunho' e vão diretamente para o estado 'Publicado' sem "
|
||||
"qualquer validação manual.\n"
|
||||
"Note que os movimentos do diário que são automaticamente criados pelo "
|
||||
"sistema também ignoram este estado."
|
||||
|
||||
@@ -2949,7 +2953,7 @@ msgstr "Obrigatório"
|
||||
#: field:product.category,property_account_expense_categ:0
|
||||
#: field:product.template,property_account_expense:0
|
||||
msgid "Expense Account"
|
||||
msgstr "Conta de gastos"
|
||||
msgstr "Conta de Despesas"
|
||||
|
||||
#. module: account
|
||||
#: help:account.invoice,period_id:0
|
||||
@@ -2999,7 +3003,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"A data de maturidade dos movimentos gerados por este modelo. Pode escolher "
|
||||
"entre a data de criação ou a data de criação dos movimentos mais os termos "
|
||||
"de pagamento dos Paceiros."
|
||||
"de pagamento dos Parceiros."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_finance_accounting
|
||||
@@ -3023,7 +3027,7 @@ msgstr "Lucro e prejuízo"
|
||||
#: model:ir.model,name:account.model_account_fiscal_position
|
||||
#: field:res.partner,property_account_position:0
|
||||
msgid "Fiscal Position"
|
||||
msgstr "Posição fiscal"
|
||||
msgstr "Posição Fiscal"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_invoice.py:735
|
||||
@@ -3044,7 +3048,7 @@ msgstr "Um parceiro por página"
|
||||
#: field:account.account,child_parent_ids:0
|
||||
#: field:account.account.template,child_parent_ids:0
|
||||
msgid "Children"
|
||||
msgstr "Contas-filho"
|
||||
msgstr "Descendentes"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice,type:0
|
||||
@@ -3097,7 +3101,7 @@ msgstr "Transação a dinheiro"
|
||||
#. module: account
|
||||
#: view:res.partner:0
|
||||
msgid "Bank account"
|
||||
msgstr "Conta bancária"
|
||||
msgstr "Conta Bancária"
|
||||
|
||||
#. module: account
|
||||
#: field:account.chart.template,tax_template_ids:0
|
||||
@@ -3190,7 +3194,7 @@ msgstr "BNK"
|
||||
#. module: account
|
||||
#: field:account.move.line,analytic_lines:0
|
||||
msgid "Analytic lines"
|
||||
msgstr "Linhas da analítica"
|
||||
msgstr "Linhas analíticas"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
@@ -3220,7 +3224,7 @@ msgstr "Começa em"
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_partner_ledger
|
||||
msgid "Account Partner Ledger"
|
||||
msgstr "Balancete de Contas de Terceiro"
|
||||
msgstr "Balancete de Contas do Parceiro"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal.column,sequence:0
|
||||
@@ -8774,7 +8778,7 @@ msgstr "Diário de Compra"
|
||||
#: view:account.invoice.refund:0
|
||||
msgid "Refund Invoice: Creates the refund invoice, ready for editing."
|
||||
msgstr ""
|
||||
"Nota de crédito: Emite uma nota de crédito, para ser editada / confirmada à "
|
||||
"Estornar fatura: Emite uma nota de crédito, para ser editada / confirmada à "
|
||||
"mão."
|
||||
|
||||
#. module: account
|
||||
@@ -10690,7 +10694,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.payment.term:0
|
||||
msgid "Description on Invoices"
|
||||
msgstr ""
|
||||
msgstr "Descrição de Faturas"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_analytic_chart
|
||||
|
||||
@@ -7,20 +7,20 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 10:01+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"PO-Revision-Date: 2012-05-23 07:32+0000\n"
|
||||
"Last-Translator: VTTW <victso@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
#: view:analytic.entries.report:0
|
||||
msgid "last month"
|
||||
msgstr "上月"
|
||||
msgstr "上個月"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
|
||||
@@ -7,25 +7,25 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2010-12-09 09:33+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:05+0000\n"
|
||||
"Last-Translator: Marcelo Almeida <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:32+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,revenue_per_hour:0
|
||||
msgid "Revenue per Time (real)"
|
||||
msgstr ""
|
||||
msgstr "Receita por hora (real)"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,remaining_ca:0
|
||||
msgid "Computed using the formula: Max Invoice Price - Invoiced Amount."
|
||||
msgstr ""
|
||||
"Processado com a fórmula: Preço Máximo da Factura - Montante Facturado."
|
||||
"Calculado utilizando a fórmula: Valor Máximo da Fatura - Valor da Fatura"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_worked_date:0
|
||||
@@ -38,11 +38,13 @@ msgid ""
|
||||
"The contracts to be renewed because the deadline is passed or the working "
|
||||
"hours are higher than the allocated hours"
|
||||
msgstr ""
|
||||
"Os contratos a serem renovados, porque o prazo é passado ou as horas de "
|
||||
"trabalho são maiores do que as horas atribuídas"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Pending contracts to renew with your customer"
|
||||
msgstr ""
|
||||
msgstr "Contratos pendentes de renovação com o seu cliente"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,hours_qtt_non_invoiced:0
|
||||
@@ -50,31 +52,33 @@ msgid ""
|
||||
"Number of time (hours/days) (from journal of type 'general') that can be "
|
||||
"invoiced if you invoice based on analytic account."
|
||||
msgstr ""
|
||||
"Número de tempo (horas ou dias) (de Diário do tipo 'geral') que podem ser "
|
||||
"faturados, se fatura com base na conta analítica"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Analytic Accounts with a past deadline in one month."
|
||||
msgstr ""
|
||||
msgstr "Contas Analíticas com um prazo limite ultrapassando um mês."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
msgstr "Grupo por..."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
msgstr "Data final"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Create Invoice"
|
||||
msgstr ""
|
||||
msgstr "Criar Fatura"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_invoice_date:0
|
||||
msgid "Last Invoice Date"
|
||||
msgstr "Data da última factura"
|
||||
msgstr "Data da última fatura"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,theorical_margin:0
|
||||
@@ -87,16 +91,18 @@ msgid ""
|
||||
"Number of time you spent on the analytic account (from timesheet). It "
|
||||
"computes quantities on all journal of type 'general'."
|
||||
msgstr ""
|
||||
"Número de tempo que gastou na conta analítica (da folha de horas). Ele "
|
||||
"calcula quantidades em todos os Diários do tipo 'geral'."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Contracts in progress"
|
||||
msgstr ""
|
||||
msgstr "Contractos em progresso"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,is_overdue_quantity:0
|
||||
msgid "Overdue Quantity"
|
||||
msgstr ""
|
||||
msgstr "Quantidade em atraso"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue
|
||||
@@ -108,6 +114,12 @@ msgid ""
|
||||
"pending accounts and reopen or close the according to the negotiation with "
|
||||
"the customer."
|
||||
msgstr ""
|
||||
"Vai encontrar aqui os contratos a serem renovados, porque o prazo é passado "
|
||||
"ou as horas de trabalho são maiores do que as horas atribuídas. OpenERP "
|
||||
"define automaticamente essas contas analíticas para o estado pendente, a fim "
|
||||
"de emitir um aviso durante a gravação da folha de horas. Vendedores devem "
|
||||
"rever todas as contas pendentes e reabrir ou fechar o acordo com a "
|
||||
"negociação com o cliente."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_theorical:0
|
||||
@@ -117,7 +129,7 @@ msgstr "Retorno Teórico"
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,hours_qtt_non_invoiced:0
|
||||
msgid "Uninvoiced Time"
|
||||
msgstr ""
|
||||
msgstr "Tempo não faturado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_worked_invoiced_date:0
|
||||
@@ -125,13 +137,13 @@ msgid ""
|
||||
"If invoice from the costs, this is the date of the latest work or cost that "
|
||||
"have been invoiced."
|
||||
msgstr ""
|
||||
"Se facturado dos custos, esta é a data do último trabalho ou dos custos que "
|
||||
"foram facturados."
|
||||
"Se faturado dos custos, esta é a data do último trabalho ou dos custos que "
|
||||
"foram faturados."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "To Renew"
|
||||
msgstr ""
|
||||
msgstr "Para renovar"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_worked_date:0
|
||||
@@ -141,24 +153,26 @@ msgstr "Data do Último Custo/Trabalho"
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,hours_qtt_invoiced:0
|
||||
msgid "Invoiced Time"
|
||||
msgstr ""
|
||||
msgstr "Tempo faturado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid ""
|
||||
"A contract in OpenERP is an analytic account having a partner set on it."
|
||||
msgstr ""
|
||||
"Um contrato em OpenERP é um relato analítico a ter num conjunto parceiro "
|
||||
"sobre ele."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,remaining_hours:0
|
||||
msgid "Remaining Time"
|
||||
msgstr ""
|
||||
msgstr "Tempo Restante"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue
|
||||
msgid "Contracts to Renew"
|
||||
msgstr ""
|
||||
msgstr "Contratos para renovar"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,theorical_margin:0
|
||||
@@ -168,7 +182,7 @@ msgstr "Margem Teórica"
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid " +1 Month"
|
||||
msgstr ""
|
||||
msgstr " +1 mês"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,ca_theorical:0
|
||||
@@ -177,29 +191,29 @@ msgid ""
|
||||
"if all these costs have been invoiced at the normal sale price provided by "
|
||||
"the pricelist."
|
||||
msgstr ""
|
||||
"Baseado nos custos que teve no projecto, qual é que seria o rendimento se "
|
||||
"todos estes custos fossem facturados ao preço normal da venda fornecidos "
|
||||
"pela tabela de preço."
|
||||
"Baseado nos custos que teve no projeto, qual é que seria o rendimento se "
|
||||
"todos estes custos fossem faturados ao preço normal da venda fornecidos pela "
|
||||
"tabela de preço."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
msgstr "Pendente"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_to_invoice:0
|
||||
msgid "Uninvoiced Amount"
|
||||
msgstr "Montante não Facturado"
|
||||
msgstr "Montante não Faturado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,real_margin:0
|
||||
msgid "Computed using the formula: Invoiced Amount - Total Costs."
|
||||
msgstr "Processado ao utilizar a fórmula: Montante Facturado - Custo Total."
|
||||
msgstr "Processado ao utilizar a fórmula: Montante Faturado - Custo Total."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Parent"
|
||||
msgstr ""
|
||||
msgstr "Ascendente"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,user_ids:0
|
||||
@@ -221,17 +235,17 @@ msgstr "Resumo de horas por utilizador"
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_invoiced:0
|
||||
msgid "Invoiced Amount"
|
||||
msgstr "Montante Facturado"
|
||||
msgstr "Montante Faturado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_worked_invoiced_date:0
|
||||
msgid "Date of Last Invoiced Cost"
|
||||
msgstr "Data do Último Custo Facturado"
|
||||
msgstr "Data do Último Custo Faturado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
msgstr "Contrato"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,real_margin_rate:0
|
||||
@@ -246,7 +260,7 @@ msgstr "Margem Real"
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,ca_invoiced:0
|
||||
msgid "Total customer invoiced amount for this account."
|
||||
msgstr "Montante da facturação total do cliente para esta conta"
|
||||
msgstr "Montante da faturação total do cliente para esta conta"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month
|
||||
@@ -266,7 +280,7 @@ msgstr "Receita Restante"
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,remaining_hours:0
|
||||
msgid "Computed using the formula: Maximum Time - Total Time"
|
||||
msgstr ""
|
||||
msgstr "Cálculo utilizando a fórmula: Tempo máximo - Tempo Total"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,hours_qtt_invoiced:0
|
||||
@@ -274,6 +288,8 @@ msgid ""
|
||||
"Number of time (hours/days) that can be invoiced plus those that already "
|
||||
"have been invoiced."
|
||||
msgstr ""
|
||||
"Número de tempo (horas ou dias) que pode ser faturado mais aqueles que já "
|
||||
"tenham sido faturados."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,ca_to_invoice:0
|
||||
@@ -281,13 +297,13 @@ msgid ""
|
||||
"If invoice from analytic account, the remaining amount you can invoice to "
|
||||
"the customer based on the total costs."
|
||||
msgstr ""
|
||||
"Se facturado a partir da conta analítica, o montante restante que pode "
|
||||
"facturar ao cliente baseado nos custos totais."
|
||||
"Se faturado a partir da conta analítica, o montante restante que pode "
|
||||
"faturar ao cliente baseado nos custos totais."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,revenue_per_hour:0
|
||||
msgid "Computed using the formula: Invoiced Amount / Total Time"
|
||||
msgstr ""
|
||||
msgstr "Calculado através da fórmula: Valor faturado / Tempo Total"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,total_cost:0
|
||||
@@ -312,38 +328,38 @@ msgstr "Conta Analítica"
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all
|
||||
msgid "Contracts"
|
||||
msgstr ""
|
||||
msgstr "Contractos"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Manager"
|
||||
msgstr ""
|
||||
msgstr "Gestor"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
|
||||
msgid "All Uninvoiced Entries"
|
||||
msgstr "Todas os Movimentos não Facturados"
|
||||
msgstr "Todos os Movimentos não Faturados"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_invoice_date:0
|
||||
msgid "If invoice from the costs, this is the date of the latest invoiced."
|
||||
msgstr ""
|
||||
msgstr "Se for fatura dos custos, esta é a data da última faturada."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Associated Partner"
|
||||
msgstr ""
|
||||
msgstr "Parceiro associado"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
msgstr "Abrir"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Contracts that are not assigned to an account manager."
|
||||
msgstr ""
|
||||
msgstr "Contratos que não são atribuídos a um gestor de conta."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,hours_quantity:0
|
||||
@@ -358,18 +374,12 @@ msgid ""
|
||||
"Total of costs for this account. It includes real costs (from invoices) and "
|
||||
"indirect costs, like time spent on timesheets."
|
||||
msgstr ""
|
||||
"Total de custos para esta conta. Que inclui custos reais (das facturas) e "
|
||||
"Total de custos para esta conta. Que inclui custos reais (das faturas) e "
|
||||
"custos indirectos, como o tempo gasto em folha de horas."
|
||||
|
||||
#~ msgid "Invoicing"
|
||||
#~ msgstr "Facturação"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Number of hours that can be invoiced plus those that already have been "
|
||||
#~ "invoiced."
|
||||
#~ msgstr ""
|
||||
#~ "Número de horas que podem ser facturadas mais as que já foram facturadas."
|
||||
|
||||
#~ msgid "Hours summary by user"
|
||||
#~ msgstr "Resumo de horas por utilizador"
|
||||
|
||||
@@ -505,7 +515,15 @@ msgstr ""
|
||||
#~ "Pode também ver o relatório sumário de contas analíticas\n"
|
||||
#~ "por utilizador bem como por mês.\n"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Number of hours that can be invoiced plus those that already have been "
|
||||
#~ "invoiced."
|
||||
#~ msgstr ""
|
||||
#~ "Número de horas que podem ser facturadas mais aquelas que já tenham sido "
|
||||
#~ "facturadas."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Error! The currency has to be the same as the currency of the selected "
|
||||
#~ "company"
|
||||
#~ msgstr "Erro! A divisa tem que ser a mesma que a da empresa seleccionada"
|
||||
#~ msgstr ""
|
||||
#~ "Erro! A divisa tem que ser a mesma que a divisa da empresa seleccionada"
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-04-28 01:18+0000\n"
|
||||
"PO-Revision-Date: 2012-05-31 06:16+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-29 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 15149)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: sql_constraint:purchase.order:0
|
||||
@@ -35,7 +35,7 @@ msgstr "製品分類"
|
||||
#. module: account_anglo_saxon
|
||||
#: sql_constraint:stock.picking:0
|
||||
msgid "Reference must be unique per Company!"
|
||||
msgstr "参照は会社内ではユニークでなければいけません。"
|
||||
msgstr "参照は会社ごとにユニークでなければいけません。"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: constraint:product.category:0
|
||||
@@ -87,7 +87,7 @@ msgstr "出庫票"
|
||||
#. module: account_anglo_saxon
|
||||
#: sql_constraint:account.invoice:0
|
||||
msgid "Invoice Number must be unique per Company!"
|
||||
msgstr "請求書番号は会社ごとにユニークでなければいけません。"
|
||||
msgstr "請求書番号は会社ごとに固有である必要があります。"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: help:product.category,property_account_creditor_price_difference_categ:0
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:23+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-22 12:19+0000\n"
|
||||
"Last-Translator: Quentin THEURET <Unknown>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:14+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
@@ -621,7 +621,7 @@ msgstr "Prorata temporis"
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Accounting Information"
|
||||
msgstr ""
|
||||
msgstr "Informations comptables"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_invoice
|
||||
|
||||
@@ -0,0 +1,793 @@
|
||||
# Indonesian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-05-21 16:12+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Indonesian <id@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Assets in draft and open states"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,method_end:0
|
||||
#: field:account.asset.history,method_end:0 field:asset.modify,method_end:0
|
||||
msgid "Ending date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,value_residual:0
|
||||
msgid "Residual Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,account_expense_depreciation_id:0
|
||||
msgid "Depr. Expense Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.depreciation.confirmation.wizard:0
|
||||
msgid "Compute Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:asset.asset.report,gross_value:0
|
||||
msgid "Gross Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 field:account.asset.asset,name:0
|
||||
#: field:account.asset.depreciation.line,asset_id:0
|
||||
#: field:account.asset.history,asset_id:0 field:account.move.line,asset_id:0
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,asset_id:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_asset
|
||||
msgid "Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,prorata:0 help:account.asset.category,prorata:0
|
||||
msgid ""
|
||||
"Indicates that the first depreciation entry for this asset have to be done "
|
||||
"from the purchase date instead of the first January"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.history,name:0
|
||||
msgid "History name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,company_id:0
|
||||
#: field:account.asset.category,company_id:0 view:asset.asset.report:0
|
||||
#: field:asset.asset.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Perusahaan"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.modify:0
|
||||
msgid "Modify"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0 view:asset.asset.report:0
|
||||
#: selection:asset.asset.report,state:0
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,amount:0
|
||||
msgid "Depreciation Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
#: model:ir.actions.act_window,name:account_asset.action_asset_asset_report
|
||||
#: model:ir.model,name:account_asset.model_asset_asset_report
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_asset_asset_report
|
||||
msgid "Assets Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:asset.modify,name:0
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method_progress_factor:0
|
||||
#: field:account.asset.category,method_progress_factor:0
|
||||
msgid "Degressive Factor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal
|
||||
msgid "Asset Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.depreciation.confirmation.wizard:0
|
||||
msgid ""
|
||||
"This wizard will post the depreciation lines of running assets that belong "
|
||||
"to the selected period."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,account_move_line_ids:0
|
||||
#: field:account.move.line,entry_ids:0
|
||||
#: model:ir.actions.act_window,name:account_asset.act_entries_open
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
#: field:account.asset.asset,depreciation_line_ids:0
|
||||
msgid "Depreciation Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,salvage_value:0
|
||||
msgid "It is the amount you plan to have that you cannot depreciate."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,depreciation_date:0
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,depreciation_date:0
|
||||
msgid "Depreciation Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,account_asset_id:0
|
||||
msgid "Asset Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:asset.asset.report,posted_value:0
|
||||
msgid "Posted Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 view:asset.asset.report:0
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_form
|
||||
#: model:ir.ui.menu,name:account_asset.menu_finance_assets
|
||||
#: model:ir.ui.menu,name:account_asset.menu_finance_config_assets
|
||||
msgid "Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,account_depreciation_id:0
|
||||
msgid "Depreciation Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 view:account.asset.category:0
|
||||
#: view:account.asset.history:0 view:asset.modify:0 field:asset.modify,note:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,move_id:0
|
||||
msgid "Depreciation Entry"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: sql_constraint:account.move.line:0
|
||||
msgid "Wrong credit or debit value in accounting entry !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,nbr:0
|
||||
msgid "# of Depreciation Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Assets in draft state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method_end:0
|
||||
#: selection:account.asset.asset,method_time:0
|
||||
#: selection:account.asset.category,method_time:0
|
||||
#: selection:account.asset.history,method_time:0
|
||||
msgid "Ending Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,code:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.invoice:0
|
||||
msgid "Invalid BBA Structured Communication !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Account Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard
|
||||
#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard
|
||||
msgid "Compute Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,sequence:0
|
||||
msgid "Sequence of the depreciation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method_period:0
|
||||
#: field:account.asset.category,method_period:0
|
||||
#: field:account.asset.history,method_period:0
|
||||
#: field:asset.modify,method_period:0
|
||||
msgid "Period Length"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0 view:asset.asset.report:0
|
||||
#: selection:asset.asset.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Date of asset purchase"
|
||||
msgstr "Tanggal pembelian aset"
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,method_number:0
|
||||
msgid "Calculates Depreciation within specified interval"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Change Duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,account_analytic_id:0
|
||||
msgid "Analytic account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method:0 field:account.asset.category,method:0
|
||||
msgid "Computation Method"
|
||||
msgstr "Metode Perhitungan"
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,method_period:0
|
||||
msgid "State here the time during 2 depreciations, in months"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.asset.asset:0
|
||||
msgid ""
|
||||
"Prorata temporis can be applied only for time method \"number of "
|
||||
"depreciations\"."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.history,method_time:0
|
||||
msgid ""
|
||||
"The method to use to compute the dates and number of depreciation lines.\n"
|
||||
"Number of Depreciations: Fix the number of depreciation lines and the time "
|
||||
"between 2 depreciations.\n"
|
||||
"Ending Date: Choose the time between 2 depreciations and the date the "
|
||||
"depreciations won't go beyond."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,purchase_value:0
|
||||
msgid "Gross value "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.asset.asset:0
|
||||
msgid "Error ! You can not create recursive assets."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.history,method_period:0
|
||||
msgid "Time in month between two depreciations"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,name:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.modify:0
|
||||
#: model:ir.actions.act_window,name:account_asset.action_asset_modify
|
||||
#: model:ir.model,name:account_asset.model_asset_modify
|
||||
msgid "Modify Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Other Information"
|
||||
msgstr "Informasi lainnya"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,salvage_value:0
|
||||
msgid "Salvage Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.invoice.line,asset_category_id:0 view:asset.asset.report:0
|
||||
msgid "Asset Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Set to Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_compute
|
||||
msgid "Compute assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_modify
|
||||
msgid "Modify asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Assets in closed state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,parent_id:0
|
||||
msgid "Parent Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.history:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_history
|
||||
msgid "Asset history"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Assets purchased in current year"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,state:0 field:asset.asset.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid ""
|
||||
"The selected account of your Journal Entry forces to provide a secondary "
|
||||
"currency. You should remove the secondary currency on the account or select "
|
||||
"a multi-currency view on the journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Month"
|
||||
msgstr "Bulan"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation Board"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:asset.asset.report,unposted_value:0
|
||||
msgid "Unposted Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method_time:0
|
||||
#: field:account.asset.category,method_time:0
|
||||
#: field:account.asset.history,method_time:0
|
||||
msgid "Time Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Analytic Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.modify:0
|
||||
msgid "Asset Durations to Modify"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid ""
|
||||
"The date of your Journal Entry is not in the defined period! You should "
|
||||
"change the date or remove this constraint from the journal."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,note:0 field:account.asset.category,note:0
|
||||
#: field:account.asset.history,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,method:0 help:account.asset.category,method:0
|
||||
msgid ""
|
||||
"Choose the method to use to compute the amount of depreciation lines.\n"
|
||||
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
|
||||
" * Degressive: Calculated on basis of: Remaining Value * Degressive Factor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,method_time:0
|
||||
#: help:account.asset.category,method_time:0
|
||||
msgid ""
|
||||
"Choose the method to use to compute the dates and number of depreciation "
|
||||
"lines.\n"
|
||||
" * Number of Depreciations: Fix the number of depreciation lines and the "
|
||||
"time between 2 depreciations.\n"
|
||||
" * Ending Date: Choose the time between 2 depreciations and the date the "
|
||||
"depreciations won't go beyond."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Assets in running state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,partner_id:0
|
||||
#: field:asset.asset.report,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,depreciation_value:0
|
||||
msgid "Amount of Depreciation Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Posted depreciation lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "Company must be the same for its related account and period."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,child_ids:0
|
||||
msgid "Children Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Date of depreciation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.history,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.history,date:0
|
||||
msgid "Date"
|
||||
msgstr "Tanggal"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Assets purchased in current month"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "You can not create journal items on an account of type view."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr "Filter Tambahan..."
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 view:asset.depreciation.confirmation.wizard:0
|
||||
msgid "Compute"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Search Asset Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
|
||||
msgid "asset.depreciation.confirmation.wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktif"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_close
|
||||
msgid "Close asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,parent_state:0
|
||||
msgid "State of Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,name:0
|
||||
msgid "Depreciation Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 field:account.asset.asset,history_ids:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: sql_constraint:account.invoice:0
|
||||
msgid "Invoice Number must be unique per Company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:asset.depreciation.confirmation.wizard,period_id:0
|
||||
msgid "Period"
|
||||
msgstr "Periode"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,prorata:0 field:account.asset.category,prorata:0
|
||||
msgid "Prorata Temporis"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Accounting Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "Faktur"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form_normal
|
||||
msgid "Review Asset Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.depreciation.confirmation.wizard:0 view:asset.modify:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0 selection:asset.asset.report,state:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 view:account.asset.category:0
|
||||
msgid "Depreciation Method"
|
||||
msgstr "Metode Depresiasi"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,purchase_date:0 view:asset.asset.report:0
|
||||
#: field:asset.asset.report,purchase_date:0
|
||||
msgid "Purchase Date"
|
||||
msgstr "Tanggal Pembelian"
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,method:0
|
||||
#: selection:account.asset.category,method:0
|
||||
msgid "Degressive"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:asset.depreciation.confirmation.wizard,period_id:0
|
||||
msgid ""
|
||||
"Choose the period for which you want to automatically post the depreciation "
|
||||
"lines of running assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,remaining_value:0
|
||||
msgid "Amount to Depreciate"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,open_asset:0
|
||||
msgid "Skip Draft State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0 view:account.asset.category:0
|
||||
#: view:account.asset.history:0
|
||||
msgid "Depreciation Dates"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,currency_id:0
|
||||
msgid "Currency"
|
||||
msgstr "Mata Uang"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr "Jurnal"
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,depreciated_value:0
|
||||
msgid "Amount Already Depreciated"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.depreciation.line,move_check:0
|
||||
#: view:asset.asset.report:0 field:asset.asset.report,move_check:0
|
||||
msgid "Posted"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.asset,state:0
|
||||
msgid ""
|
||||
"When an asset is created, the state is 'Draft'.\n"
|
||||
"If the asset is confirmed, the state goes in 'Running' and the depreciation "
|
||||
"lines can be posted in the accounting.\n"
|
||||
"You can manually close an asset when the depreciation is over. If the last "
|
||||
"line of depreciation is posted, the asset automatically goes in that state."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.category,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nama"
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.category,open_asset:0
|
||||
msgid ""
|
||||
"Check this if you want to automatically confirm the assets of this category "
|
||||
"when created by invoices."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,method:0
|
||||
#: selection:account.asset.category,method:0
|
||||
msgid "Linear"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Month-1"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_asset_depreciation_line
|
||||
msgid "Asset depreciation line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,category_id:0 view:account.asset.category:0
|
||||
#: field:asset.asset.report,asset_category_id:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_category
|
||||
msgid "Asset category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
msgid "Assets purchased in last month"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: code:addons/account_asset/wizard/wizard_asset_compute.py:49
|
||||
#, python-format
|
||||
msgid "Created Asset Moves"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "You can not create journal items on closed account."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,help:account_asset.action_asset_asset_report
|
||||
msgid ""
|
||||
"From this report, you can have an overview on all depreciation. The tool "
|
||||
"search can also be used to personalise your Assets reports and so, match "
|
||||
"this analysis to your needs;"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: help:account.asset.category,method_period:0
|
||||
msgid "State here the time between 2 depreciations, in months"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,method_number:0
|
||||
#: selection:account.asset.asset,method_time:0
|
||||
#: field:account.asset.category,method_number:0
|
||||
#: selection:account.asset.category,method_time:0
|
||||
#: field:account.asset.history,method_number:0
|
||||
#: selection:account.asset.history,method_time:0
|
||||
#: field:asset.modify,method_number:0
|
||||
msgid "Number of Depreciations"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Create Move"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.depreciation.confirmation.wizard:0
|
||||
msgid "Post Depreciation Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Confirm Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
|
||||
msgid "Asset Hierarchy"
|
||||
msgstr "Hirarki Aset"
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2011-12-10 11:58+0000\n"
|
||||
"Last-Translator: Paulino Ascenção <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:07+0000\n"
|
||||
"Last-Translator: ThinkOpen Solutions <Unknown>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
@@ -439,7 +439,7 @@ msgstr "Método tempo"
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Analytic Information"
|
||||
msgstr ""
|
||||
msgstr "Informação Analitica"
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.modify:0
|
||||
@@ -620,7 +620,7 @@ msgstr "Prorata Temporis"
|
||||
#. module: account_asset
|
||||
#: view:account.asset.category:0
|
||||
msgid "Accounting Information"
|
||||
msgstr ""
|
||||
msgstr "Informação contabilística"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_invoice
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-04-17 09:03+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2012-06-01 04:42+0000\n"
|
||||
"Last-Translator: Jalpesh Patel(OpenERP) <pja@tinyerp.com>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-18 04:42+0000\n"
|
||||
"X-Generator: Launchpad (build 15108)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -42,7 +42,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,parent_id:0
|
||||
msgid "Parent Code"
|
||||
msgstr "પેરેંટ કોડ"
|
||||
msgstr "પિતૃ સંકેત"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -64,7 +64,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Group By..."
|
||||
msgstr "ગ્રુપ દ્વારા..."
|
||||
msgstr "સમૂહ દ્વારા"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,state:0
|
||||
@@ -80,25 +80,25 @@ msgstr "કાચું"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement"
|
||||
msgstr "વિધાન"
|
||||
msgstr "નિવેદન"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
|
||||
msgid "Confirm selected statement lines"
|
||||
msgstr ""
|
||||
msgstr "પસંદ કરેલ નિવેદન લીટીઓ ખાતરી કરો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
|
||||
msgid "Bank Statement Balances Report"
|
||||
msgstr ""
|
||||
msgstr "બેન્ક નિવેદન સિલક અહેવાલ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Cancel Lines"
|
||||
msgstr ""
|
||||
msgstr "લીટીઓ રદ કરો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
@@ -109,7 +109,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirm Lines"
|
||||
msgstr ""
|
||||
msgstr "લીટીઓ પુષ્ટિ કરો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:130
|
||||
@@ -134,33 +134,33 @@ msgstr "રોજનામું"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Confirmed Statement Lines."
|
||||
msgstr ""
|
||||
msgstr "પુષ્ટિ નિવેદન આવેલ લીટીઓ."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit Transactions."
|
||||
msgstr ""
|
||||
msgstr "ધિરાણ વ્યવહારો."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
|
||||
msgid "cancel selected statement lines."
|
||||
msgstr ""
|
||||
msgstr "પસંદ કરેલ લીટીઓની નિવેદન રદ કરો."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_number:0
|
||||
msgid "Counterparty Number"
|
||||
msgstr ""
|
||||
msgstr "પ્રતિકૂળ સંખ્યા"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
msgid "Transactions"
|
||||
msgstr ""
|
||||
msgstr "વ્યવહારો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:130
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
msgstr "ચેતવણી"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
@@ -170,7 +170,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "તારીખ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -181,17 +181,17 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Debit Transactions."
|
||||
msgstr ""
|
||||
msgstr "ઉધાર વ્યવહારો."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
msgstr "વિસ્તૃત ગાળકો ..."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirmed lines cannot be changed anymore."
|
||||
msgstr ""
|
||||
msgstr "પુષ્ટિ લીટીઓ હવે બદલી શકાતી નથી"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:res.partner.bank:0
|
||||
@@ -204,47 +204,47 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,val_date:0
|
||||
msgid "Valuta Date"
|
||||
msgstr ""
|
||||
msgstr "ચલણ તારીખો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_confirm_statement_line
|
||||
msgid "Confirm selected statement lines."
|
||||
msgstr ""
|
||||
msgstr "પસંદ નિવેદન લીટીઓ ખાતરી કરો."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ રદ કરવા માંગો છો?"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "નામ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "ISO 20022"
|
||||
msgstr ""
|
||||
msgstr "ISO 20022"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
msgstr "નોંધ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "Manual"
|
||||
msgstr ""
|
||||
msgstr "માર્ગદર્શિકા"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
msgstr "જમા"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,amount:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
msgstr "કિંમત"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -254,7 +254,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_currency:0
|
||||
msgid "Counterparty Currency"
|
||||
msgstr ""
|
||||
msgstr "પ્રતિકૂળ ચલણ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_bic:0
|
||||
@@ -269,7 +269,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ ખાતરી કરવા માંગો છો?"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:account.bank.statement.line:0
|
||||
@@ -288,7 +288,7 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Draft Statement Lines."
|
||||
msgstr ""
|
||||
msgstr "કાચું નિવેદન લીટીઓ."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -298,27 +298,27 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr ""
|
||||
msgstr "બેન્ક વિધાન લીટી"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,code:0
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
msgstr "સંકેત"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_name:0
|
||||
msgid "Counterparty Name"
|
||||
msgstr ""
|
||||
msgstr "પ્રતિકૂળ નામ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,name:0
|
||||
msgid "Communication"
|
||||
msgstr ""
|
||||
msgstr "સંચાર"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
msgstr "બેંક હિસાબી"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:account.bank.statement:0
|
||||
@@ -328,24 +328,24 @@ msgstr ""
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr ""
|
||||
msgstr "બેન્ક સ્ટેટમેન્ટ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Line"
|
||||
msgstr ""
|
||||
msgstr "વિધાન લીટી"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: sql_constraint:account.bank.statement.line.global:0
|
||||
msgid "The code must be unique !"
|
||||
msgstr ""
|
||||
msgstr "કોડ અજોડ હોવું જ જોઈએ!"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
|
||||
#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
|
||||
msgid "Bank Statement Lines"
|
||||
msgstr ""
|
||||
msgstr "બેંક વિધાન લીટીઓ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
@@ -356,17 +356,17 @@ msgstr ""
|
||||
#: view:cancel.statement.line:0
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "રદ કરો"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Lines"
|
||||
msgstr ""
|
||||
msgstr "વિધાન લીટીઓ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
msgstr "કુલ રકમ"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,globalisation_id:0
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-04-16 23:00+0000\n"
|
||||
"PO-Revision-Date: 2012-05-23 06:08+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-18 04:42+0000\n"
|
||||
"X-Generator: Launchpad (build 15108)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -80,14 +80,14 @@ msgstr "ドラフト"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement"
|
||||
msgstr "明細書"
|
||||
msgstr "取引明細書"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
|
||||
msgid "Confirm selected statement lines"
|
||||
msgstr "選択した明細行の確認"
|
||||
msgstr "選択した取引明細書行の確認"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
@@ -165,7 +165,7 @@ msgstr "警告"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Closing Balance"
|
||||
msgstr "締切残高"
|
||||
msgstr "期末残高"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
@@ -176,7 +176,7 @@ msgstr "日付"
|
||||
#: view:account.bank.statement.line:0
|
||||
#: field:account.bank.statement.line,globalisation_amount:0
|
||||
msgid "Glob. Amount"
|
||||
msgstr "国際化金額"
|
||||
msgstr "全体の金額"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
@@ -201,7 +201,7 @@ msgid ""
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"正当な支払いを行うために銀行タイプIBAN口座のための銀行にBIC/Swiftコードを定義して下さい。"
|
||||
"正当な支払いを行うために銀行タイプIBAN口座のための銀行にBIC / SWIFTコードを定義して下さい。"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,val_date:0
|
||||
@@ -221,7 +221,7 @@ msgstr "選択した銀行明細行のキャンセルを本当に行いますか
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
msgstr "氏名"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
@@ -295,7 +295,7 @@ msgstr "ドラフト明細行"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Glob. Am."
|
||||
msgstr "国際化総額"
|
||||
msgstr "全体の金額"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
|
||||
@@ -340,7 +340,7 @@ msgstr "明細行"
|
||||
#. module: account_bank_statement_extensions
|
||||
#: sql_constraint:account.bank.statement.line.global:0
|
||||
msgid "The code must be unique !"
|
||||
msgstr "コードは固有でなければなりません。"
|
||||
msgstr "コードは固有であるべきです。"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
|
||||
|
||||
@@ -0,0 +1,385 @@
|
||||
# Romanian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-21 11:09+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Search Bank Transactions"
|
||||
msgstr "Cauta Tranzactii Bancare"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr "Confirmat(a)"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement:0
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Glob. Id"
|
||||
msgstr "Id Glob."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "CODA"
|
||||
msgstr "CODA"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,parent_id:0
|
||||
msgid "Parent Code"
|
||||
msgstr "Cod parinte"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Debit"
|
||||
msgstr "Debit"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
|
||||
msgid "Cancel selected statement lines"
|
||||
msgstr "Anuleaza liniile selectate ale extrasului de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid "The RIB and/or IBAN is not valid"
|
||||
msgstr "Codul RIB si/sau IBAN nu este valabil"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Group By..."
|
||||
msgstr "Grupeaza dupa..."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,state:0
|
||||
msgid "State"
|
||||
msgstr "Stare"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: selection:account.bank.statement.line,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Ciorna"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement"
|
||||
msgstr "Extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
|
||||
msgid "Confirm selected statement lines"
|
||||
msgstr "Confirma liniile extrasului de cont selectat"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
|
||||
msgid "Bank Statement Balances Report"
|
||||
msgstr "Raport Sold Extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Cancel Lines"
|
||||
msgstr "Anuleaza Liniile"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
|
||||
msgid "Batch Payment Info"
|
||||
msgstr "Informatii Plata Lot"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirm Lines"
|
||||
msgstr "Confirma Liniile"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:130
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Delete operation not allowed ! Please go to the associated bank "
|
||||
"statement in order to delete and/or modify this bank statement line"
|
||||
msgstr ""
|
||||
"Operatiune de stergere nepermisa! Va rugam sa mergeti la extrasul de cont "
|
||||
"asociat pentru a sterge si/sau modifica aceasta linie a extrasului de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,type:0
|
||||
msgid "Type"
|
||||
msgstr "Tip:"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: field:account.bank.statement.line,journal_id:0
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Journal"
|
||||
msgstr "Jurnal"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Confirmed Statement Lines."
|
||||
msgstr "Liniile confirmate ale Extrasului de cont."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit Transactions."
|
||||
msgstr "Operatiuni de credit"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
|
||||
msgid "cancel selected statement lines."
|
||||
msgstr "anuleaza liniile extrasului de cont selectat."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_number:0
|
||||
msgid "Counterparty Number"
|
||||
msgstr "Numar Echivalent"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
msgid "Transactions"
|
||||
msgstr "Tranzactii"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:130
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr "Atentionare"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Closing Balance"
|
||||
msgstr "Sold la inchidere"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
#: field:account.bank.statement.line,globalisation_amount:0
|
||||
msgid "Glob. Amount"
|
||||
msgstr "Suma Glob."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Debit Transactions."
|
||||
msgstr "Tranzactii de debit."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr "Filtre Extinse..."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Confirmed lines cannot be changed anymore."
|
||||
msgstr "Liniile confirmate nu mai pot fi modificate."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid ""
|
||||
"\n"
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Va rugam sa definiti un cod BIC/Swift la banca pentru ca Contul bancar de "
|
||||
"tip IBAN sa faca plati valabile"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,val_date:0
|
||||
msgid "Valuta Date"
|
||||
msgstr "Data Valuta"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_confirm_statement_line
|
||||
msgid "Confirm selected statement lines."
|
||||
msgstr "Confirmati liniile extrasului de cont selectat."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
"Sunteti sigur(a) ca doriti sa anulati liniile Extrasului de cont selectat ?"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: report:bank.statement.balance.report:0
|
||||
msgid "Name"
|
||||
msgstr "Nume"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "ISO 20022"
|
||||
msgstr "ISO 20022"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Notes"
|
||||
msgstr "Note"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: selection:account.bank.statement.line.global,type:0
|
||||
msgid "Manual"
|
||||
msgstr "Manual"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Credit"
|
||||
msgstr "Credit"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,amount:0
|
||||
msgid "Amount"
|
||||
msgstr "Suma"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Fin.Account"
|
||||
msgstr "Cont Fin."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_currency:0
|
||||
msgid "Counterparty Currency"
|
||||
msgstr "Moneda echivalenta"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_bic:0
|
||||
msgid "Counterparty BIC"
|
||||
msgstr "BIC echivalent"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,child_ids:0
|
||||
msgid "Child Codes"
|
||||
msgstr "Coduri subordonate"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
|
||||
msgstr ""
|
||||
"Sunteti sigur(a) ca doriti sa confirmati liniile Extrasului de cont selectat "
|
||||
"?"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:account.bank.statement.line:0
|
||||
msgid ""
|
||||
"The amount of the voucher must be the same amount as the one on the "
|
||||
"statement line"
|
||||
msgstr ""
|
||||
"Suma de pe chitanta trebuie sa fie aceeasi ca si cea din linia extrasului"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: help:account.bank.statement.line,globalisation_id:0
|
||||
msgid ""
|
||||
"Code to identify transactions belonging to the same globalisation level "
|
||||
"within a batch payment"
|
||||
msgstr ""
|
||||
"Cod pentru identificarea tranzactiilor care apartin aceluiasi nivel de "
|
||||
"globalizare din cadrul unei plati a unui lot"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Draft Statement Lines."
|
||||
msgstr "Linii ale Extrasului de cont ciorna."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Glob. Am."
|
||||
msgstr "Suma Glob."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
|
||||
msgid "Bank Statement Line"
|
||||
msgstr "Linie extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,code:0
|
||||
msgid "Code"
|
||||
msgstr "Cod"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,counterparty_name:0
|
||||
msgid "Counterparty Name"
|
||||
msgstr "Nume echivalent"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,name:0
|
||||
msgid "Communication"
|
||||
msgstr "Comunicare"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr "Conturi Bancare"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: constraint:account.bank.statement:0
|
||||
msgid "The journal and period chosen have to belong to the same company."
|
||||
msgstr "Jurnalul si perioada aleasa trebuie sa apartina aceleiasi companii."
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr "Extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Line"
|
||||
msgstr "Linie a Extrasului de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: sql_constraint:account.bank.statement.line.global:0
|
||||
msgid "The code must be unique !"
|
||||
msgstr "Codul trebuie sa fie unic !"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
|
||||
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
|
||||
#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
|
||||
msgid "Bank Statement Lines"
|
||||
msgstr "Linii Extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line.global:0
|
||||
msgid "Child Batch Payments"
|
||||
msgstr "Plati secundare lot"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:cancel.statement.line:0
|
||||
#: view:confirm.statement.line:0
|
||||
msgid "Cancel"
|
||||
msgstr "Anuleaza"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Statement Lines"
|
||||
msgstr "Linii Extras de cont"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: view:account.bank.statement.line:0
|
||||
msgid "Total Amount"
|
||||
msgstr "Suma totala"
|
||||
|
||||
#. module: account_bank_statement_extensions
|
||||
#: field:account.bank.statement.line,globalisation_id:0
|
||||
msgid "Globalisation ID"
|
||||
msgstr "ID globalizare"
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-02-13 21:29+0000\n"
|
||||
"Last-Translator: t.o <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-24 17:30+0000\n"
|
||||
"Last-Translator: Quentin THEURET <Unknown>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:15+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-25 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
@@ -155,7 +155,7 @@ msgstr "Sociétés"
|
||||
#. module: account_check_writing
|
||||
#: view:res.company:0
|
||||
msgid "Default Check Layout"
|
||||
msgstr ""
|
||||
msgstr "Disposition par défaut des chèques"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: constraint:account.journal:0
|
||||
|
||||
@@ -0,0 +1,213 @@
|
||||
# Romanian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-21 12:06+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on Top"
|
||||
msgstr "Cecul in partea de sus"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
|
||||
msgid ""
|
||||
"The check payment form allows you to track the payment you do to your "
|
||||
"suppliers specially by check. When you select a supplier, the payment method "
|
||||
"and an amount for the payment, OpenERP will propose to reconcile your "
|
||||
"payment with the open supplier invoices or bills.You can print the check"
|
||||
msgstr ""
|
||||
"Forma de plata prin cec va permite sa tineti evidenta platilor pe care le "
|
||||
"faceti furnizorilor d-voastra mai ales prin cecuri. Atunci cand selectati un "
|
||||
"furnizor, metoda de plata si o suma pentru plata, OpenERP va propune "
|
||||
"reconcilierea platii d-voastra cu facturile deschise ale furnizorului. "
|
||||
"Puteti printa cecul"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:account.voucher:0
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
|
||||
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
|
||||
msgid "Print Check"
|
||||
msgstr "Printeaza Cecul"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check in middle"
|
||||
msgstr "Cecul la mijloc"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:res.company,check_layout:0
|
||||
msgid ""
|
||||
"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
|
||||
"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
|
||||
"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
|
||||
msgstr ""
|
||||
"Cecul in partea de sus este compatibil cu Quicken, QuickBooks si Microsoft "
|
||||
"Money. Cecul la mijloc este compatibil cu Peachtree, ACCPAC si DacEasy. "
|
||||
"Cecul in partea de jos este compatibil numai cu Peachtree, ACCPAC si DacEasy"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: selection:res.company,check_layout:0
|
||||
msgid "Check on bottom"
|
||||
msgstr "Cecul in partea de jos"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr "Eroare! Nu puteti crea companii recursive."
|
||||
|
||||
#. module: account_check_writing
|
||||
#: help:account.journal,allow_check_writing:0
|
||||
msgid "Check this if the journal is to be used for writing checks."
|
||||
msgstr ""
|
||||
"Bifati aceasta casuta daca jurnalul va fi folosit pentru scrierea de cecuri."
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,allow_check_writing:0
|
||||
msgid "Allow Check writing"
|
||||
msgstr "Permite scrierea de cecuri"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Description"
|
||||
msgstr "Descriere"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_journal
|
||||
msgid "Journal"
|
||||
msgstr "Jurnal"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
|
||||
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
|
||||
msgid "Write Checks"
|
||||
msgstr "Scrieti Cecuri"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Discount"
|
||||
msgstr "Reducere"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Original Amount"
|
||||
msgstr "Suma Initiala"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr "Configurare"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.voucher,allow_check:0
|
||||
msgid "Allow Check Writing"
|
||||
msgstr "Permiteti Scrierea de Cecuri"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Payment"
|
||||
msgstr "Plata"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.journal,use_preprint_check:0
|
||||
msgid "Use Preprinted Check"
|
||||
msgstr "Folositi Cecuri pre-tiparite"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr "Numele companiei trebuie sa fie unic !"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Due Date"
|
||||
msgstr "Data scadentei"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Companii"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: view:res.company:0
|
||||
msgid "Default Check Layout"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_writing
|
||||
#: constraint:account.journal:0
|
||||
msgid ""
|
||||
"Configuration error! The currency chosen should be shared by the default "
|
||||
"accounts too."
|
||||
msgstr ""
|
||||
"Eroare de configurare! Moneda aleasa ar trebui sa fie comuna si conturilor "
|
||||
"predefinite."
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
msgid "Balance Due"
|
||||
msgstr "Sold datorat"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.bottom:0
|
||||
#: report:account.print.check.middle:0
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Check Amount"
|
||||
msgstr "Suma Cec"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: model:ir.model,name:account_check_writing.model_account_voucher
|
||||
msgid "Accounting Voucher"
|
||||
msgstr "Chitanta contabila"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: sql_constraint:account.journal:0
|
||||
msgid "The name of the journal must be unique per company !"
|
||||
msgstr "Numele jurnalului trebuie sa fie unic per companie !"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: sql_constraint:account.journal:0
|
||||
msgid "The code of the journal must be unique per company !"
|
||||
msgstr "Codul jurnalului trebuie sa fie unic per companie !"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:account.voucher,amount_in_word:0
|
||||
msgid "Amount in Word"
|
||||
msgstr "Suma in litere"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: report:account.print.check.top:0
|
||||
msgid "Open Balance"
|
||||
msgstr "Sold la deschidere"
|
||||
|
||||
#. module: account_check_writing
|
||||
#: field:res.company,check_layout:0
|
||||
msgid "Choose Check layout"
|
||||
msgstr "Alegeti formatul Cecului"
|
||||
|
||||
#~ msgid "Default Check layout"
|
||||
#~ msgstr "Formatul implicit al cecului"
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2010-12-31 10:33+0000\n"
|
||||
"Last-Translator: lholivier <olivier.lenoir@free.fr>\n"
|
||||
"PO-Revision-Date: 2012-05-24 17:31+0000\n"
|
||||
"Last-Translator: gde (OpenERP) <Unknown>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-25 04:39+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_09_21
|
||||
@@ -70,7 +70,7 @@ msgstr ""
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_002
|
||||
msgid "Interest paid"
|
||||
msgstr ""
|
||||
msgstr "Intérêts payés"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.trans.type,parent_id:0
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2010-12-20 19:21+0000\n"
|
||||
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:12+0000\n"
|
||||
"Last-Translator: ThinkOpen Solutions <Unknown>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_09_21
|
||||
@@ -1780,6 +1780,8 @@ msgstr "Pagamentos de salários coletivos"
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_80_17
|
||||
msgid "Collected for unsealed deposit of securities, and other parcels"
|
||||
msgstr ""
|
||||
"Recolhidos para o depósito de valores mobiliários sem lacre, e outras "
|
||||
"parcelas"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.comm.type,description:account_coda.acct_004
|
||||
@@ -1853,7 +1855,7 @@ msgstr "Documentário de taxas gerais de crédito"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_80_25
|
||||
msgid "Renting of direct debit box"
|
||||
msgstr ""
|
||||
msgstr "Locação de caixa de débito direto"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_11_52
|
||||
@@ -1871,6 +1873,9 @@ msgid ""
|
||||
"globalisation of which this record is the first.\n"
|
||||
"The same code will be repeated at the end of the globalisation."
|
||||
msgstr ""
|
||||
"O valor que é mencionado (1 a 9), especifica o nível de hierarquia da "
|
||||
"globalização do que este disco é o primeiro.\n"
|
||||
"O mesmo código será repetido no final da globalização."
|
||||
|
||||
#. module: account_coda
|
||||
#: field:coda.bank.account,description2:0
|
||||
@@ -1880,7 +1885,7 @@ msgstr "Descrição da Conta Secundária"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_211
|
||||
msgid "Credit arrangement fee | Additional credit arrangement fee"
|
||||
msgstr ""
|
||||
msgstr "Taxa de arranjo de Crédito | taxa de arranjo de crédito adicional"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:coda.bank.statement:0
|
||||
@@ -1925,7 +1930,7 @@ msgstr ""
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_035
|
||||
msgid "Charges foreign documentary bill"
|
||||
msgstr ""
|
||||
msgstr "Encargos conta documentário estrangeiro"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_80_39
|
||||
@@ -2191,6 +2196,8 @@ msgid ""
|
||||
"Credit transfer or cash payment with reconstituted structured format "
|
||||
"communication"
|
||||
msgstr ""
|
||||
"Transferência de crédito ou pagamento em dinheiro com a comunicação "
|
||||
"reconstituída do formato estruturado"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_07_86
|
||||
@@ -2279,7 +2286,7 @@ msgstr "Pesquisar Extratos Bancários CODA"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_410
|
||||
msgid "Reclamation charges"
|
||||
msgstr ""
|
||||
msgstr "Taxas de Contestação"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.actions.act_window,help:account_coda.action_coda_bank_statements
|
||||
@@ -2347,7 +2354,7 @@ msgstr "Assistente em estado incorreto. Por favor, clique no botão Cancelar!"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_418
|
||||
msgid "Endorsement commission"
|
||||
msgstr ""
|
||||
msgstr "Comissão de Averbamento"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_005
|
||||
@@ -2381,6 +2388,10 @@ msgid ""
|
||||
"credit transfers with a structured communication As a matter of principle, "
|
||||
"this type will also be used when no detailed data (type 6 or 7) is following."
|
||||
msgstr ""
|
||||
"Montante foi totalizado pelo banco; por exemplo, : O montante total de uma "
|
||||
"série de transferências de crédito com uma comunicação estruturada como uma "
|
||||
"questão de princípio, este tipo também será usado quando nenhum dado "
|
||||
"detalhado (tipo 6 ou 7) está a seguir."
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_03_37
|
||||
@@ -2400,7 +2411,7 @@ msgstr "Levantamento de dinheiro pela sua filial ou agentes"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_049
|
||||
msgid "Fiscal stamps/stamp duty"
|
||||
msgstr ""
|
||||
msgstr "Selos fiscais / imposto de selo"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_03_58
|
||||
@@ -2414,7 +2425,7 @@ msgstr ""
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Select Your File :"
|
||||
msgstr ""
|
||||
msgstr "Selecione o seu ficheiro:"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_80_06
|
||||
@@ -2485,7 +2496,7 @@ msgstr "Pesquisar ficheiros CODA"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_07_52
|
||||
msgid "Remittance of commercial paper - credit under usual reserve"
|
||||
msgstr ""
|
||||
msgstr "Remessa de papel comercial - crédito sob reserva habitual"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:coda.bank.account,active:0
|
||||
@@ -2499,7 +2510,7 @@ msgstr ""
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_07_54
|
||||
msgid "Among other things advances or promissory notes"
|
||||
msgstr ""
|
||||
msgstr "Entre outras coisas avanços ou notas promissórias"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_80_10
|
||||
@@ -2543,7 +2554,7 @@ msgstr "Para os profissionais, tais como seguros e corretores"
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_80_19
|
||||
msgid ""
|
||||
"Collected for securities, gold, pass-books, etc. placed in safe custody"
|
||||
msgstr ""
|
||||
msgstr "Títulos Coletados, ouro, passa-livros, etc. colocados sob custódia"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_09_19
|
||||
@@ -2551,6 +2562,8 @@ msgid ""
|
||||
"Used in case of payments accepted under reserve of count, result of "
|
||||
"overcrediting"
|
||||
msgstr ""
|
||||
"Usado no caso de pagamentos aceites com reserva de contagem, resultado sobre "
|
||||
"crédito"
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:630
|
||||
@@ -2597,7 +2610,7 @@ msgstr "Comissão para as despesas de manutenção"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_11_03
|
||||
msgid "Subscription to securities"
|
||||
msgstr ""
|
||||
msgstr "Subscrição de valores"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_425
|
||||
@@ -2659,6 +2672,7 @@ msgstr "Bonificação de juros"
|
||||
#: model:account.coda.trans.code,description:account_coda.actcf_41
|
||||
msgid "International credit transfers - non-SEPA credit transfers"
|
||||
msgstr ""
|
||||
"Transferências internacionais de crédito - transferências de crédito não SEPA"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_03_87
|
||||
@@ -2856,6 +2870,7 @@ msgstr ""
|
||||
#: model:account.coda.trans.code,description:account_coda.actcf_35
|
||||
msgid "Closing (periodical settlements for interest, costs,…)"
|
||||
msgstr ""
|
||||
"Encerramento (estabelecimentos periódicos relativos aos juros, custos, ...)"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_04_51
|
||||
@@ -3057,6 +3072,8 @@ msgid ""
|
||||
"Costs charged for calculating the amount of the tax to be paid (e.g. "
|
||||
"Fiscomat)."
|
||||
msgstr ""
|
||||
"Custos cobrados para o cálculo do montante do imposto a ser pago (Fiscomat "
|
||||
"por exemplo)."
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_014
|
||||
@@ -3181,7 +3198,7 @@ msgstr "Subsídio"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_04_06
|
||||
msgid "Payment with tank card"
|
||||
msgstr ""
|
||||
msgstr "Pagamento com cartão de depósito"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.comm.type,description:account_coda.acct_107
|
||||
@@ -3496,13 +3513,14 @@ msgstr "Licitações"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_43_07
|
||||
msgid "Unpaid foreign cheque"
|
||||
msgstr ""
|
||||
msgstr "Cheque estrangeiro Não remunerado"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_11_03
|
||||
msgid ""
|
||||
"Bonds, shares, tap issues of CDs, with or without payment of interest, etc."
|
||||
msgstr ""
|
||||
"Obrigações, ações, questões de CDs, com ou sem pagamento de juros, etc"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_09_66
|
||||
@@ -3512,7 +3530,7 @@ msgstr "Resgate de cupões de gasolina"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_058
|
||||
msgid "Capital premium"
|
||||
msgstr ""
|
||||
msgstr "Prémio Capital"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,description:account_coda.actcc_11_15
|
||||
@@ -3528,7 +3546,7 @@ msgstr "Moeda da contraparte"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_202
|
||||
msgid "Advising commission | Additional advising commission"
|
||||
msgstr ""
|
||||
msgstr "Comissões da Assessoria | comissão adicional aconselhada"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:coda.bank.account,find_partner:0
|
||||
@@ -3736,6 +3754,8 @@ msgstr "Pagamento do cheque"
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_43_07
|
||||
msgid "Foreign cheque remitted for collection that returns unpaid"
|
||||
msgstr ""
|
||||
"Cheques estrangeiros remetidos para a recolha que retorna como não "
|
||||
"remunerados"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.code,comment:account_coda.actcc_80_07
|
||||
@@ -3982,7 +4002,7 @@ msgstr "Custos de ATM no estrangeiro"
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_018
|
||||
msgid "Tental guarantee charges"
|
||||
msgstr ""
|
||||
msgstr "Tental taxas de garantia"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:account.coda.trans.category,description:account_coda.actrca_430
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-02-13 21:37+0000\n"
|
||||
"Last-Translator: t.o <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-24 17:31+0000\n"
|
||||
"Last-Translator: YannUbuntu <yannubuntu@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-14 05:43+0000\n"
|
||||
"X-Generator: Launchpad (build 14781)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-25 04:39+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.followup:0
|
||||
@@ -69,6 +69,26 @@ msgid ""
|
||||
"\n"
|
||||
"Best Regards,\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Cher % (partner_name)s,\n"
|
||||
"\n"
|
||||
"Nous constatons que, malgré l'envoi d'un rappel, votre compte client "
|
||||
"présente toujours à ce jour un solde débiteur.\n"
|
||||
"\n"
|
||||
"Il est essentiel que le règlement soit réalisé immédiatement faute de quoi "
|
||||
"nous devrons envisager de stopper\n"
|
||||
"nos relations commerciales jusqu'à apurement de la situation.\n"
|
||||
"\n"
|
||||
"Merci de prendre les mesures appropriées pour que le règlement intervienne "
|
||||
"dans les 8 prochains jours.\n"
|
||||
"\n"
|
||||
"S'il subsiste un problème avec le paiement de la facture dont nous n'avons "
|
||||
"pas été informé, n'hésitez pas à contacter notre service comptabilité au "
|
||||
"(+32) .12.34.56.78 afin que nous puissions le solutionner rapidement.\n"
|
||||
"\n"
|
||||
"Le détails de paiements dus est imprimé ci-dessous.\n"
|
||||
"\n"
|
||||
"Nous vous prions d’agréer, Madame, Monsieur, nos respectueuses salutations.\n"
|
||||
|
||||
#. module: account_followup
|
||||
#: field:account_followup.followup,company_id:0
|
||||
@@ -123,7 +143,7 @@ msgstr "Valeur erronée au crédit ou au débit de l'écriture comptable !"
|
||||
#. module: account_followup
|
||||
#: selection:account_followup.followup.line,start:0
|
||||
msgid "Net Days"
|
||||
msgstr "Jour ouvrable"
|
||||
msgstr "Jours ouvrables"
|
||||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
|
||||
@@ -340,6 +360,8 @@ msgid ""
|
||||
"Your description is invalid, use the right legend or %% if you want to use "
|
||||
"the percent character."
|
||||
msgstr ""
|
||||
"Votre description n'est pas correcte, utilisez une légende exacte ou %% si "
|
||||
"vous souhaitez utiliser le caractère pour cent."
|
||||
|
||||
#. module: account_followup
|
||||
#: constraint:account.move.line:0
|
||||
@@ -449,7 +471,7 @@ msgstr "Envoyer un Message de confirmation"
|
||||
#. module: account_followup
|
||||
#: report:account_followup.followup.print:0
|
||||
msgid "Total:"
|
||||
msgstr "Total:"
|
||||
msgstr "Total :"
|
||||
|
||||
#. module: account_followup
|
||||
#: constraint:res.company:0
|
||||
@@ -529,7 +551,7 @@ msgstr "Rapport des Relances"
|
||||
#. module: account_followup
|
||||
#: view:account_followup.followup.line:0
|
||||
msgid "Follow-Up Steps"
|
||||
msgstr ""
|
||||
msgstr "Niveaux de relance"
|
||||
|
||||
#. module: account_followup
|
||||
#: field:account_followup.stat,period_id:0
|
||||
@@ -561,7 +583,7 @@ msgstr "Niveau de relance maximal"
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,name:account_followup.action_view_account_followup_followup_form
|
||||
msgid "Review Invoicing Follow-Ups"
|
||||
msgstr ""
|
||||
msgstr "Définir les relances"
|
||||
|
||||
#. module: account_followup
|
||||
#: constraint:account.move.line:0
|
||||
@@ -576,6 +598,11 @@ msgid ""
|
||||
"code to adapt the email content to the good context (good name, good date) "
|
||||
"and you can manage the multi language of messages."
|
||||
msgstr ""
|
||||
"Définissez les niveaux de relance, leur message et leur déclenchement. Pour "
|
||||
"chaque étape, spécifiez le message et le nombre de jours avant la relance. "
|
||||
"Utilisez la légende pour connaître le code à utiliser pour adapter "
|
||||
"dynamiquement le contenu du courriel (nom, date). Vous pouvez aussi gérer "
|
||||
"la langue des messages en fonction des destinataires."
|
||||
|
||||
#. module: account_followup
|
||||
#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all
|
||||
@@ -590,6 +617,10 @@ msgid ""
|
||||
"\n"
|
||||
"%s"
|
||||
msgstr ""
|
||||
"Aucun courriel n'a été envoyé aux partenaires suivants. Leur adresse de "
|
||||
"courriel n'est pas renseignée !\n"
|
||||
"\n"
|
||||
"%s"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account.followup.print.all:0
|
||||
@@ -605,7 +636,7 @@ msgstr "%(date)s: Date Courante"
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
msgid "Including journal entries marked as a litigation"
|
||||
msgstr ""
|
||||
msgstr "Inclure les écritures marquées comme litigieuses"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
@@ -621,7 +652,7 @@ msgstr "Description"
|
||||
#. module: account_followup
|
||||
#: constraint:account_followup.followup:0
|
||||
msgid "Only One Followup by Company."
|
||||
msgstr ""
|
||||
msgstr "Une seule relance par société"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account_followup.stat:0
|
||||
@@ -715,11 +746,26 @@ msgid ""
|
||||
"\n"
|
||||
"Best Regards,\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Cher% (partner_name)s,\n"
|
||||
"\n"
|
||||
"Malgré plusieurs rappels, votre compte est toujours débiteur.\n"
|
||||
"\n"
|
||||
"A moins d'un paiement intégral effectué dans les 8 prochains jours, une "
|
||||
"action pour le recouvrement de la dette sera entreprise sans autre avis.\n"
|
||||
"\n"
|
||||
"Je suis convaincu que cette action se révélera inutile. Le détails des "
|
||||
"sommes dues est imprimé ci-dessous.\n"
|
||||
"\n"
|
||||
"En cas de question concernant cette situation, n'hésitez pas à contacter "
|
||||
"notre service comptabilité au (+32) .12.34.56.78.\n"
|
||||
"\n"
|
||||
"Cordialement,\n"
|
||||
|
||||
#. module: account_followup
|
||||
#: constraint:account.move.line:0
|
||||
msgid "You can not create journal items on closed account."
|
||||
msgstr ""
|
||||
msgstr "Vous ne pouvez pas passer d'écritures sur un compte clôturé."
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account.followup.print.all:0
|
||||
@@ -744,7 +790,7 @@ msgstr "Réf. Client"
|
||||
#. module: account_followup
|
||||
#: field:account.followup.print.all,test_print:0
|
||||
msgid "Test Print"
|
||||
msgstr ""
|
||||
msgstr "Tester l'impression"
|
||||
|
||||
#. module: account_followup
|
||||
#: view:account.followup.print.all:0
|
||||
|
||||
@@ -780,7 +780,7 @@ class account_voucher(osv.osv):
|
||||
|
||||
def proforma_voucher(self, cr, uid, ids, context=None):
|
||||
self.action_move_line_create(cr, uid, ids, context=context)
|
||||
return True
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
def action_cancel_draft(self, cr, uid, ids, context=None):
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<field name="inherit_id" ref="account.invoice_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<button name="invoice_open" position="after">
|
||||
<button name="invoice_pay_customer" type="object" string="Payment" states="open" icon="gtk-go-forward"/>
|
||||
<button name="invoice_pay_customer" type="object" string="Register Payment" states="open" icon="gtk-go-forward"/>
|
||||
</button>
|
||||
</field>
|
||||
</record>
|
||||
@@ -19,7 +19,7 @@
|
||||
<field name="inherit_id" ref="account.invoice_supplier_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<button name="invoice_open" position="after">
|
||||
<button name="invoice_pay_customer" type="object" string="Pay Invoice" states="open" icon="gtk-go-forward"/>
|
||||
<button name="invoice_pay_customer" type="object" string="Pay" states="open" icon="gtk-go-forward"/>
|
||||
</button>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="proforma_voucher" string="Post" states="draft"/>
|
||||
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record ?"/>
|
||||
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record?"/>
|
||||
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
|
||||
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
|
||||
<div class="oe_right">
|
||||
|
||||
@@ -36,7 +36,7 @@ class invoice(osv.osv):
|
||||
'res_model': 'account.voucher',
|
||||
'type': 'ir.actions.act_window',
|
||||
'nodestroy': True,
|
||||
'target': 'current',
|
||||
'target': 'new',
|
||||
'domain': '[]',
|
||||
'context': {
|
||||
'default_partner_id': inv.partner_id.id,
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# Latvian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-05-28 13:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Latvian <lv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 15316)\n"
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: sql_constraint:account.invoice:0
|
||||
msgid "Invoice Number must be unique per Company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: field:analytic_journal_rate_grid,journal_id:0
|
||||
msgid "Analytic Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: constraint:account.invoice:0
|
||||
msgid "Invalid BBA Structured Communication !"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: view:analytic_journal_rate_grid:0
|
||||
msgid "Billing Rate per Journal for this Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: field:analytic_journal_rate_grid,account_id:0
|
||||
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
|
||||
msgid "Relation table between journals and billing rates"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: field:account.analytic.account,journal_rate_ids:0
|
||||
msgid "Invoicing Rate per Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: constraint:hr.analytic.timesheet:0
|
||||
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: field:analytic_journal_rate_grid,rate_id:0
|
||||
msgid "Invoicing Rate"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You can not create recursive analytic accounts."
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_journal_billing_rate
|
||||
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
|
||||
msgid "Timesheet Line"
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,112 @@
|
||||
# Gujarati translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-05-31 11:08+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
#. module: auth_openid
|
||||
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
|
||||
#. openerp-web
|
||||
#: view:res.users:0
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12
|
||||
msgid "OpenID"
|
||||
msgstr ""
|
||||
|
||||
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
#. module: auth_openid
|
||||
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
|
||||
#. openerp-web
|
||||
#: field:res.users,openid_url:0
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47
|
||||
msgid "OpenID URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: help:res.users,openid_email:0
|
||||
msgid "Used for disambiguation in case of a shared OpenID URL"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr "તમે બે વપરાશકર્તાઓને એક જ લોગીન ન કરી શકો!"
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_email:0
|
||||
msgid "OpenID Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr "પસંદ કરેલ કંપની માન્ય કંપનીઓમાં આ વપરાશકર્તા માટે નથી"
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_key:0
|
||||
msgid "OpenID Key"
|
||||
msgstr ""
|
||||
|
||||
#. module: auth_openid
|
||||
#: model:ir.model,name:auth_openid.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8
|
||||
msgid "Password"
|
||||
msgstr "પાસવર્ડ"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
msgid "Google"
|
||||
msgstr "ગુગલ"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
msgid "Google Apps"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11
|
||||
msgid "Launchpad"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20
|
||||
msgid "Google Apps Domain:"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24
|
||||
msgid "Username:"
|
||||
msgstr "વપરાશકર્તાનું નામ:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28
|
||||
msgid "OpenID URL:"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35
|
||||
msgid "Google Apps Domain"
|
||||
msgstr ""
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41
|
||||
msgid "Username"
|
||||
msgstr "વપરાશકર્તા નામ"
|
||||
@@ -0,0 +1,113 @@
|
||||
# Romanian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-05-21 17:32+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
#. module: auth_openid
|
||||
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
|
||||
#. openerp-web
|
||||
#: view:res.users:0
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12
|
||||
msgid "OpenID"
|
||||
msgstr "OpenID"
|
||||
|
||||
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
#. module: auth_openid
|
||||
#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-#
|
||||
#. openerp-web
|
||||
#: field:res.users,openid_url:0
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47
|
||||
msgid "OpenID URL"
|
||||
msgstr "URL OpenID"
|
||||
|
||||
#. module: auth_openid
|
||||
#: help:res.users,openid_email:0
|
||||
msgid "Used for disambiguation in case of a shared OpenID URL"
|
||||
msgstr "Folosit pentru evitarea ambiguitatii in cazul unui URL OpenID"
|
||||
|
||||
#. module: auth_openid
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr "Nu pot exista doi utilizatori cu acelasi nume de autentificare !"
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_email:0
|
||||
msgid "OpenID Email"
|
||||
msgstr "E-mail OpenID"
|
||||
|
||||
#. module: auth_openid
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr ""
|
||||
"Compania aleasa nu se afla printre companiile permise acestui utilizator"
|
||||
|
||||
#. module: auth_openid
|
||||
#: field:res.users,openid_key:0
|
||||
msgid "OpenID Key"
|
||||
msgstr "Cheie OpenID"
|
||||
|
||||
#. module: auth_openid
|
||||
#: model:ir.model,name:auth_openid.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr "res.utilizatori"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8
|
||||
msgid "Password"
|
||||
msgstr "Parola"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
msgid "Google"
|
||||
msgstr "Google"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10
|
||||
msgid "Google Apps"
|
||||
msgstr "Google Apps"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11
|
||||
msgid "Launchpad"
|
||||
msgstr "Launchpad"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20
|
||||
msgid "Google Apps Domain:"
|
||||
msgstr "Domeniu Google Apps:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24
|
||||
msgid "Username:"
|
||||
msgstr "Nume de utilizator:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28
|
||||
msgid "OpenID URL:"
|
||||
msgstr "URL OpenID:"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35
|
||||
msgid "Google Apps Domain"
|
||||
msgstr "Domeniu Google Apps"
|
||||
|
||||
#. openerp-web
|
||||
#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41
|
||||
msgid "Username"
|
||||
msgstr "Nume de utilizator"
|
||||
+215
-212
File diff suppressed because it is too large
Load Diff
+14
-12
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 06:11+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-23 06:14+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:08+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
@@ -24,27 +24,29 @@ msgid ""
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"正当な支払いを行うために銀行タイプIBAN口座のための銀行にBIC/Swiftコードを定義して下さい。"
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:139
|
||||
#, python-format
|
||||
msgid "This IBAN does not pass the validation check, please verify it"
|
||||
msgstr ""
|
||||
msgstr "このIBANは検証チェックを通過できません。それを確認して下さい。"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,format_layout:base_iban.bank_iban
|
||||
msgid "%(bank_name)s: IBAN %(acc_number)s - BIC %(bank_bic)s"
|
||||
msgstr ""
|
||||
msgstr "%(bank_name)s:IBAN %(acc_number)s - BIC %(bank_bic)s"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_swift_field
|
||||
msgid "bank_bic"
|
||||
msgstr ""
|
||||
msgstr "BIC(銀行特定コード)"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
|
||||
msgid "zip"
|
||||
msgstr ""
|
||||
msgstr "郵便番号"
|
||||
|
||||
#. module: base_iban
|
||||
#: help:res.partner.bank,iban:0
|
||||
@@ -59,7 +61,7 @@ msgstr "銀行口座"
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
|
||||
msgid "country_id"
|
||||
msgstr ""
|
||||
msgstr "国コード"
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:136
|
||||
@@ -67,7 +69,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The IBAN does not seem to be correct. You should have entered something like "
|
||||
"this %s"
|
||||
msgstr ""
|
||||
msgstr "このIBANは正しくないようです。次のように何かを入れるべきです:%s"
|
||||
|
||||
#. module: base_iban
|
||||
#: field:res.partner.bank,iban:0
|
||||
@@ -78,12 +80,12 @@ msgstr "国際銀行口座番号"
|
||||
#: code:addons/base_iban/base_iban.py:140
|
||||
#, python-format
|
||||
msgid "The IBAN is invalid, it should begin with the country code"
|
||||
msgstr ""
|
||||
msgstr "このIBANは無効です。それは国コードから始まる必要があります。"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,name:base_iban.bank_iban
|
||||
msgid "IBAN Account"
|
||||
msgstr ""
|
||||
msgstr "IBAN口座"
|
||||
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
|
||||
@@ -0,0 +1,692 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-24 01:37+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:187
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:204
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:274
|
||||
#, python-format
|
||||
msgid "Suggestion"
|
||||
msgstr "提案"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.actions.act_window,name:base_module_quality.action_view_quality_save_report
|
||||
#: view:save.report:0
|
||||
msgid "Standard Entries"
|
||||
msgstr "標準エントリー"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/base_module_quality.py:100
|
||||
#, python-format
|
||||
msgid "Programming Error"
|
||||
msgstr "プログラムエラー"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:31
|
||||
#, python-format
|
||||
msgid "Method Test"
|
||||
msgstr "メソッドのテスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:34
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"Test checks for fields, views, security rules, dependancy level\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"項目、ビュー、セキュリティルール、依存関係レベルのテストをチェック\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:save.report:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
|
||||
#. module: base_module_quality
|
||||
#: selection:module.quality.detail,state:0
|
||||
msgid "Skipped"
|
||||
msgstr "スキップ済"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:46
|
||||
#, python-format
|
||||
msgid "Module has no objects"
|
||||
msgstr "モジュールはオブジェクトを持っていません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:49
|
||||
#, python-format
|
||||
msgid "Speed Test"
|
||||
msgstr "速度テスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_quality_check
|
||||
msgid "Module Quality Check"
|
||||
msgstr "モジュール品質チェック"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:82
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:187
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:204
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:274
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:144
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:132
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:143
|
||||
#, python-format
|
||||
msgid "Object Name"
|
||||
msgstr "オブジェクト名"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:54
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:61
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:68
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:34
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This test checks if the module satisfies the current coding standard used by "
|
||||
"OpenERP."
|
||||
msgstr "このテストでは、このモジュールがOpenERPにより使用されている現在のコーディング基準を満たしているかをチェックします。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/wizard/quality_save_report.py:39
|
||||
#, python-format
|
||||
msgid "No report to save!"
|
||||
msgstr "保存するレポートはありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:177
|
||||
#, python-format
|
||||
msgid "Result of dependancy in %"
|
||||
msgstr "依存関係の結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:module.quality.detail,state:0
|
||||
msgid ""
|
||||
"The test will be completed only if the module is installed or if the test "
|
||||
"may be processed on uninstalled module."
|
||||
msgstr ""
|
||||
"テストはモジュールがインストールがされている場合にのみ完了します。またはモジュールがアンインストールされた場合にもテストは実行されるかも知れません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:99
|
||||
#, python-format
|
||||
msgid "Result (/10)"
|
||||
msgstr "結果( / 10)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:33
|
||||
#, python-format
|
||||
msgid "Terp Test"
|
||||
msgstr "Terpテスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:33
|
||||
#, python-format
|
||||
msgid "Object Test"
|
||||
msgstr "オブジェクトテスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.detail:0
|
||||
msgid "Save Report"
|
||||
msgstr "レポートを保存"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/wizard/module_quality_check.py:43
|
||||
#: model:ir.actions.act_window,name:base_module_quality.act_base_module_quality
|
||||
#: view:quality.check:0
|
||||
#, python-format
|
||||
msgid "Quality Check"
|
||||
msgstr "品質チェック"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:128
|
||||
#, python-format
|
||||
msgid "Not Efficient"
|
||||
msgstr "非効率"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/wizard/quality_save_report.py:39
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:172
|
||||
#, python-format
|
||||
msgid "Feedback about structure of module"
|
||||
msgstr "モジュール構造についてのフィードバック"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:35
|
||||
#, python-format
|
||||
msgid "Unit Test"
|
||||
msgstr "単体テスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:quality.check:0
|
||||
msgid "Check"
|
||||
msgstr "チェック"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#, python-format
|
||||
msgid "Reading Complexity"
|
||||
msgstr "読み易さ"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:267
|
||||
#, python-format
|
||||
msgid "Result of pep8_test in %"
|
||||
msgstr "pep8テストの結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,state:0
|
||||
msgid "State"
|
||||
msgstr "状態"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:50
|
||||
#, python-format
|
||||
msgid "Module does not have 'unit_test/test.py' file"
|
||||
msgstr "モジュールには\"unit_test/test.py\"ファイルがありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,ponderation:0
|
||||
msgid "Ponderation"
|
||||
msgstr "熟考"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:177
|
||||
#, python-format
|
||||
msgid "Result of Security in %"
|
||||
msgstr "セキュリティの結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:module.quality.detail,ponderation:0
|
||||
msgid ""
|
||||
"Some tests are more critical than others, so they have a bigger weight in "
|
||||
"the computation of final rating"
|
||||
msgstr "幾つかのテストは他よりもっと重要です。それらは最終格付けの計算においてより大きな比重を持っています。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:120
|
||||
#, python-format
|
||||
msgid "No enough data"
|
||||
msgstr "十分なデータがありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:132
|
||||
#, python-format
|
||||
msgid "Result (/1)"
|
||||
msgstr "結果( / 1)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#, python-format
|
||||
msgid "N (Number of Records)"
|
||||
msgstr "N(レコード数)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:133
|
||||
#, python-format
|
||||
msgid "No data"
|
||||
msgstr "データがありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_module_quality_detail
|
||||
msgid "module.quality.detail"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:127
|
||||
#, python-format
|
||||
msgid "O(n) or worst"
|
||||
msgstr "O(n)または最悪"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:save.report,module_file:0
|
||||
msgid "Save report"
|
||||
msgstr "レポートの保存"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:34
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This test checks where object has workflow or not on it if there is a state "
|
||||
"field and several buttons on it and also checks validity of workflow xml file"
|
||||
msgstr ""
|
||||
"このテストは状態項目とその上に幾つかのボタンを持つ場合、オブジェクトがワークフローをどこに持つのか持たないかをチェックします。そしてワークフローxmlファ"
|
||||
"イルの有効性もチェックします。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:151
|
||||
#, python-format
|
||||
msgid "Result in %"
|
||||
msgstr "結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:quality.check:0
|
||||
msgid "This wizard will check module(s) quality"
|
||||
msgstr "このウィザードはモジュールの品質チェックをします。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:58
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:88
|
||||
#, python-format
|
||||
msgid "No python file found"
|
||||
msgstr "Phthonファイルが見つかりません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:144
|
||||
#: view:module.quality.check:0
|
||||
#: view:module.quality.detail:0
|
||||
#, python-format
|
||||
msgid "Result"
|
||||
msgstr "結果"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,message:0
|
||||
msgid "Message"
|
||||
msgstr "メッセージ"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:54
|
||||
#, python-format
|
||||
msgid "The module does not contain the __openerp__.py file"
|
||||
msgstr "モジュールは__openerp__.pyファイルが含んでいません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.detail:0
|
||||
msgid "Detail"
|
||||
msgstr "詳細"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,note:0
|
||||
msgid "Note"
|
||||
msgstr "注記"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:85
|
||||
#, python-format
|
||||
msgid ""
|
||||
"<html>O(1) means that the number of SQL requests to read the object does not "
|
||||
"depand on the number of objects we are reading. This feature is mostly "
|
||||
"wished.\n"
|
||||
"</html>"
|
||||
msgstr ""
|
||||
"<html>O(1) "
|
||||
"はオブジェクトの読み込みのためのSQLリクエストの数が読み込むオブジェクト数に依存しないこと意味します。これは多くの人が望む機能です。</html>"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:120
|
||||
#, python-format
|
||||
msgid "__openerp__.py file"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:70
|
||||
#, python-format
|
||||
msgid "Status"
|
||||
msgstr "状態"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:module.quality.check:0
|
||||
#: field:module.quality.check,check_detail_ids:0
|
||||
msgid "Tests"
|
||||
msgstr "テスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:50
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"This test checks the speed of the module. Note that at least 5 demo data is "
|
||||
"needed in order to run it.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"このテストはモジュールの速度をチェックします。その実行には少なくとも5つのデモデータが必要であることに注意して下さい。\n"
|
||||
"\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:71
|
||||
#, python-format
|
||||
msgid "Unable to parse the result. Check the details."
|
||||
msgstr "結果の解析ができません。詳細をチェックして下さい。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:33
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"This test checks if the module satisfy tiny structure\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"このテストはモジュールが小さな構造を満たすかをチェックします。\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:151
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:136
|
||||
#, python-format
|
||||
msgid "Module Name"
|
||||
msgstr "モジュール名"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:56
|
||||
#, python-format
|
||||
msgid "Error! Module is not properly loaded/installed"
|
||||
msgstr "エラー。モジュールは正しくロードまたはインストールされていません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:115
|
||||
#, python-format
|
||||
msgid "Error in Read method"
|
||||
msgstr "読み込みでエラーです。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:138
|
||||
#, python-format
|
||||
msgid "Score is below than minimal score(%s%%)"
|
||||
msgstr "そのスコアは最小スコアより下です(%s%%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#, python-format
|
||||
msgid "N/2"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:57
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:64
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:71
|
||||
#, python-format
|
||||
msgid "Exception"
|
||||
msgstr "例外"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/base_module_quality.py:100
|
||||
#, python-format
|
||||
msgid "Test Is Not Implemented"
|
||||
msgstr "テストが実装されていません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_save_report
|
||||
msgid "Save Report of Quality"
|
||||
msgstr "品質レポートの保存"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#, python-format
|
||||
msgid "N"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:143
|
||||
#, python-format
|
||||
msgid "Feed back About Workflow of Module"
|
||||
msgstr "モジュールのワークフローについてのフィードバック"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:73
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Given module has no objects.Speed test can work only when new objects are "
|
||||
"created in the module along with demo data"
|
||||
msgstr ""
|
||||
"そのモジュールにはオブジェクトがありません。速度テストは新しいオブジェクトがデモデータとともにモジュールの中に作成された時にのみ動作します。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:32
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This test uses Pylint and checks if the module satisfies the coding standard "
|
||||
"of Python. See http://www.logilab.org/project/name/pylint for further info.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"このテストはPylint を使います。そしてPythonのコーディング規約を満たしているかをチェックします。\n"
|
||||
"詳細は http://www.logilab.org/project/name/pylint を見て下さい。\n"
|
||||
" "
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:116
|
||||
#, python-format
|
||||
msgid "Error in Read method: %s"
|
||||
msgstr "読み込みでエラー:%s"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:129
|
||||
#, python-format
|
||||
msgid "No Workflow define"
|
||||
msgstr "ワークフローの定義がありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: selection:module.quality.detail,state:0
|
||||
msgid "Done"
|
||||
msgstr "完了"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:quality.check:0
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: view:save.report:0
|
||||
msgid "Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:32
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"PEP-8 Test , copyright of py files check, method can not call from loops\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"PEP-8テスト、pyファイルの著作権チェック、メソッドはループから呼び出しはできません\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.check,final_score:0
|
||||
msgid "Final Score (%)"
|
||||
msgstr "最終スコア(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:61
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Error. Is pylint correctly installed? (http://pypi.python.org/pypi/pylint)"
|
||||
msgstr "エラー。Pylintは正しくインストールされていますか?(http://pypi.python.org/pypi/pylint)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:125
|
||||
#, python-format
|
||||
msgid "Efficient"
|
||||
msgstr "効率性"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.check,name:0
|
||||
msgid "Rated Module"
|
||||
msgstr "評価モジュール"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:33
|
||||
#, python-format
|
||||
msgid "Workflow Test"
|
||||
msgstr "ワークフローテスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:36
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"This test checks the Unit Test(PyUnit) Cases of the module. Note that "
|
||||
"'unit_test/test.py' is needed in module.\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"このテストはモジュールの単体テスト(PyUnit)の実情をチェックします。\"unit_test/test.py\"がモジュールに必要とされることに注意し"
|
||||
"て下さい。\n"
|
||||
"\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/method_test/method_test.py:32
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"This test checks if the module classes are raising exception when calling "
|
||||
"basic methods or not.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"このテストは基本メソッド呼び出しの時にモジュールクラスが例外を起こすかどうかをテストします。\n"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,detail:0
|
||||
msgid "Details"
|
||||
msgstr "詳細"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:119
|
||||
#, python-format
|
||||
msgid "Warning! Not enough demo data"
|
||||
msgstr "警告。十分なデモデータがありません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:31
|
||||
#, python-format
|
||||
msgid "Pylint Test"
|
||||
msgstr "Pylintテスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:31
|
||||
#, python-format
|
||||
msgid "PEP-8 Test"
|
||||
msgstr "PEP-8テスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:187
|
||||
#, python-format
|
||||
msgid "Field name"
|
||||
msgstr "項目名"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:151
|
||||
#, python-format
|
||||
msgid "1"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:132
|
||||
#, python-format
|
||||
msgid "Warning! Object has no demo data"
|
||||
msgstr "警告。オブジェクトはデモデータを持っていません。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:140
|
||||
#, python-format
|
||||
msgid "Tag Name"
|
||||
msgstr "タグ名"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: model:ir.model,name:base_module_quality.model_module_quality_check
|
||||
msgid "module.quality.check"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,name:0
|
||||
msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:177
|
||||
#: code:addons/base_module_quality/workflow_test/workflow_test.py:136
|
||||
#, python-format
|
||||
msgid "Result of views in %"
|
||||
msgstr "ビューの結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,score:0
|
||||
msgid "Score (%)"
|
||||
msgstr "スコア(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: help:save.report,name:0
|
||||
msgid "Save report as .html format"
|
||||
msgstr ".html フォーマットとしてレポートを保存"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/base_module_quality.py:269
|
||||
#, python-format
|
||||
msgid "The module has to be installed before running this test."
|
||||
msgstr "このモジュールはこのテストの実行前にインストールされている必要があります。"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/speed_test/speed_test.py:123
|
||||
#, python-format
|
||||
msgid "O(1)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/object_test/object_test.py:177
|
||||
#, python-format
|
||||
msgid "Result of fields in %"
|
||||
msgstr "項目の結果(%)"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/unit_test/unit_test.py:70
|
||||
#: view:module.quality.detail:0
|
||||
#: field:module.quality.detail,summary:0
|
||||
#, python-format
|
||||
msgid "Summary"
|
||||
msgstr "要約"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pylint_test/pylint_test.py:99
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:172
|
||||
#: field:save.report,name:0
|
||||
#, python-format
|
||||
msgid "File Name"
|
||||
msgstr "ファイル名"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/pep8_test/pep8_test.py:274
|
||||
#, python-format
|
||||
msgid "Line number"
|
||||
msgstr "行番号"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/structure_test/structure_test.py:32
|
||||
#, python-format
|
||||
msgid "Structure Test"
|
||||
msgstr "構造テスト"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: field:module.quality.detail,quality_check_id:0
|
||||
msgid "Quality"
|
||||
msgstr "品質"
|
||||
|
||||
#. module: base_module_quality
|
||||
#: code:addons/base_module_quality/terp_test/terp_test.py:140
|
||||
#, python-format
|
||||
msgid "Feed back About terp file of Module"
|
||||
msgstr "モジュールのterpファイルについてのフィードバック"
|
||||
@@ -0,0 +1,268 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-24 03:50+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:08+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,category:0
|
||||
msgid "Category"
|
||||
msgstr "分類"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,save:0
|
||||
msgid "Information"
|
||||
msgstr "情報"
|
||||
|
||||
#. module: base_module_record
|
||||
#: model:ir.model,name:base_module_record.model_ir_module_record
|
||||
msgid "ir.module.record"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_data,info,end:0
|
||||
#: wizard_button:base_module_record.module_record_data,save_yaml,end:0
|
||||
msgid "End"
|
||||
msgstr "終了"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_data,init:0
|
||||
#: wizard_view:base_module_record.module_record_objects,init:0
|
||||
msgid "Choose objects to record"
|
||||
msgstr "オブジェクトを記録するための選択"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,author:0
|
||||
msgid "Author"
|
||||
msgstr "著者"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,directory_name:0
|
||||
msgid "Directory Name"
|
||||
msgstr "ディレクトリ名"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,init,filter_cond:0
|
||||
#: wizard_field:base_module_record.module_record_objects,init,filter_cond:0
|
||||
msgid "Records only"
|
||||
msgstr "レコードのみ"
|
||||
|
||||
#. module: base_module_record
|
||||
#: selection:base_module_record.module_record_objects,info,data_kind:0
|
||||
msgid "Demo Data"
|
||||
msgstr "デモデータ"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,save,module_filename:0
|
||||
msgid "Filename"
|
||||
msgstr "ファイル名"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,version:0
|
||||
msgid "Version"
|
||||
msgstr "バージョン"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_data,info:0
|
||||
#: wizard_view:base_module_record.module_record_data,init:0
|
||||
#: wizard_view:base_module_record.module_record_data,save_yaml:0
|
||||
#: wizard_view:base_module_record.module_record_objects,init:0
|
||||
msgid "Objects Recording"
|
||||
msgstr "オブジェクトの記録"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,save:0
|
||||
msgid ""
|
||||
"If you think your module could interest other people, we'd like you to "
|
||||
"publish it on http://www.openerp.com, in the 'Modules' section. You can do "
|
||||
"it through the website or using features of the 'base_module_publish' module."
|
||||
msgstr ""
|
||||
"あなたのモジュールに他の人々が興味を持つであろうと思う場合は、http://www.openerp.com "
|
||||
"上の\"Modules\"セクションに公開して下さい。これは、Webサイトを通じて、または\"base_module_publish\"モジュールの機能を"
|
||||
"使うことで行うことができます。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,init,check_date:0
|
||||
#: wizard_field:base_module_record.module_record_objects,init,check_date:0
|
||||
msgid "Record from Date"
|
||||
msgstr "記録開始日"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_data,end:0
|
||||
#: wizard_view:base_module_record.module_record_objects,end:0
|
||||
#: wizard_view:base_module_record.module_record_objects,info:0
|
||||
#: wizard_view:base_module_record.module_record_objects,save:0
|
||||
#: wizard_view:base_module_record.module_record_objects,save_yaml:0
|
||||
msgid "Module Recording"
|
||||
msgstr "モジュールの記録"
|
||||
|
||||
#. module: base_module_record
|
||||
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record_objects
|
||||
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_objects
|
||||
msgid "Export Customizations As a Module"
|
||||
msgstr "カスタマイズをモジュールとしてエクスポート"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,save:0
|
||||
msgid "Thanks in advance for your contribution."
|
||||
msgstr "あなたの貢献に感謝します。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: help:base_module_record.module_record_data,init,objects:0
|
||||
#: help:base_module_record.module_record_objects,init,objects:0
|
||||
msgid "List of objects to be recorded"
|
||||
msgstr "記録されるレコードのリスト"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,description:0
|
||||
msgid "Full Description"
|
||||
msgstr "全詳細"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,name:0
|
||||
msgid "Module Name"
|
||||
msgstr "モジュール名"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,init,objects:0
|
||||
#: wizard_field:base_module_record.module_record_objects,init,objects:0
|
||||
msgid "Objects"
|
||||
msgstr "オブジェクト"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,save,module_file:0
|
||||
#: wizard_field:base_module_record.module_record_objects,save_yaml,yaml_file:0
|
||||
msgid "Module .zip File"
|
||||
msgstr "モジュールの .zipファイル"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,save:0
|
||||
msgid "Module successfully created!"
|
||||
msgstr "モジュールの作成が成功しました。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,save_yaml:0
|
||||
msgid "YAML file successfully created !"
|
||||
msgstr "YAMLファイルの作成が成功しました。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_data,info:0
|
||||
#: wizard_view:base_module_record.module_record_data,save_yaml:0
|
||||
msgid "Result, paste this to your module's xml"
|
||||
msgstr "結果として、モジュールのxmlにこれを貼り付けます。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: selection:base_module_record.module_record_data,init,filter_cond:0
|
||||
#: selection:base_module_record.module_record_objects,init,filter_cond:0
|
||||
msgid "Created"
|
||||
msgstr "作成済"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_data,end:0
|
||||
#: wizard_view:base_module_record.module_record_objects,end:0
|
||||
msgid "Thanks For using Module Recorder"
|
||||
msgstr "モジュールレコーダーの利用に感謝します。"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,website:0
|
||||
msgid "Documentation URL"
|
||||
msgstr "ドキュメントURL"
|
||||
|
||||
#. module: base_module_record
|
||||
#: selection:base_module_record.module_record_data,init,filter_cond:0
|
||||
#: selection:base_module_record.module_record_objects,init,filter_cond:0
|
||||
msgid "Modified"
|
||||
msgstr "変更済"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_data,init,record:0
|
||||
#: wizard_button:base_module_record.module_record_objects,init,record:0
|
||||
msgid "Record"
|
||||
msgstr "記録"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_objects,info,save:0
|
||||
msgid "Continue"
|
||||
msgstr "続き"
|
||||
|
||||
#. module: base_module_record
|
||||
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record_data
|
||||
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_data
|
||||
msgid "Export Customizations As Data File"
|
||||
msgstr "カスタマイズをデータファイルとしてエクスポート"
|
||||
|
||||
#. module: base_module_record
|
||||
#: code:addons/base_module_record/wizard/base_module_save.py:129
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "エラー"
|
||||
|
||||
#. module: base_module_record
|
||||
#: selection:base_module_record.module_record_objects,info,data_kind:0
|
||||
msgid "Normal Data"
|
||||
msgstr "通常データ"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_data,end,end:0
|
||||
#: wizard_button:base_module_record.module_record_objects,end,end:0
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_record
|
||||
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_mod_rec
|
||||
msgid "Module Creation"
|
||||
msgstr "モジュールの作成"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_objects,info,data_kind:0
|
||||
msgid "Type of Data"
|
||||
msgstr "データのタイプ"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_view:base_module_record.module_record_objects,info:0
|
||||
msgid "Module Information"
|
||||
msgstr "モジュール情報"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,init,info_yaml:0
|
||||
#: wizard_field:base_module_record.module_record_objects,init,info_yaml:0
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,info,res_text:0
|
||||
#: wizard_field:base_module_record.module_record_data,save_yaml,res_text:0
|
||||
msgid "Result"
|
||||
msgstr "結果"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_data,init,end:0
|
||||
#: wizard_button:base_module_record.module_record_objects,info,end:0
|
||||
#: wizard_button:base_module_record.module_record_objects,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_button:base_module_record.module_record_objects,save,end:0
|
||||
#: wizard_button:base_module_record.module_record_objects,save_yaml,end:0
|
||||
msgid "Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#. module: base_module_record
|
||||
#: selection:base_module_record.module_record_data,init,filter_cond:0
|
||||
#: selection:base_module_record.module_record_objects,init,filter_cond:0
|
||||
msgid "Created & Modified"
|
||||
msgstr "作成&修正済"
|
||||
@@ -0,0 +1,198 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-24 04:08+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_sxw
|
||||
msgid "base.report.sxw"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "OpenERP Report Designer Configuration"
|
||||
msgstr "OpenERPレポートデザイナ設定"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid ""
|
||||
"This plug-in allows you to create/modify OpenERP Reports into OpenOffice "
|
||||
"Writer."
|
||||
msgstr "このプラグインによって、OpenOfficeライターの中にOpenERPレポートを作成 / 修正することができます。"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
msgid "Upload the modified report"
|
||||
msgstr "修正後レポートのアップロード"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
msgid "The .SXW report"
|
||||
msgstr "SXWレポート"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_designer_installer
|
||||
msgid "base_report_designer.installer"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "_Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.rml.save:0
|
||||
msgid "The RML Report"
|
||||
msgstr "RMLレポート"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Configure"
|
||||
msgstr "設定"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.file.sxw,report_id:0
|
||||
#: field:base.report.sxw,report_id:0
|
||||
msgid "Report"
|
||||
msgstr "レポート"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_rml_save
|
||||
msgid "base.report.rml.save"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.ui.menu,name:base_report_designer.menu_action_report_designer_wizard
|
||||
msgid "Report Designer"
|
||||
msgstr "レポートデザイナ"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,name:0
|
||||
msgid "File name"
|
||||
msgstr "ファイル名"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Get a report"
|
||||
msgstr "レポート取得"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_wizard
|
||||
msgid "OpenERP Report Designer"
|
||||
msgstr "OpenERPレポートデザイナ"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Continue"
|
||||
msgstr "続き"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.rml.save,file_rml:0
|
||||
msgid "Save As"
|
||||
msgstr "名前を付けて保存"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: help:base_report_designer.installer,plugin_file:0
|
||||
msgid ""
|
||||
"OpenObject Report Designer plug-in file. Save as this file and install this "
|
||||
"plug-in in OpenOffice."
|
||||
msgstr ""
|
||||
"OpenObjectレポートデザイナのプラグインファイルです。このファイルを保存し、OpenOfficeの中にこのプラグインをインストールして下さい。"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.rml.save:0
|
||||
msgid "Save RML FIle"
|
||||
msgstr "RMLファイルの保存"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.file.sxw,file_sxw:0
|
||||
#: field:base.report.file.sxw,file_sxw_upload:0
|
||||
msgid "Your .SXW file"
|
||||
msgstr "あなたのSXWファイル"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Installation and Configuration Steps"
|
||||
msgstr "インストールと設定の手順"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,description:0
|
||||
msgid "Description"
|
||||
msgstr "詳細"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
msgid ""
|
||||
"This is the template of your requested report.\n"
|
||||
"Save it as a .SXW file and open it with OpenOffice.\n"
|
||||
"Don't forget to install the OpenERP SA OpenOffice package to modify it.\n"
|
||||
"Once it is modified, re-upload it in OpenERP using this wizard."
|
||||
msgstr ""
|
||||
"これは要求されたレポートのテンプレートです。\n"
|
||||
"これをSXWファイルとして保存し、OpenOfficeで開いて下さい。\n"
|
||||
"更新のためOpenERPのOpenOfficeパッケージのインストールを忘れないで下さい。\n"
|
||||
"更新された後、このウィザードを使用してOpenERPの中に再アップロードして下さい。"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "画像"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_view_base_report_sxw
|
||||
msgid "Base Report sxw"
|
||||
msgstr "基本レポートSXW"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_file_sxw
|
||||
msgid "base.report.file.sxw"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,plugin_file:0
|
||||
msgid "OpenObject Report Designer Plug-in"
|
||||
msgstr "OpenObjectレポートデザイナプラグイン"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_installer
|
||||
msgid "OpenERP Report Designer Installation"
|
||||
msgstr "OpenERPレポートデザイナインストール"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
#: view:base.report.rml.save:0
|
||||
#: view:base.report.sxw:0
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_ir_actions_report_xml
|
||||
msgid "ir.actions.report.xml"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Select your report"
|
||||
msgstr "レポートの選択"
|
||||
@@ -0,0 +1,282 @@
|
||||
# Gujarati translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-31 11:08+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: base_setup
|
||||
#: field:user.preferences.config,menu_tips:0
|
||||
msgid "Display Tips"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Guest"
|
||||
msgstr "અતિથિ"
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.model,name:base_setup.model_product_installer
|
||||
msgid "product.installer"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:product.installer,customers:0
|
||||
msgid "Create"
|
||||
msgstr "બનાવો"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Member"
|
||||
msgstr "સભ્ય"
|
||||
|
||||
#. module: base_setup
|
||||
#: field:migrade.application.installer.modules,sync_google_contact:0
|
||||
msgid "Sync Google Contact"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:user.preferences.config,context_tz:0
|
||||
msgid ""
|
||||
"Set default for new user's timezone, used to perform timezone conversions "
|
||||
"between the server and the client."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:product.installer,customers:0
|
||||
msgid "Import"
|
||||
msgstr "આયાત કરો"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Donor"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_base_setup_company
|
||||
msgid "Set Company Header and Footer"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,help:base_setup.action_base_setup_company
|
||||
msgid ""
|
||||
"Fill in your company data (address, logo, bank accounts) so that it's "
|
||||
"printed on your reports. You can click on the button 'Preview Header' in "
|
||||
"order to check the header/footer of PDF documents."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:product.installer,customers:0
|
||||
msgid "Customers"
|
||||
msgstr "ગ્રાહકો"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:user.preferences.config,view:0
|
||||
msgid "Extended"
|
||||
msgstr "વિસ્તૃત"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Patient"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,help:base_setup.action_import_create_installer
|
||||
msgid ""
|
||||
"Create or Import Customers and their contacts manually from this form or "
|
||||
"you can import your existing partners by CSV spreadsheet from \"Import "
|
||||
"Data\" wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: view:user.preferences.config:0
|
||||
msgid "Define Users's Preferences"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_user_preferences_config_form
|
||||
msgid "Define default users preferences"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,import_saleforce:0
|
||||
msgid "For Import Saleforce"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,quickbooks_ippids:0
|
||||
msgid "For Quickbooks Ippids"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:user.preferences.config,view:0
|
||||
msgid ""
|
||||
"If you use OpenERP for the first time we strongly advise you to select the "
|
||||
"simplified interface, which has less features but is easier. You can always "
|
||||
"switch later from the user preferences."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: view:base.setup.terminology:0
|
||||
#: view:user.preferences.config:0
|
||||
msgid "res_config_contents"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:user.preferences.config,view:0
|
||||
msgid "Interface"
|
||||
msgstr "ઇન્ટરફેસ"
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.model,name:base_setup.model_migrade_application_installer_modules
|
||||
msgid "migrade.application.installer.modules"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: view:base.setup.terminology:0
|
||||
msgid ""
|
||||
"You can use this wizard to change the terminologies for customers in the "
|
||||
"whole application."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Tenant"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:user.preferences.config,context_lang:0
|
||||
msgid "Language"
|
||||
msgstr "ભાષા"
|
||||
|
||||
#. module: base_setup
|
||||
#: help:user.preferences.config,context_lang:0
|
||||
msgid ""
|
||||
"Sets default language for the all user interface, when UI translations are "
|
||||
"available. If you want to Add new Language, you can add it from 'Load an "
|
||||
"Official Translation' wizard from 'Administration' menu."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: view:user.preferences.config:0
|
||||
msgid ""
|
||||
"This will set the default preferences for new users and update all existing "
|
||||
"ones. Afterwards, users are free to change those values on their own user "
|
||||
"preference form."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:base.setup.terminology,partner:0
|
||||
msgid "How do you call a Customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:migrade.application.installer.modules,quickbooks_ippids:0
|
||||
msgid "Quickbooks Ippids"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:migrade.application.installer.modules,import_saleforce:0
|
||||
msgid "Import Saleforce"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:user.preferences.config,context_tz:0
|
||||
msgid "Timezone"
|
||||
msgstr "ટાઈમઝોન"
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form
|
||||
msgid "Use another word to say \"Customer\""
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.model,name:base_setup.model_base_setup_terminology
|
||||
msgid "base.setup.terminology"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:user.preferences.config,menu_tips:0
|
||||
msgid ""
|
||||
"Check out this box if you want to always display tips on each menu action"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:base.setup.terminology,config_logo:0
|
||||
#: field:migrade.application.installer.modules,config_logo:0
|
||||
#: field:product.installer,config_logo:0
|
||||
#: field:user.preferences.config,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "ચિત્ર"
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.model,name:base_setup.model_user_preferences_config
|
||||
msgid "user.preferences.config"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_config_access_other_user
|
||||
msgid "Create Additional Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_import_create_installer
|
||||
msgid "Create or Import Customers"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: field:migrade.application.installer.modules,import_sugarcrm:0
|
||||
msgid "Import Sugarcrm"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:product.installer,customers:0
|
||||
msgid "Import or create customers"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:user.preferences.config,view:0
|
||||
msgid "Simplified"
|
||||
msgstr "સરળ"
|
||||
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,import_sugarcrm:0
|
||||
msgid "For Import Sugarcrm"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
msgid "Partner"
|
||||
msgstr "ભાગીદાર"
|
||||
|
||||
#. module: base_setup
|
||||
#: view:base.setup.terminology:0
|
||||
msgid "Specify Your Terminology"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,sync_google_contact:0
|
||||
msgid "For Sync Google Contact"
|
||||
msgstr ""
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-07 05:42+0000\n"
|
||||
"PO-Revision-Date: 2012-05-23 09:07+0000\n"
|
||||
"Last-Translator: Tomomi Mengelberg <tomomi.mengelberg@aquasys.co.jp>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-08 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 15204)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:08+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_setup
|
||||
#: field:user.preferences.config,menu_tips:0
|
||||
@@ -52,7 +52,7 @@ msgstr "Googleの連絡先を同期する。"
|
||||
msgid ""
|
||||
"Set default for new user's timezone, used to perform timezone conversions "
|
||||
"between the server and the client."
|
||||
msgstr ""
|
||||
msgstr "新規ユーザのタイムゾーンのデフォルト設定のために、サーバとクライアント間のタイムゾーンの変換をします。"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:product.installer,customers:0
|
||||
@@ -76,6 +76,8 @@ msgid ""
|
||||
"printed on your reports. You can click on the button 'Preview Header' in "
|
||||
"order to check the header/footer of PDF documents."
|
||||
msgstr ""
|
||||
"レポートに印刷されますので、会社のデータ(アドレス、ロゴ、銀行口座)を記入してください。 PDF "
|
||||
"ドキュメントのヘッダー/フッターを確認するには、\"ヘッダープレビュー\"をクリックします。"
|
||||
|
||||
#. module: base_setup
|
||||
#: field:product.installer,customers:0
|
||||
@@ -99,6 +101,8 @@ msgid ""
|
||||
"you can import your existing partners by CSV spreadsheet from \"Import "
|
||||
"Data\" wizard"
|
||||
msgstr ""
|
||||
"このフォームから手動で顧客とその連絡先を作成またはインポート或いは "
|
||||
"\"データのインポート\"ウィザードからCSVスプレッドシートで、既存のパートナーをインポートすることができます。"
|
||||
|
||||
#. module: base_setup
|
||||
#: view:user.preferences.config:0
|
||||
@@ -113,7 +117,7 @@ msgstr "ユーザのプリファレンスを初期値に定義します。"
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,import_saleforce:0
|
||||
msgid "For Import Saleforce"
|
||||
msgstr ""
|
||||
msgstr "Salesforceのインポート"
|
||||
|
||||
#. module: base_setup
|
||||
#: help:migrade.application.installer.modules,quickbooks_ippids:0
|
||||
@@ -149,7 +153,7 @@ msgstr "migrade.application.installer.modules"
|
||||
msgid ""
|
||||
"You can use this wizard to change the terminologies for customers in the "
|
||||
"whole application."
|
||||
msgstr ""
|
||||
msgstr "アプリケーション全体の顧客の用語を変更するには、このウィザードを使用することができます。"
|
||||
|
||||
#. module: base_setup
|
||||
#: selection:base.setup.terminology,partner:0
|
||||
@@ -173,6 +177,8 @@ msgid ""
|
||||
"available. If you want to Add new Language, you can add it from 'Load an "
|
||||
"Official Translation' wizard from 'Administration' menu."
|
||||
msgstr ""
|
||||
"UI翻訳が利用可能な時は、既定の言語を全てのユーザインターフェースに設定します。新しい言語を追加する場合は、\"管理\" "
|
||||
"メニューのウィザード\"オフィシャル翻訳をロードする' から追加することができます。"
|
||||
|
||||
#. module: base_setup
|
||||
#: view:user.preferences.config:0
|
||||
@@ -210,7 +216,7 @@ msgstr "タイムゾーン"
|
||||
#. module: base_setup
|
||||
#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form
|
||||
msgid "Use another word to say \"Customer\""
|
||||
msgstr ""
|
||||
msgstr "\"顧客\"を言い表す他の言葉を使用してください。"
|
||||
|
||||
#. module: base_setup
|
||||
#: model:ir.model,name:base_setup.model_base_setup_terminology
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2012-today OpenERP SA (<http://openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -15,11 +15,11 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import delivery_sale_order
|
||||
import base_state
|
||||
import base_stage
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2012-today OpenERP SA (<http://openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'State/Stage Management',
|
||||
'version': '1.0',
|
||||
'category': 'Hidden',
|
||||
'description': """
|
||||
This module handles state and stage. It is derived from the crm_base and
|
||||
crm_case classes from crm.
|
||||
|
||||
* ``base_state``: state management
|
||||
* ``base_stage``: stage management
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base'],
|
||||
'init_xml': [],
|
||||
'update_xml': [],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,432 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
class base_stage(object):
|
||||
""" Base utility mixin class for objects willing to manage their stages.
|
||||
Object that inherit from this class should inherit from mailgate.thread
|
||||
to have access to the mail gateway, as well as Chatter. Objects
|
||||
subclassing this class should define the following colums:
|
||||
- ``date_open`` (datetime field)
|
||||
- ``date_closed`` (datetime field)
|
||||
- ``user_id`` (many2one to res.users)
|
||||
- ``partner_id`` (many2one to res.partner)
|
||||
- ``stage_id`` (many2one to a stage definition model)
|
||||
- ``state`` (selection field, related to the stage_id.state)
|
||||
"""
|
||||
|
||||
def _get_default_partner(self, cr, uid, context=None):
|
||||
""" Gives id of partner for current user
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if hasattr(user, 'partner_address_id') and user.partner_address_id:
|
||||
return user.partner_address_id
|
||||
return user.company_id.partner_id.id
|
||||
|
||||
def _get_default_email(self, cr, uid, context=None):
|
||||
""" Gives default email address for current user
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
return user.user_email
|
||||
|
||||
def _get_default_user(self, cr, uid, context=None):
|
||||
""" Gives current user id
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
return uid
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
""" This function returns value of partner email based on Partner Address
|
||||
:param add: Id of Partner's address
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data = {'value': {'email_from': False, 'phone':False}}
|
||||
if add:
|
||||
address = self.pool.get('res.partner').browse(cr, uid, add)
|
||||
data['value'] = {'email_from': address and address.email or False ,
|
||||
'phone': address and address.phone or False}
|
||||
if 'phone' not in self._columns:
|
||||
del data['value']['phone']
|
||||
return data
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
""" This function returns value of partner address based on partner
|
||||
:param part: Partner's id
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data={}
|
||||
if part:
|
||||
addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
|
||||
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
|
||||
return {'value': data}
|
||||
|
||||
def _get_default_section_id(self, cr, uid, context=None):
|
||||
""" Gives default section """
|
||||
return False
|
||||
|
||||
def _get_default_stage_id(self, cr, uid, context=None):
|
||||
""" Gives default stage_id """
|
||||
return self.stage_find(cr, uid, [], None, [('state', '=', 'draft')], context=context)
|
||||
|
||||
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
|
||||
""" Find stage, with a given (optional) domain on the search,
|
||||
ordered by the order parameter. If several stages match the
|
||||
search criterions, the first one will be returned, according
|
||||
to the requested search order.
|
||||
This method is meant to be overriden by subclasses. That way
|
||||
specific behaviors can be achieved for every class inheriting
|
||||
from base_stage.
|
||||
|
||||
:param cases: browse_record of cases
|
||||
:param section_id: section limitating the search, given for
|
||||
a generic search (for example default search).
|
||||
A section models concepts such as Sales team
|
||||
(for CRM), ou departments (for HR).
|
||||
:param domain: a domain on the search of stages
|
||||
:param order: order of the search
|
||||
"""
|
||||
return False
|
||||
|
||||
def stage_set_with_state_name(self, cr, uid, cases, state_name, context=None):
|
||||
""" Set a new stage, with a state_name instead of a stage_id
|
||||
:param cases: browse_record of cases
|
||||
"""
|
||||
if isinstance(cases, (int, long)):
|
||||
cases = self.browse(cr, uid, cases, context=context)
|
||||
for case in cases:
|
||||
stage_id = self.stage_find(cr, uid, [case], None, [('state', '=', state_name)], context=context)
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [case.id], stage_id, context=context)
|
||||
return True
|
||||
|
||||
def stage_set(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Set the new stage. This methods is the right method to call
|
||||
when changing states. It also checks whether an onchange is
|
||||
defined, and execute it.
|
||||
"""
|
||||
value = {}
|
||||
if hasattr(self, 'onchange_stage_id'):
|
||||
value = self.onchange_stage_id(cr, uid, ids, stage_id, context=context)['value']
|
||||
value['stage_id'] = stage_id
|
||||
self.stage_set_send_note(cr, uid, ids, stage_id, context=context)
|
||||
return self.write(cr, uid, ids, value, context=context)
|
||||
|
||||
def stage_change(self, cr, uid, ids, op, order, context=None):
|
||||
""" Change the stage and take the next one, based on a condition
|
||||
writen for the 'sequence' field and an operator. This methods
|
||||
checks whether the case has a current stage, and takes its
|
||||
sequence. Otherwise, a default 0 sequence is chosen and this
|
||||
method will therefore choose the first available stage.
|
||||
For example if op is '>' and current stage has a sequence of
|
||||
10, this will call stage_find, with [('sequence', '>', '10')].
|
||||
"""
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
seq = 0
|
||||
if case.stage_id:
|
||||
seq = case.stage_id.sequence or 0
|
||||
section_id = None
|
||||
next_stage_id = self.stage_find(cr, uid, [case], None, [('sequence', op, seq)],order, context=context)
|
||||
if next_stage_id:
|
||||
return self.stage_set(cr, uid, [case.id], next_stage_id, context=context)
|
||||
return False
|
||||
|
||||
def stage_next(self, cr, uid, ids, context=None):
|
||||
""" This function computes next stage for case from its current stage
|
||||
using available stage for that case type
|
||||
"""
|
||||
return self.stage_change(cr, uid, ids, '>','sequence', context)
|
||||
|
||||
def stage_previous(self, cr, uid, ids, context=None):
|
||||
""" This function computes previous stage for case from its current
|
||||
stage using available stage for that case type
|
||||
"""
|
||||
return self.stage_change(cr, uid, ids, '<', 'sequence desc', context)
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
""" Overrides orm copy method to avoid copying messages,
|
||||
as well as date_closed and date_open columns if they
|
||||
exist."""
|
||||
if default is None:
|
||||
default = {}
|
||||
|
||||
if hasattr(self, '_columns'):
|
||||
if self._columns.get('date_closed'):
|
||||
default.update({ 'date_closed': False, })
|
||||
if self._columns.get('date_open'):
|
||||
default.update({ 'date_open': False })
|
||||
return super(base_stage, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def case_escalate(self, cr, uid, ids, context=None):
|
||||
""" Escalates case to parent level """
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
cases[0].state # fill browse record cache, for _action having old and new values
|
||||
for case in cases:
|
||||
data = {'active': True}
|
||||
if case.section_id.parent_id:
|
||||
data['section_id'] = case.section_id.parent_id.id
|
||||
if case.section_id.parent_id.change_responsible:
|
||||
if case.section_id.parent_id.user_id:
|
||||
data['user_id'] = case.section_id.parent_id.user_id.id
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
|
||||
self.write(cr, uid, [case.id], data, context=context)
|
||||
case.case_escalate_send_note(case.section_id.parent_id, context=context)
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'escalate', context=context)
|
||||
return True
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
""" Opens case """
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
for case in cases:
|
||||
data = {'active': True}
|
||||
if case.stage_id and case.stage_id.state == 'draft':
|
||||
data['date_open'] = fields.datetime.now()
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.case_set(cr, uid, [case.id], 'open', data, context=context)
|
||||
self.case_open_send_note(cr, uid, [case.id], context=context)
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
""" Closes case """
|
||||
self.case_set(cr, uid, ids, 'done', {'active': True, 'date_closed': fields.datetime.now()}, context=context)
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
""" Cancels case """
|
||||
self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context)
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
""" Set case as pending """
|
||||
self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context)
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
""" Resets case as draft """
|
||||
self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context)
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_set(self, cr, uid, ids, new_state_name=None, values_to_update=None, new_stage_id=None, context=None):
|
||||
""" Generic method for setting case. This methods wraps the update
|
||||
of the record, as well as call to _action and browse_record
|
||||
case setting to fill the cache.
|
||||
|
||||
:params new_state_name: the new state of the record; this method
|
||||
will call ``stage_set_with_state_name``
|
||||
that will find the stage matching the
|
||||
new state, using the ``stage_find`` method.
|
||||
:params new_stage_id: alternatively, you may directly give the
|
||||
new stage of the record
|
||||
:params state_name: the new value of the state, such as
|
||||
'draft' or 'close'.
|
||||
:params update_values: values that will be added with the state
|
||||
update when writing values to the record.
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
cases[0].state # fill browse record cache, for _action having old and new values
|
||||
# 1. update the stage
|
||||
if new_state_name:
|
||||
self.stage_set_with_state_name(cr, uid, cases, new_state_name, context=context)
|
||||
elif not (new_stage_id is None):
|
||||
self.stage_set(cr, uid, ids, new_stage_id, context=context)
|
||||
# 2. update values
|
||||
if values_to_update:
|
||||
self.write(cr, uid, ids, values_to_update, context=context)
|
||||
# 3. call _action for base action rule
|
||||
if new_state_name:
|
||||
self._action(cr, uid, cases, new_state_name, context=context)
|
||||
elif not (new_stage_id is None):
|
||||
new_state_name = self.read(cr, uid, ids, ['state'], context=context)[0]['state']
|
||||
self._action(cr, uid, cases, new_state_name, context=context)
|
||||
return True
|
||||
|
||||
def _action(self, cr, uid, cases, state_to, scrit=None, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
context['state_to'] = state_to
|
||||
rule_obj = self.pool.get('base.action.rule')
|
||||
if not rule_obj:
|
||||
return True
|
||||
model_obj = self.pool.get('ir.model')
|
||||
model_ids = model_obj.search(cr, uid, [('model','=',self._name)], context=context)
|
||||
rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])], context=context)
|
||||
return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
|
||||
|
||||
def remind_partner(self, cr, uid, ids, context=None, attach=False):
|
||||
return self.remind_user(cr, uid, ids, context, attach,
|
||||
destination=False)
|
||||
|
||||
def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True):
|
||||
mail_message = self.pool.get('mail.message')
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
if not destination and not case.email_from:
|
||||
return False
|
||||
if not case.user_id.user_email:
|
||||
return False
|
||||
if destination and case.section_id.user_id:
|
||||
case_email = case.section_id.user_id.user_email
|
||||
else:
|
||||
case_email = case.user_id.user_email
|
||||
|
||||
src = case_email
|
||||
dest = case.user_id.user_email or ""
|
||||
body = case.description or ""
|
||||
for message in case.message_ids:
|
||||
if message.email_from and message.body_text:
|
||||
body = message.body_text
|
||||
break
|
||||
|
||||
if not destination:
|
||||
src, dest = dest, case.email_from
|
||||
if body and case.user_id.signature:
|
||||
if body:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
else:
|
||||
body = '\n\n%s' % (case.user_id.signature)
|
||||
|
||||
body = self.format_body(body)
|
||||
|
||||
attach_to_send = {}
|
||||
|
||||
if attach:
|
||||
attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)])
|
||||
attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas'])
|
||||
attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send))
|
||||
|
||||
# Send an email
|
||||
subject = "Reminder: [%s] %s" % (str(case.id), case.name, )
|
||||
mail_message.schedule_with_attach(cr, uid,
|
||||
src,
|
||||
[dest],
|
||||
subject,
|
||||
body,
|
||||
model=self._name,
|
||||
reply_to=case.section_id.reply_to,
|
||||
res_id=case.id,
|
||||
attachments=attach_to_send,
|
||||
context=context
|
||||
)
|
||||
return True
|
||||
|
||||
def _check(self, cr, uid, ids=False, context=None):
|
||||
""" Function called by the scheduler to process cases for date actions.
|
||||
Must be overriden by inheriting classes.
|
||||
"""
|
||||
return True
|
||||
|
||||
def format_body(self, body):
|
||||
return self.pool.get('base.action.rule').format_body(body)
|
||||
|
||||
def format_mail(self, obj, body):
|
||||
return self.pool.get('base.action.rule').format_mail(obj, body)
|
||||
|
||||
def message_thread_followers(self, cr, uid, ids, context=None):
|
||||
res = {}
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
l=[]
|
||||
if case.email_cc:
|
||||
l.append(case.email_cc)
|
||||
if case.user_id and case.user_id.user_email:
|
||||
l.append(case.user_id.user_email)
|
||||
res[case.id] = l
|
||||
return res
|
||||
|
||||
# ******************************
|
||||
# Notifications
|
||||
# ******************************
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
""" Default prefix for notifications. For example: "%s has been
|
||||
<b>closed</b>.". As several models will inherit from base_stage,
|
||||
this method returns a void string. Class using base_stage
|
||||
will have to override this method to define the prefix they
|
||||
want to display.
|
||||
"""
|
||||
return ''
|
||||
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Send a notification when the stage changes. This method has
|
||||
to be overriden, because each document will have its particular
|
||||
behavior and/or stage model (such as project.task.type or
|
||||
crm.case.stage).
|
||||
"""
|
||||
return True
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>opened</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>closed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>canceled</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_pending_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s is now <b>pending</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>renewed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None):
|
||||
for id in ids:
|
||||
if new_section:
|
||||
msg = '%s has been <b>escalated</b> to <b>%s</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name)
|
||||
else:
|
||||
msg = '%s has been <b>escalated</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context)
|
||||
return True
|
||||
@@ -0,0 +1,194 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
class base_state(object):
|
||||
""" Base utility mixin class for objects willing to manage their state.
|
||||
Object subclassing this class should define the following colums:
|
||||
- ``date_open`` (datetime field)
|
||||
- ``date_closed`` (datetime field)
|
||||
- ``user_id`` (many2one to res.users)
|
||||
- ``partner_id`` (many2one to res.partner)
|
||||
- ``state`` (selection field)
|
||||
"""
|
||||
|
||||
def _get_default_partner(self, cr, uid, context=None):
|
||||
""" Gives id of partner for current user
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if hasattr(user, 'partner_address_id') and user.partner_address_id:
|
||||
return user.partner_address_id
|
||||
return user.company_id.partner_id.id
|
||||
|
||||
def _get_default_email(self, cr, uid, context=None):
|
||||
""" Gives default email address for current user
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
return user.user_email
|
||||
|
||||
def _get_default_user(self, cr, uid, context=None):
|
||||
""" Gives current user id
|
||||
:param context: if portal not in context returns False
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context or not context.get('portal'):
|
||||
return False
|
||||
return uid
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
""" This function returns value of partner email based on Partner Address
|
||||
:param add: Id of Partner's address
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data = {'value': {'email_from': False, 'phone':False}}
|
||||
if add:
|
||||
address = self.pool.get('res.partner').browse(cr, uid, add)
|
||||
data['value'] = {'email_from': address and address.email or False ,
|
||||
'phone': address and address.phone or False}
|
||||
if 'phone' not in self._columns:
|
||||
del data['value']['phone']
|
||||
return data
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
""" This function returns value of partner address based on partner
|
||||
:param part: Partner's id
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data={}
|
||||
if part:
|
||||
addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
|
||||
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
|
||||
return {'value': data}
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
""" Opens case """
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
for case in cases:
|
||||
values = {'active': True}
|
||||
if case.state == 'draft':
|
||||
values['date_open'] = fields.datetime.now()
|
||||
if not case.user_id:
|
||||
values['user_id'] = uid
|
||||
self.case_set(cr, uid, [case.id], 'open', values, context=context)
|
||||
self.case_open_send_note(cr, uid, [case.id], context=context)
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
""" Closes case """
|
||||
self.case_set(cr, uid, ids, 'done', {'date_closed': fields.datetime.now()}, context=context)
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
""" Cancels case """
|
||||
self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context)
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
""" Sets case as pending """
|
||||
self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context)
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
""" Resets case as draft """
|
||||
self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context)
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_set(self, cr, uid, ids, state_name, update_values=None, context=None):
|
||||
""" Generic method for setting case. This methods wraps the update
|
||||
of the record, as well as call to _action and browse_record
|
||||
case setting to fill the cache.
|
||||
|
||||
:params: state_name: the new value of the state, such as
|
||||
'draft' or 'close'.
|
||||
:params: update_values: values that will be added with the state
|
||||
update when writing values to the record.
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids, context=context)
|
||||
cases[0].state # fill browse record cache, for _action having old and new values
|
||||
if update_values is None:
|
||||
update_values = {}
|
||||
update_values['state'] = state_name
|
||||
self.write(cr, uid, ids, update_values, context=context)
|
||||
self._action(cr, uid, cases, state_name, context=context)
|
||||
|
||||
def _action(self, cr, uid, cases, state_to, scrit=None, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
context['state_to'] = state_to
|
||||
rule_obj = self.pool.get('base.action.rule')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
model_ids = model_obj.search(cr, uid, [('model','=',self._name)])
|
||||
rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])])
|
||||
return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
|
||||
|
||||
# ******************************
|
||||
# Notifications
|
||||
# ******************************
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return ''
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>opened</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>closed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>canceled</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_pending_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s is now <b>pending</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>renewed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
@@ -0,0 +1,279 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-24 04:40+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro
|
||||
msgid "Base Synchronization"
|
||||
msgstr "ベースの同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_db:0
|
||||
msgid "Server Database"
|
||||
msgstr "サーバデータベース"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.server:0
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_server
|
||||
msgid "Synchronized server"
|
||||
msgstr "同期サーバ"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,name:0
|
||||
msgid "Field Name"
|
||||
msgstr "項目名"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,synchronize_date:0
|
||||
msgid "Latest Synchronization"
|
||||
msgstr "最終同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,user_id:0
|
||||
msgid "Send Result To"
|
||||
msgstr "結果送信先"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid
|
||||
msgid "Fields to not synchronize"
|
||||
msgstr "非同期項目"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Close"
|
||||
msgstr "閉じる"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Transfer Data To Server"
|
||||
msgstr "サーバにデータ転送"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj
|
||||
msgid "Register Class"
|
||||
msgstr "クラス登録"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.transfer_menu_id
|
||||
msgid "Synchronized objects"
|
||||
msgstr "同期済オブジェクト"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,obj_ids:0
|
||||
msgid "Models"
|
||||
msgstr "モデル"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,obj_id:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,obj_id:0
|
||||
msgid "Object"
|
||||
msgstr "オブジェクト"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Synchronization Completed!"
|
||||
msgstr "同期が完了しました。"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,login:0
|
||||
msgid "User Name"
|
||||
msgstr "ユーザ名"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Group By"
|
||||
msgstr "グループ化"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Upload"
|
||||
msgstr "アップロード"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Latest synchronization"
|
||||
msgstr "最終同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,name:0
|
||||
msgid "Date"
|
||||
msgstr "日付"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,password:0
|
||||
msgid "Password"
|
||||
msgstr "パスワード"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,avoid_ids:0
|
||||
msgid "Fields Not Sync."
|
||||
msgstr "非同期項目"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Both"
|
||||
msgstr "両方"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,name:0
|
||||
msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Fields"
|
||||
msgstr "項目"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Transfered Ids Details"
|
||||
msgstr "転送IDの詳細"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,action:0
|
||||
msgid "Synchronisation direction"
|
||||
msgstr "同期指示"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,server_id:0
|
||||
msgid "Server"
|
||||
msgstr "サーバ"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_line
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree
|
||||
msgid "Synchronized instances"
|
||||
msgstr "同期インスタンス"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,active:0
|
||||
msgid "Active"
|
||||
msgstr "アクティブ"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: field:base.synchro.obj,model_id:0
|
||||
msgid "Object to synchronize"
|
||||
msgstr "同期させるオブジェクト"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id
|
||||
msgid "Servers to be synchronized"
|
||||
msgstr "同期されるサーバ"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Transfer Details"
|
||||
msgstr "転送の詳細"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,remote_id:0
|
||||
msgid "Remote Id"
|
||||
msgstr "リモート ID"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,line_id:0
|
||||
msgid "Ids Affected"
|
||||
msgstr "影響を受けたID"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_63
|
||||
msgid "History"
|
||||
msgstr "履歴"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_62
|
||||
#: model:ir.ui.menu,name:base_synchro.synch_config
|
||||
msgid "Synchronization"
|
||||
msgstr "同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,domain:0
|
||||
msgid "Domain"
|
||||
msgstr "ドメイン"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Synchronize"
|
||||
msgstr "同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,name:0
|
||||
msgid "Server name"
|
||||
msgstr "サーバ名"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "順序"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid ""
|
||||
"The synchronisation has been started.You will receive a request when it's "
|
||||
"done."
|
||||
msgstr "同期が開始されました。完了したら、あなたは要求を受け取るでしょう。"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_port:0
|
||||
msgid "Server Port"
|
||||
msgstr "サーバのポート"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro
|
||||
msgid "Synchronize objects"
|
||||
msgstr "オブジェクトの同期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro
|
||||
msgid "base.synchro"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,local_id:0
|
||||
msgid "Local Id"
|
||||
msgstr "ローカルID"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form
|
||||
msgid "Filters"
|
||||
msgstr "フィルタ"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Download"
|
||||
msgstr "ダウンロード"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,server_url:0
|
||||
#: field:base.synchro.server,server_url:0
|
||||
msgid "Server URL"
|
||||
msgstr "サーバURL"
|
||||
@@ -0,0 +1,348 @@
|
||||
# Gujarati translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-31 11:09+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid " Year "
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_menu_create
|
||||
msgid "Menu Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.menu.create:0
|
||||
msgid "Menu Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.users:0
|
||||
msgid "Latest Connections"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in last month"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board.open_board_administration_form
|
||||
msgid "Administration Dashboard"
|
||||
msgstr "સંચાલન ડેશબોર્ડ"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Group By..."
|
||||
msgstr "ગ્રુપ દ્વારા..."
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in current year"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_board
|
||||
msgid "Board"
|
||||
msgstr "બૉર્ડ"
|
||||
|
||||
#. module: board
|
||||
#: field:board.menu.create,menu_name:0
|
||||
msgid "Menu Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.board_weekly_res_log_report_action
|
||||
#: view:res.log.report:0
|
||||
msgid "Weekly Global Activity"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,name:0
|
||||
msgid "Title"
|
||||
msgstr "શીર્ષક"
|
||||
|
||||
#. module: board
|
||||
#: field:res.log.report,nbr:0
|
||||
msgid "# of Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
#: field:res.log.report,month:0
|
||||
msgid "Month"
|
||||
msgstr "મહિનો"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in current month"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action
|
||||
#: view:res.log.report:0
|
||||
msgid "Monthly Activity per Document"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
msgid "Configuration Overview"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_view_board_list_form
|
||||
#: model:ir.ui.menu,name:board.menu_view_board_form
|
||||
msgid "Dashboard Definition"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "March"
|
||||
msgstr "માર્ચ"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "August"
|
||||
msgstr "ઑગસ્ટ"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_user_connection_tree
|
||||
msgid "User Connections"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:res.log.report,creation_date:0
|
||||
msgid "Creation Date"
|
||||
msgstr "સર્જન તારીખ"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:res.log.report,res_model:0
|
||||
msgid "Object"
|
||||
msgstr "વસ્તુ"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "June"
|
||||
msgstr "જૂન"
|
||||
|
||||
#. module: board
|
||||
#: field:board.board,line_ids:0
|
||||
msgid "Action Views"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_res_log_report
|
||||
msgid "Log Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: code:addons/board/wizard/board_menu_create.py:46
|
||||
#, python-format
|
||||
msgid "Please Insert Dashboard View(s) !"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "July"
|
||||
msgstr "જુલાઈ"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
#: field:res.log.report,day:0
|
||||
msgid "Day"
|
||||
msgstr "દિવસ"
|
||||
|
||||
#. module: board
|
||||
#: view:board.menu.create:0
|
||||
msgid "Create Menu For Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_board_line
|
||||
msgid "Board Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.menu.create,menu_parent_id:0
|
||||
msgid "Parent Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid " Month-1 "
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: help:board.board.line,sequence:0
|
||||
msgid ""
|
||||
"Gives the sequence order when displaying a list of "
|
||||
"board lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: field:board.board,name:0
|
||||
#: field:board.board.line,board_id:0
|
||||
#: model:ir.ui.menu,name:board.menu_dasboard
|
||||
msgid "Dashboard"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: code:addons/board/wizard/board_menu_create.py:45
|
||||
#, python-format
|
||||
msgid "User Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,action_id:0
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,position:0
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.board_homepage_action
|
||||
msgid "Home Page"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_latest_activities_tree
|
||||
msgid "Latest Activities"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:board.board.line,position:0
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board,view_id:0
|
||||
msgid "Board View"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:board.board.line,position:0
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,width:0
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid " Month "
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: view:board.menu.create:0
|
||||
msgid "Create Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,height:0
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_board_menu_create
|
||||
msgid "Create Board Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
#: field:res.log.report,name:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.menu.create:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
msgid "Dashboard View"
|
||||
msgstr ""
|
||||
+21
-21
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-29 04:47+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-24 04:45+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-30 04:41+0000\n"
|
||||
"X-Generator: Launchpad (build 15171)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
@@ -115,12 +115,12 @@ msgstr "ダッシュボードの定義"
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "March"
|
||||
msgstr "3月"
|
||||
msgstr "3月"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "August"
|
||||
msgstr "8月"
|
||||
msgstr "8月"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_user_connection_tree
|
||||
@@ -192,7 +192,7 @@ msgstr "10月"
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_board_line
|
||||
msgid "Board Line"
|
||||
msgstr ""
|
||||
msgstr "ボード行"
|
||||
|
||||
#. module: board
|
||||
#: field:board.menu.create,menu_parent_id:0
|
||||
@@ -224,7 +224,7 @@ msgstr "11月"
|
||||
msgid ""
|
||||
"Gives the sequence order when displaying a list of "
|
||||
"board lines."
|
||||
msgstr ""
|
||||
msgstr "ボード行のリストを表示する場合、並び順を指定して下さい。"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
@@ -248,7 +248,7 @@ msgstr "ユーザエラー"
|
||||
#. module: board
|
||||
#: field:board.board.line,action_id:0
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
msgstr "アクション"
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,position:0
|
||||
@@ -268,7 +268,7 @@ msgstr "ホームページ"
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_latest_activities_tree
|
||||
msgid "Latest Activities"
|
||||
msgstr ""
|
||||
msgstr "最新の行動"
|
||||
|
||||
#. module: board
|
||||
#: selection:board.board.line,position:0
|
||||
@@ -278,58 +278,58 @@ msgstr "左"
|
||||
#. module: board
|
||||
#: field:board.board,view_id:0
|
||||
msgid "Board View"
|
||||
msgstr ""
|
||||
msgstr "ボードビュー"
|
||||
|
||||
#. module: board
|
||||
#: selection:board.board.line,position:0
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
msgstr "右"
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,width:0
|
||||
msgid "Width"
|
||||
msgstr ""
|
||||
msgstr "幅"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid " Month "
|
||||
msgstr ""
|
||||
msgstr " 月 "
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
msgstr "順序"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "9月"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
msgstr "12月"
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: view:board.menu.create:0
|
||||
msgid "Create Menu"
|
||||
msgstr ""
|
||||
msgstr "メニューの作成"
|
||||
|
||||
#. module: board
|
||||
#: field:board.board.line,height:0
|
||||
msgid "Height"
|
||||
msgstr ""
|
||||
msgstr "高さ"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_board_menu_create
|
||||
msgid "Create Board Menu"
|
||||
msgstr ""
|
||||
msgstr "ボードメニューの作成"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
msgstr "5月"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
|
||||
+139
-9
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:21+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-24 17:42+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-25 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
@@ -57,6 +57,29 @@ msgid ""
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"事前要求事項\n"
|
||||
"----------\n"
|
||||
"CalDAVとのカレンダー同期を行う組み込みの方法はありません。\n"
|
||||
"サードパーティのソフトウェアのインストールが必要です:Calendar(CalDAV)が現在唯一です。\n"
|
||||
"\n"
|
||||
"設定\n"
|
||||
"-------------\n"
|
||||
"\n"
|
||||
"1. Calendar Syncを開きます。\n"
|
||||
" 2つのタブのインタフェースが現れます。\n"
|
||||
" 最初のタブに留まります。\n"
|
||||
"\n"
|
||||
"2. CaDAV Calendar URL:そのURL にアクセスします(即ち "
|
||||
"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)。\n"
|
||||
"\n"
|
||||
"3. OpenERPのユーザ名とパスワードを入力します。\n"
|
||||
"\n"
|
||||
"4. サーバがSSLを使わない場合は警告を受けます。\"Yes\"を応答します。\n"
|
||||
"\n"
|
||||
"5. すると、手動で同期、または x分毎に同期を設定するカスタマイズが可能です。\n"
|
||||
"\n"
|
||||
" "
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.alias,name:0
|
||||
@@ -104,6 +127,9 @@ msgid ""
|
||||
"to synchronize Meeting with Calendars client.You can access Calendars using "
|
||||
"CalDAV clients, like sunbird, Calendar Evaluation, Mobile."
|
||||
msgstr ""
|
||||
"カレンダーはOpenERPモデルの全てとともにカレンダーイベントとToDo属性のカスタマイズが可能です。カレンダーはiCalのインポート / "
|
||||
"エクスポートを提供します。WebDAVサーバはカレンダーへのリモートアクセスを提供します。カレンダークライアントとともにミーティングの同期を手伝います。S"
|
||||
"unbird、Calendar Evaluation、MobileのようにCalDAVクライアントを使ってカレンダーにアクセスできます。"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:789
|
||||
@@ -176,6 +202,26 @@ msgid ""
|
||||
"side.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" 1. カレンダービューへ行く\n"
|
||||
"\n"
|
||||
" 2. ファイル -> 新規 -> カレンダー\n"
|
||||
"\n"
|
||||
" 3. フォームを埋める\n"
|
||||
" ・ タイプ:CalDav\n"
|
||||
" ・ 名前:好みの名前(例:会議)\n"
|
||||
" ・ "
|
||||
"URL:http://HOST:PORT/webdav/DB_NAME/calendars/users/USER/c/Meetings (例: "
|
||||
"http://localhost:8069/webdav/db_1/calendars/users/demo/c/Meetings)このウィンドウに与えら"
|
||||
"れたもの\n"
|
||||
" ・ \"SSL使用\"のチェックを外す\n"
|
||||
" ・ ユーザ名:あなたのユーザ名(例:demo)\n"
|
||||
" ・ リフレッシュ:サーバとデータの同期を行う好みの時間間隔\n"
|
||||
"\n"
|
||||
" 4. OKをクリックし、OpenERPのパスワードを入力\n"
|
||||
"\n"
|
||||
" 5. 名付けをした新しいカレンダーが左側に表示\n"
|
||||
" "
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:879
|
||||
@@ -218,7 +264,7 @@ msgstr "ICS をエクスポートする"
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Use the field"
|
||||
msgstr ""
|
||||
msgstr "この項目を使用"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:789
|
||||
@@ -475,6 +521,25 @@ msgid ""
|
||||
"created\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" ・ WebDAVサーバはカレンダーにリモートアクセスを提供\n"
|
||||
" ・ WebDAVを使ってカレンダーの同期\n"
|
||||
" ・ 全てのOpenERPモデルとともにカレンダーイベントとToDo属性をカスタマイズ\n"
|
||||
" ・ iCalのインポート / エクスポート機能を提供\n"
|
||||
"\n"
|
||||
" CalDAVクライアントを使ってカレンダーにアクセスする先:\n"
|
||||
" "
|
||||
"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
|
||||
"\n"
|
||||
" WebCalを使ってOpenERPカレンダーにアクセスするためのリモートサイトのURL:\n"
|
||||
" "
|
||||
"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
|
||||
"\n"
|
||||
" 場所\n"
|
||||
" HOSTNAME:稼動中のOpenERPサーバ(WebDAVとともに)ホスト名\n"
|
||||
" PORT:稼動中のOpenERPサーバのポート(デフォルト:8069)\n"
|
||||
" DATABASE_NAME:作成されたOpenERPカレンダーのデータベース名\n"
|
||||
" "
|
||||
|
||||
#. module: caldav
|
||||
#: sql_constraint:document.directory:0
|
||||
@@ -560,6 +625,30 @@ msgid ""
|
||||
"\n"
|
||||
"7. Then Finish, your meetings should appear now in your calendar view\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"事前要求事項\n"
|
||||
"----------\n"
|
||||
"Thunderbirdを使っている場合、最初にlightningモジュールをインストールする必要があります。\n"
|
||||
"http://www.mozilla.org/projects/calendar/lightning/\n"
|
||||
"\n"
|
||||
"設定\n"
|
||||
"-------------\n"
|
||||
"1. カレンダービューへ行く\n"
|
||||
"\n"
|
||||
"2. ファイル -> 新規カレンダー\n"
|
||||
"\n"
|
||||
"3. \"ネットワークで\"を選択\n"
|
||||
"\n"
|
||||
"4. フォーマットとしてCalDAVを選択\n"
|
||||
" "
|
||||
"場所としてURLを指定(例:http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)"
|
||||
"\n"
|
||||
"\n"
|
||||
"5. カレンダーの名前と色を選択。警報のチェックを外すのが望ましい\n"
|
||||
"\n"
|
||||
"6. OpenERPのログイン名とパスワードを入力(パスワード入力を1回だけとする場合はパスワードを記憶するをチェック)\n"
|
||||
"\n"
|
||||
"7. 完了すると、その時にはカレンダービューにミーティングが現れる\n"
|
||||
|
||||
#. module: caldav
|
||||
#: view:caldav.browse:0
|
||||
@@ -596,7 +685,7 @@ msgstr "私のカレンダー"
|
||||
msgid ""
|
||||
"Also export a <name>.ics entry next to the calendar folder, with WebCal "
|
||||
"content."
|
||||
msgstr ""
|
||||
msgstr "また、<name>.ics エントリーを隣のカレンダーフォルダにWebCalコンテンツとともにインポートします。"
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,fn:0
|
||||
@@ -619,7 +708,7 @@ msgstr "詳細"
|
||||
#. module: caldav
|
||||
#: help:basic.calendar.alias,cal_line_id:0
|
||||
msgid "The calendar/line this mapping applies to"
|
||||
msgstr ""
|
||||
msgstr "このマッピングのカレンダー / 行の適用先"
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.fields,mapping:0
|
||||
@@ -660,7 +749,7 @@ msgstr "遠隔カレンダを継読する。"
|
||||
#. module: caldav
|
||||
#: help:basic.calendar,calendar_color:0
|
||||
msgid "For supporting clients, the color of the calendar entries"
|
||||
msgstr ""
|
||||
msgstr "サポートするクライアントのカレンダーエントリーの色"
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar,name:0
|
||||
@@ -761,6 +850,47 @@ msgid ""
|
||||
" now trusts it.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" SSL固有の設定は以下のドキュメントを参照して下さい。\n"
|
||||
"\n"
|
||||
"カレンダーの設定のために次のことをする必要があります:\n"
|
||||
"\n"
|
||||
"1. 設定をクリックし、メール、コンタクト、カレンダーページに行きます。\n"
|
||||
"2. アカウントを追加に進みます。\n"
|
||||
"3. その他をクリックします。\n"
|
||||
"4. カレンダーグループからCalDAVアカウントの追加を選択します。\n"
|
||||
"\n"
|
||||
"5. ホスト名を入力します。\n"
|
||||
" (例:URLが http://openerp.com:8069/webdav/db_1/calendars/ "
|
||||
"であれば、openerp.comのホスト)\n"
|
||||
"\n"
|
||||
"6. OpenERPのユーザ名とパスワードを埋めます。\n"
|
||||
"\n"
|
||||
"7. 詳細として、サーバ名かOpenERPカレンダーの類の何れかを残すことができます。\n"
|
||||
"\n"
|
||||
"9. SSLサーバを使わない場合、エラーが発生します。気に留めず継続を押下します。\n"
|
||||
"\n"
|
||||
"10. 詳細設定をクリックし正しいポートとパスを設定します。\n"
|
||||
"\n"
|
||||
"11. OpenERPサーバのポートを指定:SSLは8071、他は8069\n"
|
||||
"\n"
|
||||
"12. アカウントURLにOpenERP WebDAVの正しいパスを設定します。\n"
|
||||
" URLはウィザードにより与えられます(例:http://my.server.ip:8069/webdav/dbname/calendars/)\n"
|
||||
"\n"
|
||||
"13. 完了をクリック。上手くいけば電話はOpenERPサーバに接続詞アカウントの使用を検証します。\n"
|
||||
"\n"
|
||||
"14. iPhoneのメインメニューに行き、カレンダーアプリケーションに入ります。\n"
|
||||
" あなたのOpenERPカレンダーはカレンダーボタンの選択の内側に表示される。\n"
|
||||
" 新しいカレンダーエントリーを作成する時、保存されるカレンダーの指定が必要であることに注意して下さい。\n"
|
||||
"\n"
|
||||
"SSLを必要とする場合は(証明書はいつものように検証済ではない)、最初に次の手順でiPhoneに信頼させることが必要です。\n"
|
||||
"IF you need SSL (and your certificate is not a verified one, as usual),\n"
|
||||
"\n"
|
||||
" s1. Safari(ブラウザ)を開いてOpenERPサーバのhttpsの場所を入力します:\n"
|
||||
" https://my.server.ip:8071/\n"
|
||||
" (サーバが\"my.server.ip\"にありHTTPSポートがデフォルトの8071と想定)\n"
|
||||
" s2. Safariは接続してその証明書が使われたことを警告します。証明書を検証し、同意するとiPhoneは信頼します。\n"
|
||||
" "
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
@@ -817,7 +947,7 @@ msgstr "basic.calendar.todo"
|
||||
#. module: caldav
|
||||
#: help:basic.calendar,calendar_order:0
|
||||
msgid "For supporting clients, the order of this folder among the calendars"
|
||||
msgstr ""
|
||||
msgstr "サポートするクライアントのカレンダー中のフォルダ並び順"
|
||||
|
||||
#~ msgid "Provide path for Remote Calendar"
|
||||
#~ msgstr "遠隔カレンダーへの経路を指定して下さい。"
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 17:59+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:16+0000\n"
|
||||
"Last-Translator: ThinkOpen Solutions <Unknown>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:13+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
@@ -672,7 +672,7 @@ msgstr ""
|
||||
#. module: caldav
|
||||
#: view:caldav.browse:0
|
||||
msgid "Browse Caldav"
|
||||
msgstr ""
|
||||
msgstr "Pesquisa Caldav"
|
||||
|
||||
#. module: caldav
|
||||
#: field:user.preference,host_name:0
|
||||
|
||||
@@ -57,6 +57,7 @@ Creates a dashboard for CRM that includes:
|
||||
'depends': [
|
||||
'base_action_rule',
|
||||
'base_setup',
|
||||
'base_status',
|
||||
'process',
|
||||
'mail',
|
||||
'base_calendar',
|
||||
@@ -66,7 +67,6 @@ Creates a dashboard for CRM that includes:
|
||||
],
|
||||
'init_xml': [
|
||||
'crm_data.xml',
|
||||
'crm_meeting_data.xml',
|
||||
'crm_lead_data.xml',
|
||||
'crm_meeting_data.xml',
|
||||
'crm_phonecall_data.xml',
|
||||
|
||||
@@ -19,19 +19,13 @@
|
||||
<field name="planned_revenue" sum="Total of Planned Revenue"/>
|
||||
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="open,draft" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_mark_lost" string="Lost"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_close" string="Won"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-apply" />
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_mark_won" string="Won" type="object"
|
||||
states="open,pending" icon="gtk-apply"/>
|
||||
<button name="case_mark_lost" string="Lost" type="object"
|
||||
states="open,pending" icon="gtk-cancel"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
+26
-435
@@ -2,7 +2,7 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,12 +19,11 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import base64
|
||||
import tools
|
||||
|
||||
import time
|
||||
from osv import fields
|
||||
from osv import osv
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
MAX_LEVEL = 15
|
||||
@@ -57,8 +56,11 @@ class crm_case_channel(osv.osv):
|
||||
}
|
||||
|
||||
class crm_case_stage(osv.osv):
|
||||
""" Stage of case """
|
||||
|
||||
""" Model for case stages. This models the main stages of a document
|
||||
management flow. Main CRM objects (leads, opportunities, project
|
||||
issues, ...) will now use only stages, instead of state and stages.
|
||||
Stages are for example used to display the kanban view of records.
|
||||
"""
|
||||
_name = "crm.case.stage"
|
||||
_description = "Stage of case"
|
||||
_rec_name = 'name'
|
||||
@@ -66,22 +68,34 @@ class crm_case_stage(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Stage Name', size=64, required=True, translate=True),
|
||||
'sequence': fields.integer('Sequence', help="Used to order stages."),
|
||||
'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."),
|
||||
'probability': fields.float('Probability (%)', required=True, help="This percentage depicts the default/average probability of the Case for this stage to be a success"),
|
||||
'on_change': fields.boolean('Change Probability Automatically', help="Setting this stage will change the probability automatically on the opportunity."),
|
||||
'requirements': fields.text('Requirements'),
|
||||
'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', 'Sections'),
|
||||
'case_default': fields.boolean('Common to All Teams', help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
|
||||
'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', string='Sections',
|
||||
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."),
|
||||
'case_default': fields.boolean('Common to All Teams',
|
||||
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
|
||||
'fold': fields.boolean('Hide in Views when Empty',
|
||||
help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
|
||||
'type': fields.selection([ ('lead','Lead'),
|
||||
('opportunity', 'Opportunity'),
|
||||
('both', 'Both')],
|
||||
string='Type', size=16, required=True,
|
||||
help="This field is used to distinguish stages related to Leads from stages related to Opportunities, or to specify stages available for both types."),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'sequence': lambda *args: 1,
|
||||
'probability': lambda *args: 0.0,
|
||||
'state': 'draft',
|
||||
'fold': False,
|
||||
'type': 'both',
|
||||
}
|
||||
|
||||
class crm_case_section(osv.osv):
|
||||
"""Sales Team"""
|
||||
|
||||
""" Model for sales teams. """
|
||||
_name = "crm.case.section"
|
||||
_description = "Sales Teams"
|
||||
_order = "complete_name"
|
||||
@@ -107,6 +121,7 @@ class crm_case_section(osv.osv):
|
||||
'working_hours': fields.float('Working Hours', digits=(16,2 )),
|
||||
'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'),
|
||||
}
|
||||
|
||||
def _get_stage_common(self, cr, uid, context):
|
||||
ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context)
|
||||
return ids
|
||||
@@ -171,430 +186,6 @@ class crm_case_resource_type(osv.osv):
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
}
|
||||
|
||||
class crm_base(object):
|
||||
""" Base utility mixin class for crm objects,
|
||||
Object subclassing this should define colums:
|
||||
date_open
|
||||
date_closed
|
||||
user_id
|
||||
partner_id
|
||||
"""
|
||||
def _get_default_partner_address(self, cr, uid, context=None):
|
||||
"""Gives id of default address for current user
|
||||
:param context: if portal in context is false return false anyway
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context.get('portal'):
|
||||
return False
|
||||
# was user.address_id.id, but address_id has been removed
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if hasattr(user, 'partner_address_id') and user.partner_address_id:
|
||||
return user.partner_address_id
|
||||
return False
|
||||
|
||||
def _get_default_partner(self, cr, uid, context=None):
|
||||
"""Gives id of partner for current user
|
||||
:param context: if portal in context is false return false anyway
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if not context.get('portal', False):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if hasattr(user, 'partner_address_id') and user.partner_address_id:
|
||||
return user.partner_address_id
|
||||
return user.company_id.partner_id.id
|
||||
|
||||
def _get_default_email(self, cr, uid, context=None):
|
||||
"""Gives default email address for current user
|
||||
:param context: if portal in context is false return false anyway
|
||||
"""
|
||||
if not context.get('portal', False):
|
||||
return False
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
return user.user_email
|
||||
|
||||
def _get_default_user(self, cr, uid, context=None):
|
||||
"""Gives current user id
|
||||
:param context: if portal in context is false return false anyway
|
||||
"""
|
||||
if context and context.get('portal', False):
|
||||
return False
|
||||
return uid
|
||||
|
||||
def _get_section(self, cr, uid, context=None):
|
||||
return False
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
"""This function returns value of partner email based on Partner Address
|
||||
:param ids: List of case IDs
|
||||
:param add: Id of Partner's address
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data = {'value': {'email_from': False, 'phone':False}}
|
||||
if add:
|
||||
address = self.pool.get('res.partner').browse(cr, uid, add)
|
||||
data['value'] = {'email_from': address and address.email or False ,
|
||||
'phone': address and address.phone or False}
|
||||
if 'phone' not in self._columns:
|
||||
del data['value']['phone']
|
||||
return data
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
"""This function returns value of partner address based on partner
|
||||
:param ids: List of case IDs
|
||||
:param part: Partner's id
|
||||
:param email: Partner's email ID
|
||||
"""
|
||||
data={}
|
||||
if part:
|
||||
addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
|
||||
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
|
||||
return {'value': data}
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return ''
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>opened</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>closed</b>.'% (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>cancelled</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_pending_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s is now <b>pending</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>renewed</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Opens Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
for case in cases:
|
||||
data = {'state': 'open', 'active': True}
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.write(cr, uid, [case.id], data)
|
||||
self.case_open_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'open')
|
||||
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Closes Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), })
|
||||
# We use the cache of cases to keep the old case state
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'done')
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Cancels Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'cancel', 'active': True})
|
||||
# We use the cache of cases to keep the old case state
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'cancel')
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
"""Marks case as pending
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'pending', 'active': True})
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'pending')
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as draft
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'draft', 'active': True})
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'draft')
|
||||
return True
|
||||
|
||||
def _action(self, cr, uid, cases, state_to, scrit=None, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
context['state_to'] = state_to
|
||||
rule_obj = self.pool.get('base.action.rule')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
model_ids = model_obj.search(cr, uid, [('model','=',self._name)])
|
||||
rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])])
|
||||
return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
|
||||
|
||||
class crm_case(crm_base):
|
||||
""" A simple python class to be used for common functions
|
||||
Object that inherit from this class should inherit from mailgate.thread
|
||||
And need a stage_id field
|
||||
And object that inherit (orm inheritance) from a class the overwrite copy
|
||||
"""
|
||||
|
||||
def stage_find(self, cr, uid, section_id, domain=[], order='sequence'):
|
||||
domain = list(domain)
|
||||
if section_id:
|
||||
domain.append(('section_ids', '=', section_id))
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, domain, order=order)
|
||||
if stage_ids:
|
||||
return stage_ids[0]
|
||||
return False
|
||||
|
||||
def stage_set(self, cr, uid, ids, stage_id, context=None):
|
||||
value = {}
|
||||
if hasattr(self,'onchange_stage_id'):
|
||||
value = self.onchange_stage_id(cr, uid, ids, stage_id)['value']
|
||||
value['stage_id'] = stage_id
|
||||
return self.write(cr, uid, ids, value, context=context)
|
||||
|
||||
def stage_change(self, cr, uid, ids, op, order, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
seq = 0
|
||||
if case.stage_id:
|
||||
seq = case.stage_id.sequence
|
||||
section_id = None
|
||||
if case.section_id:
|
||||
section_id = case.section_id.id
|
||||
next_stage_id = self.stage_find(cr, uid, section_id, [('sequence',op,seq)],order)
|
||||
if next_stage_id:
|
||||
return self.stage_set(cr, uid, [case.id], next_stage_id, context=context)
|
||||
return False
|
||||
|
||||
def stage_next(self, cr, uid, ids, context=None):
|
||||
"""This function computes next stage for case from its current stage
|
||||
using available stage for that case type
|
||||
"""
|
||||
return self.stage_change(cr, uid, ids, '>','sequence', context)
|
||||
|
||||
def stage_previous(self, cr, uid, ids, context=None):
|
||||
"""This function computes previous stage for case from its current
|
||||
stage using available stage for that case type
|
||||
"""
|
||||
return self.stage_change(cr, uid, ids, '<', 'sequence desc', context)
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
"""Overrides orm copy method to avoid copying messages,
|
||||
as well as date_closed and date_open columns if they
|
||||
exist."""
|
||||
if default is None:
|
||||
default = {}
|
||||
|
||||
default.update({ 'message_ids': [], })
|
||||
if hasattr(self, '_columns'):
|
||||
if self._columns.get('date_closed'):
|
||||
default.update({ 'date_closed': False, })
|
||||
if self._columns.get('date_open'):
|
||||
default.update({ 'date_open': False })
|
||||
return super(crm_case, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None):
|
||||
for id in ids:
|
||||
if new_section:
|
||||
msg = '%s has been <b>escalated</b> to <b>%s</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name)
|
||||
else:
|
||||
msg = '%s has been <b>escalated</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context)
|
||||
return True
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return ''
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Opens Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
for case in cases:
|
||||
data = {'state': 'open', 'active': True }
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.write(cr, uid, [case.id], data)
|
||||
self.case_open_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'open')
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Closes Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'done',
|
||||
'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
})
|
||||
#
|
||||
# We use the cache of cases to keep the old case state
|
||||
#
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'done')
|
||||
return True
|
||||
|
||||
def case_escalate(self, cr, uid, ids, context=None):
|
||||
"""Escalates case to parent level"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
for case in cases:
|
||||
data = {'active': True}
|
||||
if case.section_id.parent_id:
|
||||
data['section_id'] = case.section_id.parent_id.id
|
||||
if case.section_id.parent_id.change_responsible:
|
||||
if case.section_id.parent_id.user_id:
|
||||
data['user_id'] = case.section_id.parent_id.user_id.id
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
|
||||
self.write(cr, uid, [case.id], data)
|
||||
case.case_escalate_send_note(case.section_id.parent_id)
|
||||
cases = self.browse(cr, uid, ids)
|
||||
self._action(cr, uid, cases, 'escalate')
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Cancels Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'cancel',
|
||||
'active': True})
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'cancel')
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
"""Marks case as pending"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'pending', 'active': True})
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'pending')
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as draft"""
|
||||
state = 'draft'
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': state, 'active': True})
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, state)
|
||||
return True
|
||||
|
||||
def remind_partner(self, cr, uid, ids, context=None, attach=False):
|
||||
return self.remind_user(cr, uid, ids, context, attach,
|
||||
destination=False)
|
||||
|
||||
def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True):
|
||||
mail_message = self.pool.get('mail.message')
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
if not destination and not case.email_from:
|
||||
return False
|
||||
if not case.user_id.user_email:
|
||||
return False
|
||||
if destination and case.section_id.user_id:
|
||||
case_email = case.section_id.user_id.user_email
|
||||
else:
|
||||
case_email = case.user_id.user_email
|
||||
|
||||
src = case_email
|
||||
dest = case.user_id.user_email or ""
|
||||
body = case.description or ""
|
||||
for message in case.message_ids:
|
||||
if message.email_from and message.body_text:
|
||||
body = message.body_text
|
||||
break
|
||||
|
||||
if not destination:
|
||||
src, dest = dest, case.email_from
|
||||
if body and case.user_id.signature:
|
||||
if body:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
else:
|
||||
body = '\n\n%s' % (case.user_id.signature)
|
||||
|
||||
body = self.format_body(body)
|
||||
|
||||
attach_to_send = {}
|
||||
|
||||
if attach:
|
||||
attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)])
|
||||
attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas'])
|
||||
attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send))
|
||||
|
||||
# Send an email
|
||||
subject = "Reminder: [%s] %s" % (str(case.id), case.name, )
|
||||
mail_message.schedule_with_attach(cr, uid,
|
||||
src,
|
||||
[dest],
|
||||
subject,
|
||||
body,
|
||||
model=self._name,
|
||||
reply_to=case.section_id.reply_to,
|
||||
res_id=case.id,
|
||||
attachments=attach_to_send,
|
||||
context=context
|
||||
)
|
||||
return True
|
||||
|
||||
def _check(self, cr, uid, ids=False, context=None):
|
||||
"""Function called by the scheduler to process cases for date actions
|
||||
Only works on not done and cancelled cases
|
||||
"""
|
||||
cr.execute('select * from crm_case \
|
||||
where (date_action_last<%s or date_action_last is null) \
|
||||
and (date_action_next<=%s or date_action_next is null) \
|
||||
and state not in (\'cancel\',\'done\')',
|
||||
(time.strftime("%Y-%m-%d %H:%M:%S"),
|
||||
time.strftime('%Y-%m-%d %H:%M:%S')))
|
||||
|
||||
ids2 = map(lambda x: x[0], cr.fetchall() or [])
|
||||
cases = self.browse(cr, uid, ids2, context=context)
|
||||
return self._action(cr, uid, cases, False, context=context)
|
||||
|
||||
def format_body(self, body):
|
||||
return self.pool.get('base.action.rule').format_body(body)
|
||||
|
||||
def format_mail(self, obj, body):
|
||||
return self.pool.get('base.action.rule').format_mail(obj, body)
|
||||
|
||||
def message_thread_followers(self, cr, uid, ids, context=None):
|
||||
res = {}
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
l=[]
|
||||
if case.email_cc:
|
||||
l.append(case.email_cc)
|
||||
if case.user_id and case.user_id.user_email:
|
||||
l.append(case.user_id.user_email)
|
||||
res[case.id] = l
|
||||
return res
|
||||
|
||||
def _links_get(self, cr, uid, context=None):
|
||||
"""Gets links value for reference field"""
|
||||
obj = self.pool.get('res.request.link')
|
||||
|
||||
+149
-99
@@ -2,7 +2,7 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,15 +19,15 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from datetime import datetime
|
||||
import crm
|
||||
import time
|
||||
from tools.translate import _
|
||||
from crm import crm_case
|
||||
import binascii
|
||||
import tools
|
||||
from base_status.base_stage import base_stage
|
||||
import crm
|
||||
from datetime import datetime
|
||||
from mail.mail_message import to_email
|
||||
from osv import fields, osv
|
||||
import time
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
CRM_LEAD_PENDING_STATES = (
|
||||
crm.AVAILABLE_STATES[2][0], # Cancelled
|
||||
@@ -35,22 +35,68 @@ CRM_LEAD_PENDING_STATES = (
|
||||
crm.AVAILABLE_STATES[4][0], # Pending
|
||||
)
|
||||
|
||||
class crm_lead(crm_case, osv.osv):
|
||||
class crm_lead(base_stage, osv.osv):
|
||||
""" CRM Lead Case """
|
||||
_name = "crm.lead"
|
||||
_description = "Lead/Opportunity"
|
||||
_order = "priority,date_action,id desc"
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread','res.partner']
|
||||
|
||||
def _get_default_section_id(self, cr, uid, context=None):
|
||||
""" Gives default section by checking if present in the context """
|
||||
return (self._resolve_section_id_from_context(cr, uid, context=context) or False)
|
||||
|
||||
def _get_default_stage_id(self, cr, uid, context=None):
|
||||
""" Gives default stage_id """
|
||||
section_id = self._get_default_section_id(cr, uid, context=context)
|
||||
return self.stage_find(cr, uid, [], section_id, [('state', '=', 'draft'), ('type', '=', 'both')], context=context)
|
||||
|
||||
def _resolve_section_id_from_context(self, cr, uid, context=None):
|
||||
""" Returns ID of section based on the value of 'section_id'
|
||||
context key, or None if it cannot be resolved to a single
|
||||
Sales Team.
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if type(context.get('default_section_id')) in (int, long):
|
||||
return context.get('default_section_id')
|
||||
if isinstance(context.get('default_section_id'), basestring):
|
||||
section_name = context['default_section_id']
|
||||
section_ids = self.pool.get('crm.case.section').name_search(cr, uid, name=section_name, context=context)
|
||||
if len(section_ids) == 1:
|
||||
return int(section_ids[0][0])
|
||||
return None
|
||||
|
||||
def _resolve_type_from_context(self, cr, uid, context=None):
|
||||
""" Returns the type (lead or opportunity) from the type context
|
||||
key. Returns None if it cannot be resolved.
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
return context.get('default_type')
|
||||
|
||||
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
|
||||
access_rights_uid = access_rights_uid or uid
|
||||
stage_obj = self.pool.get('crm.case.stage')
|
||||
order = stage_obj._order
|
||||
# lame hack to allow reverting search, should just work in the trivial case
|
||||
if read_group_order == 'stage_id desc':
|
||||
# lame hack to allow reverting search, should just work in the trivial case
|
||||
order = "%s desc" % order
|
||||
stage_ids = stage_obj._search(cr, uid, ['|', ('id','in',ids),('case_default','=',1)], order=order,
|
||||
access_rights_uid=access_rights_uid, context=context)
|
||||
# retrieve section_id from the context and write the domain
|
||||
# - ('id', 'in', 'ids'): add columns that should be present
|
||||
# - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded
|
||||
# - OR ('section_ids', '=', section_id), ('fold', '=', False) if section_id: add section columns that are not folded
|
||||
search_domain = []
|
||||
section_id = self._resolve_section_id_from_context(cr, uid, context=context)
|
||||
if section_id:
|
||||
search_domain += ['|', '&', ('section_ids', '=', section_id), ('fold', '=', False)]
|
||||
search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)]
|
||||
# retrieve type from the context (if set: choose 'type' or 'both')
|
||||
type = self._resolve_type_from_context(cr, uid, context=context)
|
||||
if type:
|
||||
search_domain += ['|', ('type', '=', type), ('type', '=', 'both')]
|
||||
# perform search
|
||||
stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context)
|
||||
result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context)
|
||||
# restore order of the search
|
||||
result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0])))
|
||||
@@ -154,7 +200,6 @@ class crm_lead(crm_case, osv.osv):
|
||||
'email_cc': fields.text('Global CC', size=252 , help="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"),
|
||||
'description': fields.text('Notes'),
|
||||
'write_date': fields.datetime('Update Date' , readonly=True),
|
||||
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', \
|
||||
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \
|
||||
@@ -167,7 +212,8 @@ class crm_lead(crm_case, osv.osv):
|
||||
'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage',
|
||||
domain="['&', '|', ('section_ids', '=', section_id), ('case_default', '=', True), '|', ('type', '=', type), ('type', '=', 'both')]"),
|
||||
'user_id': fields.many2one('res.users', 'Salesperson'),
|
||||
'referred': fields.char('Referred By', size=64),
|
||||
'date_open': fields.datetime('Opened', readonly=True),
|
||||
@@ -175,11 +221,13 @@ class crm_lead(crm_case, osv.osv):
|
||||
multi='day_open', type="float", store=True),
|
||||
'day_close': fields.function(_compute_day, string='Days to Close', \
|
||||
multi='day_close', type="float", store=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
\nIf the case is in progress the state is set to \'In progress\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'state': fields.related('stage_id', 'state', type="selection", store=True,
|
||||
selection=crm.AVAILABLE_STATES, string="State", readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
If the case is in progress the state is set to \'Open\'.\
|
||||
When the case is over, the state is set to \'Done\'.\
|
||||
If the case needs to be reviewed then the state is \
|
||||
set to \'Pending\'.'),
|
||||
'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64),
|
||||
|
||||
# Only used for type opportunity
|
||||
@@ -191,23 +239,21 @@ class crm_lead(crm_case, osv.osv):
|
||||
'date_deadline': fields.date('Expected Closing'),
|
||||
'date_action': fields.date('Next Action Date', select=True),
|
||||
'title_action': fields.char('Next Action', size=64),
|
||||
'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"),
|
||||
'color': fields.integer('Color Index'),
|
||||
'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True),
|
||||
'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True),
|
||||
'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True),
|
||||
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
|
||||
'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True),
|
||||
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
'user_id': crm_case._get_default_user,
|
||||
'email_from': crm_case._get_default_email,
|
||||
'state': lambda *a: 'draft',
|
||||
'type': lambda *a: 'lead',
|
||||
'section_id': crm_case._get_section,
|
||||
'active': 1,
|
||||
'type': 'lead',
|
||||
'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c),
|
||||
'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
|
||||
'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c),
|
||||
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'color': 0,
|
||||
@@ -240,95 +286,104 @@ class crm_lead(crm_case, osv.osv):
|
||||
return {'value':{}}
|
||||
return {'value':{'probability': stage.probability}}
|
||||
|
||||
def stage_find_percent(self, cr, uid, percent, section_id):
|
||||
""" Return the first stage with a probability == percent
|
||||
def _check(self, cr, uid, ids=False, context=None):
|
||||
""" Override of the base.stage method.
|
||||
Function called by the scheduler to process cases for date actions
|
||||
Only works on not done and cancelled cases
|
||||
"""
|
||||
stage_pool = self.pool.get('crm.case.stage')
|
||||
if section_id :
|
||||
ids = stage_pool.search(cr, uid, [("probability", '=', percent), ("section_ids", 'in', [section_id])])
|
||||
else :
|
||||
ids = stage_pool.search(cr, uid, [("probability", '=', percent)])
|
||||
cr.execute('select * from crm_case \
|
||||
where (date_action_last<%s or date_action_last is null) \
|
||||
and (date_action_next<=%s or date_action_next is null) \
|
||||
and state not in (\'cancel\',\'done\')',
|
||||
(time.strftime("%Y-%m-%d %H:%M:%S"),
|
||||
time.strftime('%Y-%m-%d %H:%M:%S')))
|
||||
|
||||
if ids:
|
||||
return ids[0]
|
||||
ids2 = map(lambda x: x[0], cr.fetchall() or [])
|
||||
cases = self.browse(cr, uid, ids2, context=context)
|
||||
return self._action(cr, uid, cases, False, context=context)
|
||||
|
||||
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
|
||||
""" Override of the base.stage method
|
||||
Parameter of the stage search taken from the lead:
|
||||
- type: stage type must be the same or 'both'
|
||||
- section_id: if set, stages must belong to this section or
|
||||
be a default stage; if not set, stages must be default
|
||||
stages
|
||||
"""
|
||||
if isinstance(cases, (int, long)):
|
||||
cases = self.browse(cr, uid, cases, context=context)
|
||||
# collect all section_ids
|
||||
section_ids = []
|
||||
types = ['both']
|
||||
if section_id:
|
||||
section_ids.append(section_id)
|
||||
for lead in cases:
|
||||
if lead.section_id:
|
||||
section_ids.append(lead.section_id.id)
|
||||
if lead.type not in types:
|
||||
types.append(lead.type)
|
||||
# OR all section_ids and OR with case_default
|
||||
search_domain = []
|
||||
if section_ids:
|
||||
search_domain += [('|')] * len(section_ids)
|
||||
for section_id in section_ids:
|
||||
search_domain.append(('section_ids', '=', section_id))
|
||||
search_domain.append(('case_default', '=', True))
|
||||
# AND with cases types
|
||||
search_domain.append(('type', 'in', types))
|
||||
# AND with the domain in parameter
|
||||
search_domain += list(domain)
|
||||
# perform search, return the first found
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context)
|
||||
if stage_ids:
|
||||
return stage_ids[0]
|
||||
return False
|
||||
|
||||
def stage_find_lost(self, cr, uid, section_id):
|
||||
return self.stage_find_percent(cr, uid, 0.0, section_id)
|
||||
|
||||
def stage_find_won(self, cr, uid, section_id):
|
||||
return self.stage_find_percent(cr, uid, 100.0, section_id)
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
for lead in self.browse(cr, uid, ids, context=context):
|
||||
if lead.state == 'draft':
|
||||
value = {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')}
|
||||
self.write(cr, uid, [lead.id], value)
|
||||
if lead.type == 'opportunity' and not lead.stage_id:
|
||||
stage_id = self.stage_find(cr, uid, lead.section_id.id or False, [('sequence','>',0)])
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
res = super(crm_lead, self).case_open(cr, uid, ids, context)
|
||||
return res
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
return res
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Overrides cancel for crm_case for setting probability
|
||||
"""
|
||||
res = super(crm_lead, self).case_cancel(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
""" Overrides case_cancel from base_stage to set probability """
|
||||
res = super(crm_lead, self).case_cancel(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0}, context=context)
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Overrides reset as draft in order to set the stage field as empty
|
||||
"""
|
||||
res = super(crm_lead, self).case_reset(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'stage_id': False, 'probability': 0.0})
|
||||
""" Overrides case_reset from base_stage to set probability """
|
||||
res = super(crm_lead, self).case_reset(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids, {'probability': 0.0}, context=context)
|
||||
return res
|
||||
|
||||
def case_mark_lost(self, cr, uid, ids, context=None):
|
||||
"""Mark the case as lost: state = done and probability = 0%
|
||||
"""
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
""" Mark the case as lost: state=cancel and probability=0 """
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_lost(cr, uid, lead.section_id.id or False)
|
||||
stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 0.0)], context=context)
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
return res
|
||||
self.case_set(cr, uid, [lead.id], values_to_update={'probability': 0.0}, new_stage_id=stage_id, context=context)
|
||||
self.case_mark_lost_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_mark_won(self, cr, uid, ids, context=None):
|
||||
"""Mark the case as lost: state = done and probability = 0%
|
||||
"""
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context=None)
|
||||
self.write(cr, uid, ids, {'probability' : 100.0})
|
||||
""" Mark the case as lost: state=done and probability=100 """
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_won(cr, uid, lead.section_id.id or False)
|
||||
stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 100.0)], context=context)
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
self.case_mark_won_send_note(cr, uid, [lead.id], context=context)
|
||||
return res
|
||||
self.case_set(cr, uid, [lead.id], values_to_update={'probability': 100.0}, new_stage_id=stage_id, context=context)
|
||||
self.case_mark_won_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def set_priority(self, cr, uid, ids, priority):
|
||||
"""Set lead priority
|
||||
""" Set lead priority
|
||||
"""
|
||||
return self.write(cr, uid, ids, {'priority' : priority})
|
||||
|
||||
def set_high_priority(self, cr, uid, ids, context=None):
|
||||
"""Set lead priority to high
|
||||
""" Set lead priority to high
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '1')
|
||||
|
||||
def set_normal_priority(self, cr, uid, ids, context=None):
|
||||
"""Set lead priority to normal
|
||||
""" Set lead priority to normal
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '3')
|
||||
|
||||
|
||||
def _merge_data(self, cr, uid, ids, oldest, fields, context=None):
|
||||
# prepare opportunity data into dictionary for merging
|
||||
opportunities = self.browse(cr, uid, ids, context=context)
|
||||
@@ -806,22 +861,12 @@ class crm_lead(crm_case, osv.osv):
|
||||
"You should better cancel it, instead of deleting it.") % lead.name)
|
||||
return super(crm_lead, self).unlink(cr, uid, ids, context)
|
||||
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
if 'date_closed' in vals:
|
||||
return super(crm_lead,self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
if vals.get('stage_id'):
|
||||
stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context)
|
||||
if vals.get('stage_id') and not vals.get('probability'):
|
||||
# change probability of lead(s) if required by stage
|
||||
if not vals.get('probability') and stage.on_change:
|
||||
stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context)
|
||||
if stage.on_change:
|
||||
vals['probability'] = stage.probability
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
message = _("Stage changed to <b>%s</b>.") % (stage.name)
|
||||
case.message_append_note(body=message)
|
||||
return super(crm_lead,self).write(cr, uid, ids, vals, context)
|
||||
|
||||
# ----------------------------------------
|
||||
@@ -836,6 +881,11 @@ class crm_lead(crm_case, osv.osv):
|
||||
sub_ids.append(obj.user_id.id)
|
||||
return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
|
||||
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Override of the (void) default notification method. """
|
||||
stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1]
|
||||
return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context)
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, lead, context=None):
|
||||
if isinstance(lead, (int, long)):
|
||||
lead = self.browse(cr, uid, [lead], context=context)[0]
|
||||
|
||||
@@ -3,47 +3,81 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Crm stages -->
|
||||
<record model="crm.case.stage" id="stage_lead6">
|
||||
<field name="name">Lost</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field eval="'0'" name="probability"/>
|
||||
<field eval="'0'" name="sequence"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead1">
|
||||
<field name="name">New</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field name="state">draft</field>
|
||||
<field eval="'10'" name="probability"/>
|
||||
<field eval="'11'" name="sequence"/>
|
||||
<field eval="'10'" name="sequence"/>
|
||||
<field name="type">both</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead2">
|
||||
<field name="name">Qualification</field>
|
||||
<field name="name">Opportunity</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field name="state">open</field>
|
||||
<field eval="'20'" name="probability"/>
|
||||
<field eval="'12'" name="sequence"/>
|
||||
<field eval="'11'" name="sequence"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead3">
|
||||
<field name="name">Proposition</field>
|
||||
<field name="name">Qualification</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field eval="'40'" name="probability"/>
|
||||
<field eval="'13'" name="sequence"/>
|
||||
<field name="state">open</field>
|
||||
<field eval="'20'" name="probability"/>
|
||||
<field eval="'12'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead4">
|
||||
<field name="name">Negotiation</field>
|
||||
<field name="name">Proposition</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field eval="'60'" name="probability"/>
|
||||
<field eval="'14'" name="sequence"/>
|
||||
<field name="state">open</field>
|
||||
<field eval="'40'" name="probability"/>
|
||||
<field eval="'13'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead5">
|
||||
<field name="name">Negotiation</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field name="state">open</field>
|
||||
<field eval="'60'" name="probability"/>
|
||||
<field eval="'14'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead6">
|
||||
<field name="name">Won</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field name="state">done</field>
|
||||
<field eval="'100'" name="probability"/>
|
||||
<field eval="'15'" name="sequence"/>
|
||||
<field eval="1" name="on_change"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead7">
|
||||
<field name="name">Dead</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field eval="True" name="fold"/>
|
||||
<field name="state">cancel</field>
|
||||
<field eval="'0'" name="probability"/>
|
||||
<field eval="'16'" name="sequence"/>
|
||||
<field name="type">lead</field>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_lead8">
|
||||
<field name="name">Lost</field>
|
||||
<field eval="1" name="case_default"/>
|
||||
<field eval="True" name="fold"/>
|
||||
<field name="state">cancel</field>
|
||||
<field eval="'0'" name="probability"/>
|
||||
<field eval="'17'" name="sequence"/>
|
||||
<field name="type">opportunity</field>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="section_sales_department">
|
||||
<field name="name">Sales Department</field>
|
||||
<field name="code">Sales</field>
|
||||
<field name="stage_ids" eval="[(4, ref('stage_lead1')), (4, ref('stage_lead2')), (4, ref('stage_lead3')), (4, ref('stage_lead4')), (4, ref('stage_lead5')), (4, ref('stage_lead6'))]"/>
|
||||
<field name="stage_ids" eval="[ (4, ref('stage_lead1')), (4, ref('stage_lead2')),
|
||||
(4, ref('stage_lead3')), (4, ref('stage_lead4')),
|
||||
(4, ref('stage_lead5')), (4, ref('stage_lead6')),
|
||||
(4, ref('stage_lead7')), (4, ref('stage_lead8'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Crm campain -->
|
||||
|
||||
+67
-105
@@ -8,14 +8,13 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'The Oil Company'" name="partner_name"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_marketing_department"/>
|
||||
<field eval="'Luc Latour'" name="contact_name"/>
|
||||
<field name="title" ref="base.res_partner_title_sir"/>
|
||||
<field eval="'Training Manager'" name="function"/>
|
||||
<field eval="'Paris'" name="city"/>
|
||||
<field name="country_id" ref="base.fr"/>
|
||||
<field eval="'luc.latour@oilcompany.fr'" name="email_from"/>
|
||||
<field eval="'Training Manager'" name="function"/>
|
||||
<field eval="'Paris'" name="city"/>
|
||||
<field name="country_id" ref="base.fr"/>
|
||||
<field eval="'luc.latour@oilcompany.fr'" name="email_from"/>
|
||||
<field eval="'0033 621 782-0636'" name="mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
@@ -29,18 +28,17 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'Le Club SARL'" name="partner_name"/>
|
||||
<field eval="'Marc Dufour'" name="contact_name"/>
|
||||
<field eval="'Marc Dufour'" name="contact_name"/>
|
||||
<field name="title" ref="base.res_partner_title_sir"/>
|
||||
<field eval="'Purchase Manager'" name="function"/>
|
||||
<field eval="'Bordeaux'" name="city"/>
|
||||
<field name="country_id" ref="base.fr"/>
|
||||
<field eval="'md@leclub.fr'" name="email_from"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'Purchase Manager'" name="function"/>
|
||||
<field eval="'Bordeaux'" name="city"/>
|
||||
<field name="country_id" ref="base.fr"/>
|
||||
<field eval="'md@leclub.fr'" name="email_from"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="'(392) 895-7917'" name="mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Interest in Your New Product'" name="name"/>
|
||||
<field eval="'(956) 293-2595'" name="phone"/>
|
||||
</record>
|
||||
@@ -50,15 +48,14 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'The Kompany'" name="partner_name"/>
|
||||
<field eval="'John Miller'" name="contact_name"/>
|
||||
<field eval="'New-York'" name="city"/>
|
||||
<field name="country_id" ref="base.us"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'John Miller'" name="contact_name"/>
|
||||
<field eval="'New-York'" name="city"/>
|
||||
<field name="country_id" ref="base.us"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="'(820) 167-3208'" name="mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor4"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Need Info about Web Design'" name="name"/>
|
||||
<field eval="'(079) 681-2139'" name="phone"/>
|
||||
<field eval="'contact@thkompany.com'" name="email_from"/>
|
||||
@@ -68,10 +65,9 @@
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="type">lead</field>
|
||||
<field eval="'The Gas Company'" name="partner_name"/>
|
||||
<field eval="'Henry Mc Coy'" name="contact_name"/>
|
||||
<field eval="'London'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'Henry Mc Coy'" name="contact_name"/>
|
||||
<field eval="'London'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="'(077) 582-4035'" name="mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
@@ -87,16 +83,15 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'Stonage IT'" name="partner_name"/>
|
||||
<field eval="'Carrie Helle'" name="contact_name"/>
|
||||
<field eval="'Purchase Manager'" name="function"/>
|
||||
<field eval="'Bruxelles'" name="city"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'Carrie Helle'" name="contact_name"/>
|
||||
<field eval="'Purchase Manager'" name="function"/>
|
||||
<field eval="'Bruxelles'" name="city"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
<field name="section_id" ref="crm.section_sales_marketing_department"/>
|
||||
<field eval="'(333) 715-1450'" name="mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Need a Quotation for PC1'" name="name"/>
|
||||
<field eval="'(855) 924-4364'" name="phone"/>
|
||||
<field eval="'helle@stonageit.be'" name="email_from"/>
|
||||
@@ -110,15 +105,14 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'Opensides'" name="partner_name"/>
|
||||
<field eval="'Tina Pinero'" name="contact_name"/>
|
||||
<field eval="'Consultant'" name="function"/>
|
||||
<field eval="'Roma'" name="city"/>
|
||||
<field name="country_id" ref="base.it"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'Tina Pinero'" name="contact_name"/>
|
||||
<field eval="'Consultant'" name="function"/>
|
||||
<field eval="'Roma'" name="city"/>
|
||||
<field name="country_id" ref="base.it"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="'(468) 017-2684'" name="mobile"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor8"/>
|
||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Need Info about your Services'" name="name"/>
|
||||
<field eval="'(373) 907-1009'" name="phone"/>
|
||||
<field eval="'info@opensides.be'" name="email_from"/>
|
||||
@@ -130,15 +124,14 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'Gardner Group'" name="partner_name"/>
|
||||
<field eval="'Wendi Baltz'" name="contact_name"/>
|
||||
<field eval="'Journalist'" name="function"/>
|
||||
<field eval="'Kiev'" name="city"/>
|
||||
<field name="country_id" ref="base.ua"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="'Wendi Baltz'" name="contact_name"/>
|
||||
<field eval="'Journalist'" name="function"/>
|
||||
<field eval="'Kiev'" name="city"/>
|
||||
<field name="country_id" ref="base.ua"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="'(463) 014-1208'" name="mobile"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor4"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Info about Your Company ?'" name="name"/>
|
||||
<field eval="'(282) 603-7489'" name="phone"/>
|
||||
</record>
|
||||
@@ -149,17 +142,16 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'Survey'" name="name"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Survey Expert'" name="partner_name"/>
|
||||
<field eval="'John Smith'" name="contact_name"/>
|
||||
<field eval="'Sales'" name="function"/>
|
||||
<field eval="'Cambridge'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field eval="'John Smith'" name="contact_name"/>
|
||||
<field eval="'Sales'" name="function"/>
|
||||
<field eval="'Cambridge'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field eval="'smith_john@gmail.com'" name="email_from"/>
|
||||
<field eval="'(282) 596-8584'" name="phone"/>
|
||||
<field eval="'(282) 596-8584'" name="phone"/>
|
||||
</record>
|
||||
<record id="crm_case_business_card0" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
@@ -168,17 +160,16 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'Partnership'" name="name"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor5"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Marketing Business'" name="partner_name"/>
|
||||
<field eval="'Laure Smith'" name="contact_name"/>
|
||||
<field eval="'Sales'" name="function"/>
|
||||
<field eval="'Oxford'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field eval="'Laure Smith'" name="contact_name"/>
|
||||
<field eval="'Sales'" name="function"/>
|
||||
<field eval="'Oxford'" name="city"/>
|
||||
<field name="country_id" ref="base.uk"/>
|
||||
<field eval="'l.smith@marketing-business.com'" name="email_from"/>
|
||||
<field eval="'(252) 578-7894'" name="phone"/>
|
||||
<field eval="'(252) 578-7894'" name="phone"/>
|
||||
</record>
|
||||
<record id="crm_case_imported_contact0" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
@@ -186,9 +177,8 @@
|
||||
<field eval="'2'" name="priority"/>
|
||||
<field name="type">lead</field>
|
||||
<field eval="'Info'" name="name"/>
|
||||
<field eval="'cancel'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Business Group'" name="partner_name"/>
|
||||
</record>
|
||||
<record id="crm_case_employee0" model="crm.lead">
|
||||
@@ -198,12 +188,11 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'Need Info about Onsite Intervention'" name="name"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Agrolait'" name="partner_name"/>
|
||||
<field eval="'Sylvie Lelitre'" name="contact_name"/>
|
||||
<field eval="'Sylvie Lelitre'" name="contact_name"/>
|
||||
</record>
|
||||
<record id="crm_case_company_partnership0" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
@@ -212,28 +201,15 @@
|
||||
<field name="type">lead</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'Need Quotation for 100 PC and 100 Keyboards'" name="name"/>
|
||||
<field eval="'done'" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Centrale d\'achats 1'" name="partner_name"/>
|
||||
</record>
|
||||
|
||||
<!-- Call Function to Open the leads-->
|
||||
<function model="crm.lead" name="case_open"
|
||||
eval="[ref('crm_case_electonicgoodsdealer0'), ref('crm_case_company_partnership0'), ref('crm_case_webvisitor0'), ref('crm_case_business_card0'), ref('crm.crm_case_employee0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to mark the lead as Pending-->
|
||||
<function model="crm.lead" name="case_pending"
|
||||
eval="[ref('crm_case_itdeveloper0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to Close the leads-->
|
||||
<function model="crm.lead" name="case_close"
|
||||
eval="[ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to Cancel the leads-->
|
||||
<!-- Call Function to Cancel the leads (set as Dead) -->
|
||||
<function model="crm.lead" name="case_cancel"
|
||||
eval="[ref('crm_case_mgroperations0'), ref('crm_case_imported_contact0')], {'install_mode': True}"
|
||||
eval="[ref('crm_case_company_partnership0'), ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')], {'install_mode': True}"
|
||||
/>
|
||||
|
||||
<!-- Demo Opportunities -->
|
||||
@@ -245,11 +221,10 @@
|
||||
<field name="partner_id" ref="base.res_partner_3"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="'150000'" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||
<field eval="'Plan to buy 200 PC2'" name="name"/>
|
||||
<field eval="'Conf call with purchase manager'" name="title_action"/>
|
||||
</record>
|
||||
@@ -260,12 +235,11 @@
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="45000.0" name="planned_revenue"/>
|
||||
<field eval="35" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Pricing Information of Onsite Intervention'" name="name"/>
|
||||
<field eval="'Send price list regarding our interventions'" name="title_action"/>
|
||||
<field eval="time.strftime('%Y-%m-03')" name="date_action"/>
|
||||
@@ -283,12 +257,11 @@
|
||||
<field name="partner_id" ref="base.res_partner_lucievonck0"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field eval="30000.0" name="planned_revenue"/>
|
||||
<field eval="30" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Interest in your Kitchen Design Project'" name="name"/>
|
||||
<field eval="'Send Catalogue by E-Mail'" name="title_action"/>
|
||||
<field eval="time.strftime('%Y-01-10')" name="date_action"/>
|
||||
@@ -299,19 +272,18 @@
|
||||
<field eval="1367" name="zip"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
</record>
|
||||
<record id="crm_case_unifliege" model="crm.lead">
|
||||
<record id="crm_case_unifliege" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="type_id" ref="crm.type_lead2"/>
|
||||
<field name="partner_id" ref="base.res_partner_accent"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="2500.0" name="planned_revenue"/>
|
||||
<field eval="25" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Plan train our students on your product'" name="name"/>
|
||||
<field eval="'Call to define real needs about training'" name="title_action"/>
|
||||
<field eval="time.strftime('%Y-%m-04')" name="date_action"/>
|
||||
@@ -323,19 +295,18 @@
|
||||
<field eval="75016" name="zip"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
</record>
|
||||
<record id="crm_case_bankwealthy2" model="crm.lead">
|
||||
<record id="crm_case_bankwealthy2" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="type_id" ref="crm.type_lead2"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="462.0" name="planned_revenue"/>
|
||||
<field eval="40" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Plan to buy 66 keyboards and 66 mouses'" name="name"/>
|
||||
<field eval="'Propose the kit keyboard+mouse'" name="title_action"/>
|
||||
<field eval="time.strftime('%Y-04-12')" name="date_action"/>
|
||||
@@ -354,12 +325,11 @@
|
||||
<field name="partner_id" ref="base.res_partner_8"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'done'" name="state"/>
|
||||
<field eval="55000.0" name="planned_revenue"/>
|
||||
<field eval="90" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor7"/>
|
||||
<field name="stage_id" ref="crm.stage_lead5"/>
|
||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||
<field eval="'Need 20 Days of Consultancy'" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-%d')" name="date_deadline"/>
|
||||
<field eval="'info@mycompany.net'" name="email_from"/>
|
||||
@@ -372,11 +342,10 @@
|
||||
<field name="partner_id" ref="base.res_partner_duboissprl0"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="45000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor5"/>
|
||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||
<field name="stage_id" ref="crm.stage_lead5"/>
|
||||
<field eval="'Need new design for my website'" name="name"/>
|
||||
<field eval="time.strftime('%Y-05-01')" name="date_action"/>
|
||||
<field eval="time.strftime('%Y-06-30')" name="date_deadline"/>
|
||||
@@ -395,40 +364,37 @@
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'done'" name="state"/>
|
||||
<field eval="42000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead8"/>
|
||||
<field eval="'Want to subscribe to your online solution'" name="name"/>
|
||||
</record>
|
||||
<record id="crm_case_dirtminingltdunits0" model="crm.lead">
|
||||
<record id="crm_case_dirtminingltdunits0" model="crm.lead">
|
||||
<field eval="30" name="probability"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'done'" name="state"/>
|
||||
<field eval="25000.0" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead6"/>
|
||||
<field name="stage_id" ref="crm.stage_lead8"/>
|
||||
<field eval="'Interest in your Partnership Contract'" name="name"/>
|
||||
</record>
|
||||
<record id="crm_case_dirtminingltdunits10" model="crm.lead">
|
||||
<record id="crm_case_dirtminingltdunits10" model="crm.lead">
|
||||
<field eval="30" name="probability"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="5000" name="planned_revenue"/>
|
||||
<field eval="30" name="probability"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead2"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field eval="'Plan to attend a training'" name="name"/>
|
||||
<field eval="time.strftime('%Y-04-10')" name="date_action"/>
|
||||
<field eval="time.strftime('%Y-06-12')" name="date_deadline"/>
|
||||
@@ -439,7 +405,7 @@
|
||||
<field eval="77420" name="zip"/>
|
||||
<field name="country_id" ref="base.fr"/>
|
||||
</record>
|
||||
<record id="crm_case_construstazunits0" model="crm.lead">
|
||||
<record id="crm_case_construstazunits0" model="crm.lead">
|
||||
<field eval="60" name="probability"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
@@ -447,11 +413,10 @@
|
||||
<field name="partner_id" ref="base.res_partner_thymbra"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="'150000'" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||
<field eval="'Need customize the solution'" name="name"/>
|
||||
<field eval="'Conf call with technical service'" name="title_action"/>
|
||||
<field name="partner_name">Thymbra</field>
|
||||
@@ -461,7 +426,7 @@
|
||||
<field eval="1659" name="zip"/>
|
||||
<field name="country_id" ref="base.ar"/>
|
||||
</record>
|
||||
<record id="crm_case_ericdubois4" model="crm.lead">
|
||||
<record id="crm_case_ericdubois4" model="crm.lead">
|
||||
<field eval="65" name="probability"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
@@ -469,11 +434,10 @@
|
||||
<field name="partner_id" ref="base.res_partner_ericdubois0"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'open'" name="state"/>
|
||||
<field eval="'1200'" name="planned_revenue"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor1"/>
|
||||
<field name="stage_id" ref="crm.stage_lead3"/>
|
||||
<field name="stage_id" ref="crm.stage_lead4"/>
|
||||
<field eval="'Interest in your customizable PC'" name="name"/>
|
||||
<field eval="time.strftime('%Y-08-05')" name="date_action"/>
|
||||
<field eval="time.strftime('%Y-10-10')" name="date_deadline"/>
|
||||
@@ -484,26 +448,24 @@
|
||||
<field eval="7000" name="zip"/>
|
||||
<field name="country_id" ref="base.be"/>
|
||||
</record>
|
||||
<record id="crm_case_fabiendupont" model="crm.lead">
|
||||
<record id="crm_case_fabiendupont" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="type_id" ref="crm.type_lead1"/>
|
||||
<field name="partner_id" ref="base.res_partner_fabiendupont0"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor4"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Need more info about the onsite intervention'" name="name"/>
|
||||
</record>
|
||||
<record id="crm_case_shelvehouse" model="crm.lead">
|
||||
<record id="crm_case_shelvehouse" model="crm.lead">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="type">opportunity</field>
|
||||
<field name="type_id" ref="crm.type_lead1"/>
|
||||
<field name="partner_id" ref="base.res_partner_theshelvehouse0"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval="'draft'" name="state"/>
|
||||
<field name="categ_id" ref="crm.categ_oppor4"/>
|
||||
<field name="stage_id" ref="crm.stage_lead1"/>
|
||||
<field eval="'Need more info about your pc2'" name="name"/>
|
||||
|
||||
+166
-187
@@ -1,35 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!-- Stage Search view -->
|
||||
<record id="crm_lead_stage_search" model="ir.ui.view">
|
||||
<field name="name">Stage - Search</field>
|
||||
<field name="model">crm.case.stage</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stage Search">
|
||||
<field name="name"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!--
|
||||
CRM CASE STAGE
|
||||
-->
|
||||
|
||||
<!--Lead Stage Form view -->
|
||||
<record id="crm_lead_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field>
|
||||
</record>
|
||||
<!-- Stage Search view -->
|
||||
<record id="crm_lead_stage_search" model="ir.ui.view">
|
||||
<field name="name">Stage - Search</field>
|
||||
<field name="model">crm.case.stage</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Stage Search">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
<field name="type"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages"
|
||||
groups="base.group_no_one" sequence="0"
|
||||
parent="base.menu_crm_config_lead" />
|
||||
<!-- Stage Form view -->
|
||||
<record id="crm_lead_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" />
|
||||
|
||||
<!-- Lead/Opportunity Categories Action -->
|
||||
<!--
|
||||
LEADS/OPPORTUNITIES CATEGORIES
|
||||
-->
|
||||
|
||||
<!-- Categories Form View -->
|
||||
<record id="crm_lead_categ_action" model="ir.actions.act_window">
|
||||
<field name="name">Categories</field>
|
||||
<field name="res_model">crm.case.categ</field>
|
||||
@@ -44,6 +50,9 @@
|
||||
id="menu_crm_lead_categ" name="Categories"
|
||||
parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<!--
|
||||
LEADS
|
||||
-->
|
||||
|
||||
<!-- CRM Lead Form View -->
|
||||
<record model="ir.ui.view" id="crm_case_form_view_leads">
|
||||
@@ -53,14 +62,17 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Leads Form" layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" />
|
||||
<button name="case_mark_lost" string="Close" states="open,pending" type="object" />
|
||||
<button name="case_pending" string="Pending" states="open" type="object" />
|
||||
<button name="case_escalate" string="Escalate" states="open,pending" type="object" />
|
||||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" />
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" />
|
||||
<button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
|
||||
states="draft,open,pending" help="Convert to Opportunity"/>
|
||||
<button name="case_escalate" string="Escalate" type="object"
|
||||
states="draft,open,pending"/>
|
||||
<button name="case_reset" string="Reset" type="object"
|
||||
states="cancel"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
|
||||
<field name="stage_id" nolabel="1" widget="statusbar"
|
||||
on_change="onchange_stage_id(stage_id)"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
@@ -71,24 +83,9 @@
|
||||
<field name="categ_id"
|
||||
widget="selection"
|
||||
domain="[('object_id.model','=','crm.lead')]"/>
|
||||
<button
|
||||
name="%(crm.action_crm_lead2opportunity_partner)d"
|
||||
string="Convert to Opportunity"
|
||||
help="Convert to Opportunity" icon="gtk-go-forward"
|
||||
type="action"
|
||||
/>
|
||||
<newline />
|
||||
<field name="user_id" />
|
||||
<field name="section_id" widget="selection" />
|
||||
<field name="stage_id" domain="section_id and [('section_ids', '=', section_id)] or []" />
|
||||
<group col="2" colspan="1">
|
||||
<button name="stage_previous" string=""
|
||||
states="open,pending,draft" type="object"
|
||||
icon="gtk-go-back" context="{'stage_type': 'lead'}" />
|
||||
<button name="stage_next" string=""
|
||||
states="open,pending,draft" type="object"
|
||||
icon="gtk-go-forward" context="{'stage_type': 'lead'}" />
|
||||
</group>
|
||||
<field name="type" invisible="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
@@ -142,6 +139,7 @@
|
||||
<field name="type_id" select="1" widget="selection"/>
|
||||
<field name="channel_id" select="1" widget="selection"/>
|
||||
<field name="referred"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Mailings" colspan="2" col="2"/>
|
||||
@@ -161,72 +159,55 @@
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Tree View -->
|
||||
<!-- CRM Lead Tree View -->
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_leads">
|
||||
<field name="name">Leads</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Leads" fonts="bold:needaction_pending==True" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
|
||||
<field name="needaction_pending" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name" string="Subject"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)" />
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="referred" invisible="1"/>
|
||||
<field name="channel_id" invisible="1"/>
|
||||
<field name="subjects" invisible="1"/>
|
||||
<button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
|
||||
states="draft,open,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_escalate" string="Escalate" type="object"
|
||||
states="draft,open,pending" icon="gtk-go-up"/>
|
||||
<button name="case_cancel" string="Dead" type="object"
|
||||
states="open,draft,pending" icon="gtk-cancel"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_leads">
|
||||
<field name="name">Leads</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Leads" fonts="bold:needaction_pending==True" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
|
||||
<field name="needaction_pending" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name" string="Subject"/>
|
||||
<field name="contact_name"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="referred" invisible="1"/>
|
||||
<field name="channel_id" invisible="1"/>
|
||||
<field name="subjects" invisible="1"/>
|
||||
|
||||
<field name="stage_id"/>
|
||||
<button name="stage_previous" string="Previous Stage"
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next Stage"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)" />
|
||||
<field name="user_id" />
|
||||
<field name="state" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_close" string="Close"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="%(crm.action_crm_lead2opportunity_partner)d"
|
||||
string="Convert to Opportunity"
|
||||
states="draft,open,pending" icon="gtk-index"
|
||||
type="action" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Calendar View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_calendar_view_leads">
|
||||
<field name="name">CRM - Leads Calendar</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">calendar</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Leads Generation"
|
||||
date_start="date_action" color="user_id">
|
||||
<field name="name" />
|
||||
<field name="partner_name" />
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
<!-- CRM Lead Calendar View -->
|
||||
<record model="ir.ui.view" id="crm_case_calendar_view_leads">
|
||||
<field name="name">CRM - Leads Calendar</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">calendar</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Leads Generation"
|
||||
date_start="date_action" color="user_id">
|
||||
<field name="name" />
|
||||
<field name="partner_name" />
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Kanban View -->
|
||||
<record model="ir.ui.view" id="crm_case_kanban_view_leads">
|
||||
@@ -235,7 +216,7 @@
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<field name="state"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="color"/>
|
||||
<field name="priority"/>
|
||||
<field name="planned_revenue" sum="Expected Revenues"/>
|
||||
@@ -264,13 +245,13 @@
|
||||
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
||||
</ul>
|
||||
<div class="oe_kanban_content">
|
||||
<a type="edit"><h3>
|
||||
<h3>
|
||||
<field name="partner_id"/>
|
||||
<t t-if="record.planned_revenue.raw_value">
|
||||
- <t t-esc="Math.round(record.planned_revenue.value)"/>
|
||||
<field name="company_currency"/>
|
||||
</t>
|
||||
</h3></a>
|
||||
</h3>
|
||||
<div>
|
||||
<b> <field name="partner_address_name"/> </b>
|
||||
</div>
|
||||
@@ -316,7 +297,6 @@
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Search View -->
|
||||
|
||||
<record id="view_crm_case_leads_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Leads Search</field>
|
||||
<field name="model">crm.lead</field>
|
||||
@@ -391,6 +371,10 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
OPPORTUNITY
|
||||
-->
|
||||
|
||||
<!-- Opportunities Form View -->
|
||||
<record model="ir.ui.view" id="crm_case_form_view_oppor">
|
||||
<field name="name">Opportunities</field>
|
||||
@@ -400,15 +384,23 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Opportunities" layout="manual">
|
||||
<div class="oe_form_topbar oe_form_topbar_hifirst">
|
||||
<button name="case_mark_won" string="Mark Won" states="open,pending" type="object" />
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" />
|
||||
<button name="case_pending" string="Pending" states="draft,open" type="object" />
|
||||
<button name="case_escalate" string="Escalate" states="open,pending" type="object" />
|
||||
<button name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" />
|
||||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" />
|
||||
<button name="case_cancel" string="Cancel" states="draft" type="object" />
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft"/>
|
||||
<button name="case_mark_won" string="Mark Won" type="object"
|
||||
states="draft,open"/>
|
||||
<button name="case_mark_lost" string="Mark Lost" type="object"
|
||||
states="draft,open"/>
|
||||
<button name="case_reset" string="Reset to Draft" type="object"
|
||||
states="cancel"/>
|
||||
<button name="case_escalate" string="Escalate" type="object"
|
||||
states="open"/>
|
||||
<button name="stage_previous" string="Previous" type="object"
|
||||
states="open" icon="gtk-go-back" context="{'stage_type': 'opportunity'}"/>
|
||||
<button name="stage_next" string="Next" type="object"
|
||||
states="open" icon="gtk-go-forward" context="{'stage_type': 'opportunity'}"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
|
||||
<field name="stage_id" nolabel="1" widget="statusbar"
|
||||
on_change="onchange_stage_id(stage_id)"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
@@ -461,20 +453,8 @@
|
||||
<field name="categ_id" select="1"
|
||||
string="Category" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
|
||||
<label string="Stage" for="stage_id" align="1.0"/>
|
||||
<group colspan="1" col="3">
|
||||
<field name="stage_id" nolabel="1"
|
||||
on_change="onchange_stage_id(stage_id)"
|
||||
domain="section_id and [('section_ids', '=', section_id)] or []" width="60%%"/>
|
||||
<button name="stage_previous"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-go-back" string="" context="{'stage_type': 'opportunity'}"/>
|
||||
<button name="stage_next" states="draft,open,pending"
|
||||
type="object" icon="gtk-go-forward" string="" context="{'stage_type': 'opportunity'}"/>
|
||||
</group>
|
||||
|
||||
<field name="priority" string="Priority"/>
|
||||
<field name="state"/>
|
||||
<field name="priority"/>
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="Details"/>
|
||||
@@ -534,41 +514,41 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Opportunities Tree View -->
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_oppor">
|
||||
<field name="name">Opportunities Tree</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Opportunities" fonts="bold:needaction_pending==True" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)">
|
||||
<field name="needaction_pending" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name" string="Opportunity"/>
|
||||
<field name="partner_id" string="Customer"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="date_action"/>
|
||||
<field name="title_action" />
|
||||
<field name="channel_id" invisible="1"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="subjects" invisible="1"/>
|
||||
<field name="stage_id"/>
|
||||
<button name="stage_previous" string="Previous Stage" states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next Stage" states="open,pending" type="object" icon="gtk-go-forward" />
|
||||
<field name="planned_revenue" sum="Expected Revenues"/>
|
||||
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)" />
|
||||
<field name="user_id"/>
|
||||
<field name="priority" invisible="1"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Pending" states="open,draft" type="object" icon="gtk-media-pause" />
|
||||
<button name="case_mark_lost" string="Lost" states="open,pending" type="object" icon="gtk-cancel" />
|
||||
<button name="case_mark_won" string="Won" states="open,pending" type="object" icon="gtk-apply" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Opportunities Tree View -->
|
||||
<record model="ir.ui.view" id="crm_case_tree_view_oppor">
|
||||
<field name="name">Opportunities Tree</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Opportunities" fonts="bold:needaction_pending==True" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)">
|
||||
<field name="needaction_pending" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
<field name="name" string="Opportunity"/>
|
||||
<field name="partner_id" string="Customer"/>
|
||||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="date_action"/>
|
||||
<field name="title_action" />
|
||||
<field name="channel_id" invisible="1"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="subjects" invisible="1"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="planned_revenue" sum="Expected Revenues"/>
|
||||
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
|
||||
<field name="section_id" invisible="context.get('invisible_section', True)" />
|
||||
<field name="user_id"/>
|
||||
<field name="priority" invisible="1"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_mark_won" string="Won" type="object"
|
||||
states="open,pending" icon="gtk-apply"/>
|
||||
<button name="case_mark_lost" string="Lost" type="object"
|
||||
states="open,pending" icon="gtk-cancel"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Opportunities Search View -->
|
||||
@@ -599,8 +579,7 @@
|
||||
help="Unassigned Opportunities" />
|
||||
</field>
|
||||
<field name="section_id"
|
||||
context="{'invisible_section': False}"
|
||||
widget="selection">
|
||||
context="{'invisible_section': False, 'default_section_id': self}">
|
||||
<filter icon="terp-personal+"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
context="{'invisible_section': False}"
|
||||
@@ -630,19 +609,19 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- crm.lead Opportunities Graph View -->
|
||||
<record model="ir.ui.view" id="crm_case_graph_view_opportunity">
|
||||
<field name="name">CRM - Opportunity Graph</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Opportunity by Categories" type="bar" orientation="horizontal">
|
||||
<field name="categ_id"/>
|
||||
<field name="planned_revenue" operator="+"/>
|
||||
<field name="state" group="True"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<!-- crm.lead Opportunities Graph View -->
|
||||
<record model="ir.ui.view" id="crm_case_graph_view_opportunity">
|
||||
<field name="name">CRM - Opportunity Graph</field>
|
||||
<field name="model">crm.lead</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Opportunity by Categories" type="bar" orientation="horizontal">
|
||||
<field name="categ_id"/>
|
||||
<field name="planned_revenue" operator="+"/>
|
||||
<field name="state" group="True"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+29
-46
@@ -2,7 +2,7 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -20,43 +20,35 @@
|
||||
##############################################################################
|
||||
|
||||
from base_calendar import base_calendar
|
||||
from crm import crm_base, crm_case
|
||||
from base_status.base_state import base_state
|
||||
from base_status.base_stage import base_stage
|
||||
import logging
|
||||
from osv import fields, osv
|
||||
import tools
|
||||
from tools.translate import _
|
||||
import logging
|
||||
|
||||
class crm_lead(crm_case, osv.osv):
|
||||
""" CRM Leads """
|
||||
_name = 'crm.lead'
|
||||
crm_lead()
|
||||
|
||||
class crm_phonecall(crm_case, osv.osv):
|
||||
""" CRM Phonecall """
|
||||
_name = 'crm.phonecall'
|
||||
crm_phonecall()
|
||||
|
||||
|
||||
class crm_meeting(crm_base, osv.osv):
|
||||
""" CRM Meeting Cases """
|
||||
class crm_lead(base_stage, osv.osv):
|
||||
""" CRM Leads """
|
||||
_name = 'crm.lead'
|
||||
|
||||
class crm_meeting(base_state, osv.Model):
|
||||
""" Model for CRM meetings """
|
||||
_name = 'crm.meeting'
|
||||
_description = "Meeting"
|
||||
_order = "id desc"
|
||||
_inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"]
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}),
|
||||
# base_state required fields
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \
|
||||
select=True, help='Sales team to which Case belongs to.'),
|
||||
'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."),
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
'write_date': fields.datetime('Write Date' , readonly=True),
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
'date_action_next': fields.datetime('Next Action', readonly=1),
|
||||
# Meeting fields
|
||||
'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \
|
||||
domain="[('object_id.model', '=', 'crm.meeting')]", \
|
||||
),
|
||||
@@ -66,11 +58,11 @@ class crm_meeting(crm_base, osv.osv):
|
||||
'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}),
|
||||
'state': fields.selection([('open', 'Confirmed'),
|
||||
('draft', 'Unconfirmed'),
|
||||
'state': fields.selection([ ('draft', 'Unconfirmed'),
|
||||
('open', 'Confirmed'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Done')], 'Status', \
|
||||
size=16, readonly=True),
|
||||
('done', 'Done')],
|
||||
string='Status', size=16, readonly=True),
|
||||
}
|
||||
_defaults = {
|
||||
'state': 'draft',
|
||||
@@ -90,6 +82,17 @@ class crm_meeting(crm_base, osv.osv):
|
||||
result[obj.id] = [obj.user_id.id]
|
||||
return result
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
""" Confirms meeting """
|
||||
res = super(crm_meeting, self).case_open(cr, uid, ids, context)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
id=base_calendar.base_calendar_id2real_id(id)
|
||||
return res
|
||||
|
||||
# ----------------------------------------
|
||||
# OpenChatter
|
||||
# ----------------------------------------
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Meeting'
|
||||
|
||||
@@ -118,32 +121,12 @@ class crm_meeting(crm_base, osv.osv):
|
||||
meeting.message_append_note(body=parent_message)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Meeting has been <b>done</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for meeting in self.browse(cr, uid, ids, context=context):
|
||||
if meeting.state != 'draft':
|
||||
return False
|
||||
message = _("Meeting has been <b>confirmed</b>.")
|
||||
meeting.message_append_note(body=message)
|
||||
return True
|
||||
return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>confirmed</b>."), context=context)
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Confirms meeting
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Meeting Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_meeting, self).case_open(cr, uid, ids, context)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
id=base_calendar.base_calendar_id2real_id(id)
|
||||
return res
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>done</b>."), context=context)
|
||||
|
||||
crm_meeting()
|
||||
|
||||
class calendar_attendee(osv.osv):
|
||||
""" Calendar Attendee """
|
||||
|
||||
@@ -25,8 +25,22 @@
|
||||
<field name="model">crm.meeting</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<sheet string="Meetings" layout="auto">
|
||||
<form string="Meetings" layout="manual">
|
||||
<div class="oe_form_topbar oe_form_topbar_hifirst">
|
||||
<button name="case_open" string="Confirm" type="object"
|
||||
states="draft"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="open"/>
|
||||
<button name="case_reset" string="Reset to Unconfirmed" type="object"
|
||||
states="cancel,done"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
<sheet layout="auto">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1" string="Title"
|
||||
required="1" />
|
||||
@@ -72,19 +86,6 @@
|
||||
</group>
|
||||
<separator string="Description" colspan="4" />
|
||||
<field name="description" nolabel="1" colspan="4" />
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4" groups="base.group_no_one">
|
||||
<field name="state" />
|
||||
<button name="case_close" string="Done"
|
||||
states="open" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="case_reset" string="Reset to Unconfirmed"
|
||||
states="open,done" type="object"
|
||||
icon="gtk-convert" />
|
||||
<button name="case_open" string="Confirm"
|
||||
states="draft" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Invitation Detail">
|
||||
<button string="Invite People"
|
||||
@@ -210,10 +211,10 @@
|
||||
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_form_sheet_width">
|
||||
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</div>
|
||||
</sheet>
|
||||
<div class="oe_form_bottom">
|
||||
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
+28
-44
@@ -2,7 +2,7 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,26 +19,22 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from crm import crm_base
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
from base_status.base_state import base_state
|
||||
import crm
|
||||
from datetime import datetime
|
||||
from osv import fields, osv
|
||||
import time
|
||||
from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP
|
||||
from datetime import datetime
|
||||
|
||||
class crm_phonecall(crm_base, osv.osv):
|
||||
""" Phonecall Cases """
|
||||
from tools.translate import _
|
||||
|
||||
class crm_phonecall(base_state, osv.osv):
|
||||
""" Model for CRM phonecalls """
|
||||
_name = "crm.phonecall"
|
||||
_description = "Phonecall"
|
||||
_order = "id desc"
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread']
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
'name': fields.char('Call Summary', size=64, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
# base_state required fields
|
||||
'date_action_last': fields.datetime('Last Action', readonly=1),
|
||||
'date_action_next': fields.datetime('Next Action', readonly=1),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
@@ -48,20 +44,21 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'company_id': fields.many2one('res.company', 'Company'),
|
||||
'description': fields.text('Description'),
|
||||
'state': fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('open', 'Todo'),
|
||||
'state': fields.selection([ ('draft', 'Draft'),
|
||||
('open', 'Confirmed'),
|
||||
('pending', 'Not Held'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Held'),
|
||||
], 'Status', size=16, readonly=True,
|
||||
help='The state is set to \'Todo\', when a case is created.\
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the call is over, the state is set to \'Held\'.\
|
||||
\nIf the call needs to be done then the state is set to \'Not Held\'.'),
|
||||
('done', 'Held'),],
|
||||
string='Status', size=16, readonly=True,
|
||||
help='The state is set to \'Todo\', when a case is created.\
|
||||
If the case is in progress the state is set to \'Open\'.\
|
||||
When the call is over, the state is set to \'Held\'.\
|
||||
If the call needs to be done then the state is set to \'Not Held\'.'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'date_open': fields.datetime('Opened', readonly=True),
|
||||
# phonecall fields
|
||||
'name': fields.char('Call Summary', size=64, required=True),
|
||||
'active': fields.boolean('Active', required=False),
|
||||
'duration': fields.float('Duration', help="Duration in Minutes"),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', \
|
||||
domain="['|',('section_id','=',section_id),('section_id','=',False),\
|
||||
@@ -80,11 +77,10 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
return 'open'
|
||||
|
||||
_defaults = {
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'date': fields.datetime.now,
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'state': _get_default_state,
|
||||
'user_id': lambda self,cr,uid,ctx: uid,
|
||||
'active': 1,
|
||||
}
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
@@ -95,32 +91,23 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
return obj_id
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Overrides close for crm_case for setting close date
|
||||
"""
|
||||
""" Overrides close for crm_case for setting duration """
|
||||
res = True
|
||||
for phone in self.browse(cr, uid, ids):
|
||||
for phone in self.browse(cr, uid, ids, context=context):
|
||||
phone_id = phone.id
|
||||
data = {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')}
|
||||
data = {}
|
||||
if phone.duration <=0:
|
||||
duration = datetime.now() - datetime.strptime(phone.date, '%Y-%m-%d %H:%M:%S')
|
||||
data.update({'duration': duration.seconds/float(60)})
|
||||
res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context)
|
||||
self.write(cr, uid, [phone_id], data)
|
||||
duration = datetime.now() - datetime.strptime(phone.date, DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
data['duration'] = duration.seconds/float(60)
|
||||
res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context=context)
|
||||
self.write(cr, uid, [phone_id], data, context=context)
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as Todo
|
||||
"""
|
||||
res = super(crm_phonecall, self).case_reset(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'})
|
||||
return res
|
||||
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Overrides cancel for crm_case for setting Open Date
|
||||
"""
|
||||
res = super(crm_phonecall, self).case_open(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'}, context=context)
|
||||
return res
|
||||
|
||||
def schedule_another_phonecall(self, cr, uid, ids, schedule_time, call_summary, \
|
||||
@@ -299,7 +286,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
return value
|
||||
|
||||
# ----------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# OpenChatter
|
||||
# ----------------------------------------
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
@@ -335,9 +322,6 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
|
||||
def _call_set_partner_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_append_note(cr, uid, ids, body=_("Partner has been <b>created</b>"), context=context)
|
||||
|
||||
|
||||
crm_phonecall()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -43,10 +43,14 @@
|
||||
states="open,pending" icon="gtk-redo"
|
||||
name="action_make_meeting" type="object" />
|
||||
<field name="state"/>
|
||||
<button name="case_cancel" string="Cancel" states="open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Todo" states="pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" states="open,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-media-pause"/>
|
||||
<button name="case_open" string="Confirm" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" type="object"
|
||||
states="open,pending" icon="gtk-jump-to"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending" icon="gtk-cancel"/>
|
||||
<button name="case_reset" string="Reset to Todo" type="object"
|
||||
states="cancel" icon="gtk-convert"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -60,13 +64,16 @@
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="case_close" string="Held" states="open,pending" type="object" />
|
||||
<button name="case_open" string="Todo" states="pending" type="object" />
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" />
|
||||
<button name="case_reset" string="Reset to Todo" states="cancel" type="object" />
|
||||
<button name="case_cancel" string="Cancel" states="open,pending" type="object" />
|
||||
<button name="case_open" string="Confirm" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" type="object"
|
||||
states="open,pending" icon="gtk-jump-to"/>
|
||||
<button name="case_reset" string="Reset to Todo" type="object"
|
||||
states="cancel" icon="gtk-convert"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending" icon="gtk-cancel"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="open,done" statusbar_colors='{"pending":"red"}' select="1"/>
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" select="1"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
|
||||
@@ -143,6 +143,8 @@
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="probability"/>
|
||||
<field name="state"/>
|
||||
<field name="type"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -162,6 +164,9 @@
|
||||
<field name="on_change"/>
|
||||
<field name="case_default"/>
|
||||
<field name="sequence"/>
|
||||
<field name="state"/>
|
||||
<field name="fold"/>
|
||||
<field name="type"/>
|
||||
</group>
|
||||
<separator string="Requirements" colspan="4"/>
|
||||
<field name="requirements" nolabel="1" colspan="4"/>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2011-01-19 00:40+0000\n"
|
||||
"Last-Translator: Tiago Baptista <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-31 15:17+0000\n"
|
||||
"Last-Translator: ThinkOpen Solutions <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
@@ -792,7 +792,7 @@ msgstr "Continuar"
|
||||
#. module: crm
|
||||
#: field:crm.segmentation,som_interval:0
|
||||
msgid "Days per Period"
|
||||
msgstr ""
|
||||
msgstr "Dias por Periodo"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,byday:0
|
||||
@@ -959,7 +959,7 @@ msgstr "Dias para abrir"
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Show Time as"
|
||||
msgstr ""
|
||||
msgstr "Mostrar horas como"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.phonecall2partner:0
|
||||
|
||||
@@ -6,8 +6,11 @@
|
||||
-
|
||||
I check cancelled lead.
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in cancel state}:
|
||||
- state == "cancel"
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name)
|
||||
assert lead.state == 'cancel', "Opportunity is not in 'cancel' state."
|
||||
assert lead.probability == 0.0, 'Opportunity probability is wrong and should be 0.0.'
|
||||
-
|
||||
I reset cancelled lead into unqualified lead.
|
||||
-
|
||||
@@ -19,35 +22,24 @@
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}:
|
||||
- state == "draft"
|
||||
-
|
||||
I put unqualified lead into pending.
|
||||
I re-open the lead
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_pending(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
self.case_open(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
-
|
||||
I check status of pending lead.
|
||||
I check stage and state of the re-opened lead
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in pending state}:
|
||||
- state == "pending"
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm.crm_case_itisatelesalescampaign0'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'."
|
||||
assert lead.state == 'open', "Opportunity should be in 'open' state."
|
||||
-
|
||||
I escalate the lead to parent team.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
-
|
||||
I check lead escalate to parent team.
|
||||
I check the lead is correctly escalated to the parent team.
|
||||
-
|
||||
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}:
|
||||
- section_id.name == "Sales Department"
|
||||
-
|
||||
I mark as lost the opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_mark_lost(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
|
||||
-
|
||||
I check opportunity after lost.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0'))
|
||||
assert lead.state == 'done', "lead is not done state"
|
||||
assert lead.stage_id.id == ref('crm.stage_lead6'), 'Stage is not changed!'
|
||||
assert lead.probability == 0.0, 'Probability is wrong!'
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')])
|
||||
|
||||
-
|
||||
After communicated with customer, I put some notes with contract details.
|
||||
-
|
||||
@@ -60,18 +59,18 @@
|
||||
note_id = self.create(cr, uid, {'body': "ces détails envoyés par le client sur le FAX pour la qualité"})
|
||||
self.action_add(cr, uid, [note_id], context=context)
|
||||
-
|
||||
Finally, I won this opportunity, so I close this opportunity.
|
||||
I win this opportunity
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")])
|
||||
-
|
||||
I check details of the opportunity after won the opportunity.
|
||||
I check details of the opportunity after having won the opportunity.
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
|
||||
assert lead.state == 'done', 'Opportunity is not in done state!'
|
||||
assert lead.stage_id.name == 'Won', ' Stage of Opportunity is not win!'
|
||||
assert lead.probability == 100.0, 'probability revenue should not be 100.0!'
|
||||
assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'."
|
||||
assert lead.state == 'done', "Opportunity is not in 'done' state!"
|
||||
assert lead.probability == 100.0, "Revenue probability should be 100.0!"
|
||||
-
|
||||
I convert mass lead into opportunity customer.
|
||||
-
|
||||
@@ -96,6 +95,19 @@
|
||||
assert opp.name == "Interest in Your New Product", "Opportunity name not correct"
|
||||
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
|
||||
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
|
||||
-
|
||||
I loose the second opportunity
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
self.case_mark_lost(cr, uid, [ref("crm_case_electonicgoodsdealer0")])
|
||||
-
|
||||
I check details of the opportunity after the loose
|
||||
-
|
||||
!python {model: crm.lead}: |
|
||||
lead = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
|
||||
assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'."
|
||||
assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!"
|
||||
assert lead.probability == 0.0, "Revenue probability should be 0.0!"
|
||||
-
|
||||
I confirm review needs meeting.
|
||||
-
|
||||
|
||||
+115
-44
@@ -2,7 +2,7 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,25 +19,57 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from crm import crm
|
||||
import time
|
||||
from crm import wizard
|
||||
from base_status.base_stage import base_stage
|
||||
import binascii
|
||||
from crm import crm
|
||||
from crm import wizard
|
||||
from osv import fields, osv
|
||||
import time
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.claim')
|
||||
|
||||
CRM_CLAIM_PENDING_STATES = (
|
||||
crm.AVAILABLE_STATES[2][0], # Cancelled
|
||||
crm.AVAILABLE_STATES[3][0], # Done
|
||||
crm.AVAILABLE_STATES[4][0], # Pending
|
||||
)
|
||||
|
||||
|
||||
class crm_claim(crm.crm_case, osv.osv):
|
||||
class crm_claim_stage(osv.osv):
|
||||
""" Model for claim stages. This models the main stages of a claim
|
||||
management flow. Main CRM objects (leads, opportunities, project
|
||||
issues, ...) will now use only stages, instead of state and stages.
|
||||
Stages are for example used to display the kanban view of records.
|
||||
"""
|
||||
Crm claim
|
||||
_name = "crm.claim.stage"
|
||||
_description = "Claim stages"
|
||||
_rec_name = 'name'
|
||||
_order = "sequence"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Stage Name', size=64, required=True, translate=True),
|
||||
'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."),
|
||||
'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections',
|
||||
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."),
|
||||
'case_refused': fields.boolean('Refused stage',
|
||||
help='Refused stages are specific stages for done.'),
|
||||
'case_default': fields.boolean('Common to All Teams',
|
||||
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
|
||||
'fold': fields.boolean('Hide in Views when Empty',
|
||||
help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'sequence': lambda *args: 1,
|
||||
'state': 'draft',
|
||||
'fold': False,
|
||||
'case_refused': False,
|
||||
}
|
||||
|
||||
class crm_claim(base_stage, osv.osv):
|
||||
""" Crm claim
|
||||
"""
|
||||
_name = "crm.claim"
|
||||
_description = "Claim"
|
||||
@@ -73,46 +105,71 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="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"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_ids','=',section_id)]"),
|
||||
'stage_id': fields.many2one ('crm.claim.stage', 'Stage',
|
||||
domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"),
|
||||
'cause': fields.text('Root Cause'),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'state': fields.related('stage_id', 'state', type="selection", store=True,
|
||||
selection=crm.AVAILABLE_STATES, string="State", readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
If the case is in progress the state is set to \'Open\'.\
|
||||
When the case is over, the state is set to \'Done\'.\
|
||||
If the case needs to be reviewed then the state is \
|
||||
set to \'Pending\'.'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'user_id': crm.crm_case._get_default_user,
|
||||
'partner_id': crm.crm_case._get_default_partner,
|
||||
'email_from':crm.crm_case. _get_default_email,
|
||||
'state': lambda *a: 'draft',
|
||||
'section_id':crm.crm_case. _get_section,
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c),
|
||||
'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c),
|
||||
'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
|
||||
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
|
||||
'date': fields.datetime.now,
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'active': lambda *a: 1
|
||||
}
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Claim'
|
||||
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
|
||||
""" Override of the base.stage method
|
||||
Parameter of the stage search taken from the lead:
|
||||
- section_id: if set, stages must belong to this section or
|
||||
be a default case
|
||||
"""
|
||||
if isinstance(cases, (int, long)):
|
||||
cases = self.browse(cr, uid, cases, context=context)
|
||||
# collect all section_ids
|
||||
section_ids = []
|
||||
if section_id:
|
||||
section_ids.append(section_id)
|
||||
for claim in cases:
|
||||
if claim.section_id:
|
||||
section_ids.append(claim.section_id.id)
|
||||
# OR all section_ids and OR with case_default
|
||||
search_domain = []
|
||||
if section_ids:
|
||||
search_domain += [('|')] * len(section_ids)
|
||||
for section_id in section_ids:
|
||||
search_domain.append(('section_ids', '=', section_id))
|
||||
search_domain.append(('case_default', '=', True))
|
||||
# AND with the domain in parameter
|
||||
search_domain += list(domain)
|
||||
# perform search, return the first found
|
||||
stage_ids = self.pool.get('crm.claim.stage').search(cr, uid, search_domain, order=order, context=context)
|
||||
if stage_ids:
|
||||
return stage_ids[0]
|
||||
return False
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_claim, self).create(cr, uid, vals, context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if vals.get('stage_id'):
|
||||
stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context)
|
||||
message = _("Stage changed to <b>%s</b>.") % (stage.name)
|
||||
self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
return super(crm_claim,self).write(cr, uid, ids, vals, context)
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
msg = '%s has been <b>created</b>.' % (self.case_get_note_msg_prefix(cr, uid, ids, context=context))
|
||||
self.message_append_note(cr, uid, ids, body=msg, context=context)
|
||||
return True
|
||||
def case_refuse(self, cr, uid, ids, context=None):
|
||||
""" Mark the case as refused: state=done and case_refused=True """
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, ['&', ('state', '=', 'done'), ('case_refused', '=', True)], context=context)
|
||||
if stage_id:
|
||||
self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context)
|
||||
return self.case_refuse_send_note(cr, uid, ids, context=context)
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
"""This function returns value of partner address based on partner
|
||||
@@ -126,17 +183,6 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
}
|
||||
address = self.pool.get('res.partner').browse(cr, uid, part)
|
||||
return {'value': {'email_from': address.email, 'partner_phone': address.phone}}
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
"""Opens Claim"""
|
||||
for l in self.browse(cr, uid, ids):
|
||||
# When coming from draft override date and stage otherwise just set state
|
||||
if l.state == 'draft':
|
||||
stage_id = self.stage_find(cr, uid, l.section_id.id or False, [('sequence','>',0)])
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [l.id], stage_id)
|
||||
res = super(crm_claim, self).case_open(cr, uid, ids, *args)
|
||||
return res
|
||||
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
"""Automatically called when new email message arrives"""
|
||||
@@ -191,6 +237,31 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
res = self.write(cr, uid, [case.id], values, context=context)
|
||||
return res
|
||||
|
||||
# ---------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ---------------------------------------------------
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
""" Override of default prefix for notifications. """
|
||||
return 'Claim'
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
msg = '%s has been <b>created</b>.' % (self.case_get_note_msg_prefix(cr, uid, ids, context=context))
|
||||
self.message_append_note(cr, uid, ids, body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_refuse_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>refused</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Override of the (void) default notification method. """
|
||||
stage_name = self.pool.get('crm.claim.stage').name_get(cr, uid, [stage_id], context=context)[0][1]
|
||||
return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context)
|
||||
|
||||
|
||||
class res_partner(osv.osv):
|
||||
_inherit = 'res.partner'
|
||||
_columns = {
|
||||
|
||||
@@ -42,27 +42,39 @@
|
||||
Case Stage
|
||||
-->
|
||||
|
||||
<record model="crm.case.stage" id="stage_claim1">
|
||||
<field name="name">Accepted as Claim</field>
|
||||
<record model="crm.claim.stage" id="stage_claim1">
|
||||
<field name="name">Draft claim</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="sequence">26</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim5">
|
||||
<record model="crm.claim.stage" id="stage_claim5">
|
||||
<field name="name">Actions Defined</field>
|
||||
<field name="state">open</field>
|
||||
<field name="sequence">27</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim2">
|
||||
<record model="crm.claim.stage" id="stage_claim2">
|
||||
<field name="name">Actions Done</field>
|
||||
<field name="state">done</field>
|
||||
<field name="sequence">28</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage_claim3">
|
||||
<field name="name">Won't fix</field>
|
||||
<record model="crm.claim.stage" id="stage_claim3">
|
||||
<field name="name">Refused</field>
|
||||
<field name="state">done</field>
|
||||
<field name="sequence">29</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
<field name="case_refused" eval="True"/>
|
||||
<field name="fold" eval="True"/>
|
||||
</record>
|
||||
<record model="crm.claim.stage" id="stage_claim3">
|
||||
<field name="name">Cancelled</field>
|
||||
<field name="state">cancel</field>
|
||||
<field name="sequence">30</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
<field name="fold" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="crm.section_sales_department">
|
||||
<field name="name">Sales Department</field>
|
||||
<field name="code">Sales</field>
|
||||
<field name="stage_ids" eval="[(4, ref('stage_claim1')), (4, ref('stage_claim2')), (4, ref('stage_claim3')), (4, ref('stage_claim5'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Problem with the delivery of goods"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim1"/>
|
||||
<field name="stage_id" ref="crm_claim.stage_claim1"/>
|
||||
@@ -25,7 +24,6 @@
|
||||
<field eval=""4"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Damaged Products"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim2"/>
|
||||
<field name="stage_id" ref="crm_claim.stage_claim5"/>
|
||||
@@ -38,7 +36,6 @@
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""Document related problems"" name="name"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim3"/>
|
||||
<field name="stage_id" ref="crm_claim.stage_claim2"/>
|
||||
@@ -52,7 +49,6 @@
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Product quality not maintained"" name="name"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim1"/>
|
||||
<field name="stage_id" ref="crm_claim.stage_claim5"/>
|
||||
@@ -65,7 +61,6 @@
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Some products missing"" name="name"/>
|
||||
<field eval=""pending"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim3"/>
|
||||
<field name="stage_id" ref="crm_claim.stage_claim3"/>
|
||||
@@ -77,7 +72,6 @@
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Problem with the delivery of assignments"" name="name"/>
|
||||
<field eval=""cancel"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim1"/>
|
||||
@@ -91,7 +85,6 @@
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Documents unclear"" name="name"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-19 13:01:05')" name="date"/>
|
||||
<field name="categ_id" ref="crm_claim.categ_claim3"/>
|
||||
|
||||
@@ -50,5 +50,10 @@
|
||||
<menuitem name="Claims" id="menu_crm_case_claims"
|
||||
parent="base.menu_aftersale" action="crm_case_categ_claim0" sequence="1"/>
|
||||
|
||||
<!-- Claim Stages -->
|
||||
<menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
|
||||
<menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/>
|
||||
<menuitem id="menu_claim_stage_view" name="Claim Stages" action="crm_claim_stage_act" parent="menu_project_config_project" sequence="20"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -23,12 +23,40 @@
|
||||
|
||||
<!-- Claim Stages -->
|
||||
|
||||
<record id="crm_claim_stage_tree" model="ir.ui.view">
|
||||
<field name="name">crm.claim.stage.tree</field>
|
||||
<field name="model">crm.claim.stage</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Claim Stages">
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_claim_stage_form" model="ir.ui.view">
|
||||
<field name="name">crm.claim.stage.form</field>
|
||||
<field name="model">crm.claim.stage</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Claim Stage">
|
||||
<field name="name"/>
|
||||
<field name="case_default"/>
|
||||
<field name="sequence"/>
|
||||
<field name="state"/>
|
||||
<field name="case_refused"/>
|
||||
<field name="fold"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_claim_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Claim Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="res_model">crm.claim.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="context">{'search_default_claim':1}</field>
|
||||
<field name="view_id" ref="crm_claim_stage_tree"/>
|
||||
<field name="help">You can create claim stages to categorize the status of every claim entered in the system. The stages define all the steps required for the resolution of a claim.</field>
|
||||
</record>
|
||||
|
||||
@@ -44,19 +72,19 @@
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" />
|
||||
<field name="date"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="date_action_next"/>
|
||||
<field name="action_next"/>
|
||||
<field name="categ_id" string="Type" select="1"/>
|
||||
<field name="stage_id" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="date_closed" invisible="1"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_close" string="Close"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="draft,open,pending" icon="gtk-close"/>
|
||||
<button name="case_refuse" string="Refuse" type="object"
|
||||
states="draft,open,pending" icon="gtk-cancel"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -68,13 +96,23 @@
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="case_close" string="Done" states="open,pending" type="object" />
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" />
|
||||
<button name="case_pending" string="Pending" states="draft,open" type="object" />
|
||||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" />
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" />
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="open,pending"/>
|
||||
<button name="case_refuse" string="Refuse" type="object"
|
||||
states="draft,open,pending"/>
|
||||
<button name="stage_previous" string="Previous Stage" type="object"
|
||||
states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/>
|
||||
<button name="stage_next" string="Next Stage" type="object"
|
||||
states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/>
|
||||
<button name="case_reset" string="Reset to Draft" type="object"
|
||||
states="cancel,done"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
|
||||
<field name="stage_id" nolabel="1" widget="statusbar"
|
||||
on_change="onchange_stage_id(stage_id)"/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
@@ -86,11 +124,7 @@
|
||||
<group colspan="4" col="6">
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" widget="selection" />
|
||||
<group colspan="2" col="4">
|
||||
<field name="stage_id" domain="[('section_ids','=',section_id)]"/>
|
||||
<button name="stage_previous" string="" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="" type="object" icon="gtk-go-forward" />
|
||||
</group>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<newline />
|
||||
<field name="priority"/>
|
||||
<field name="date_deadline"/>
|
||||
@@ -207,7 +241,7 @@
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
<filter string="Status"
|
||||
icon="terp-stock_effects-object-colorize"
|
||||
domain="[]" context="{'group_by':'state'}" />
|
||||
domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Claim Date" icon="terp-go-month"
|
||||
domain="[]" help="Claim Date"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_crm_claim_manager,crm.claim.manager,model_crm_claim,base.group_sale_manager,1,1,1,1
|
||||
access_crm_claim_user,crm.claim.user,model_crm_claim,base.group_sale_salesman,1,1,1,0
|
||||
access_crm_claim_stage_user,crm.claim.stage.user,model_crm_claim_stage,base.group_sale_salesman,1,1,1,1
|
||||
access_crm_claim_report_manager,crm.claim.report.manager,model_crm_claim_report,base.group_sale_manager,1,1,1,1
|
||||
access_crm_claim_partner_manager,crm.claim.partner.manager,model_crm_claim,base.group_partner_manager,1,0,0,0
|
||||
|
||||
|
@@ -30,7 +30,7 @@
|
||||
claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right <info@customer.com>')])
|
||||
claim = self.browse(cr, uid, claim_ids[0])
|
||||
assert claim.state == "open", "Claim is not in Open state"
|
||||
assert claim.stage_id.id == ref("crm.stage_lead1"), "Claim is not in New stage"
|
||||
assert claim.stage_id.id == ref("crm.stage_lead2"), "Claim is not in Qualification stage"
|
||||
-
|
||||
After complete all service from our side, I close this claim.
|
||||
-
|
||||
|
||||
@@ -19,13 +19,14 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from base_status.base_stage import base_stage
|
||||
from crm import crm
|
||||
from crm import wizard
|
||||
from osv import fields, osv
|
||||
|
||||
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising')
|
||||
|
||||
class crm_fundraising(crm.crm_case, osv.osv):
|
||||
class crm_fundraising(base_stage, osv.osv):
|
||||
""" Fund Raising Cases """
|
||||
|
||||
_name = "crm.fundraising"
|
||||
@@ -73,8 +74,62 @@ class crm_fundraising(crm.crm_case, osv.osv):
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
'state': fields.related('stage_id', 'state', type="selection", store=True,
|
||||
selection=crm.AVAILABLE_STATES, string="State", readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
If the case is in progress the state is set to \'Open\'.\
|
||||
When the case is over, the state is set to \'Done\'.\
|
||||
If the case needs to be reviewed then the state is \
|
||||
set to \'Pending\'.'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'active': 1,
|
||||
'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c),
|
||||
'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c),
|
||||
'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
|
||||
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'probability': 0.0,
|
||||
'planned_cost': 0.0,
|
||||
'planned_revenue': 0.0,
|
||||
}
|
||||
|
||||
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
|
||||
""" Override of the base.stage method
|
||||
Parameter of the stage search taken from the lead:
|
||||
- section_id: if set, stages must belong to this section or
|
||||
be a default case
|
||||
"""
|
||||
if isinstance(cases, (int, long)):
|
||||
cases = self.browse(cr, uid, cases, context=context)
|
||||
# collect all section_ids
|
||||
section_ids = []
|
||||
if section_id:
|
||||
section_ids.append(section_id)
|
||||
for case in cases:
|
||||
if case.section_id:
|
||||
section_ids.append(case.section_id.id)
|
||||
# OR all section_ids and OR with case_default
|
||||
search_domain = []
|
||||
if section_ids:
|
||||
search_domain += [('|')] * len(section_ids)
|
||||
for section_id in section_ids:
|
||||
search_domain.append(('section_ids', '=', section_id))
|
||||
search_domain.append(('case_default', '=', True))
|
||||
# AND with the domain in parameter
|
||||
search_domain += list(domain)
|
||||
# perform search, return the first found
|
||||
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context)
|
||||
if stage_ids:
|
||||
return stage_ids[0]
|
||||
return False
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_fundraising, self).create(cr, uid, vals, context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
"""Automatically called when new email message arrives"""
|
||||
@@ -92,33 +147,23 @@ class crm_fundraising(crm.crm_case, osv.osv):
|
||||
self.write(cr, uid, [res_id], vals, context=context)
|
||||
return res_id
|
||||
|
||||
|
||||
_defaults = {
|
||||
'active': 1,
|
||||
'user_id': crm.crm_case._get_default_user,
|
||||
'partner_id': crm.crm_case._get_default_partner,
|
||||
'email_from': crm.crm_case. _get_default_email,
|
||||
'state': 'draft',
|
||||
'section_id': crm.crm_case. _get_section,
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'probability': 0.0,
|
||||
'planned_cost': 0.0,
|
||||
'planned_revenue': 0.0,
|
||||
}
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Fund'
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_fundraising, self).create(cr, uid, vals, context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
# ---------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ---------------------------------------------------
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
msg = '%s has been <b>created</b>.' % (self.case_get_note_msg_prefix(cr, uid, ids, context=context))
|
||||
self.message_append_note(cr, uid, ids, body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
""" Override of default prefix for notifications. """
|
||||
return 'Fundraising'
|
||||
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Override of the (void) default notification method. """
|
||||
stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1]
|
||||
return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context)
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="250000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-01 10:35:50')" name="date"/>
|
||||
@@ -26,7 +25,6 @@
|
||||
<field name="partner_id" ref="base.main_partner"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field eval="2000000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-05 12:35:50')" name="date"/>
|
||||
@@ -43,7 +41,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_3"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="500000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-07 13:50:50')" name="date"/>
|
||||
@@ -59,7 +56,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_4"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field eval="1000000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-12 15:10:50')" name="date"/>
|
||||
@@ -75,7 +71,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_14"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="5000000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-17 19:00:15')" name="date"/>
|
||||
@@ -91,7 +86,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_10"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
<field eval="10000000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-27 09:00:15')" name="date"/>
|
||||
@@ -109,7 +103,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_15"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""draft"" name="state"/>
|
||||
<field eval="10000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-01 10:00:15')" name="date"/>
|
||||
@@ -126,7 +119,6 @@
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="800000.0" name="planned_cost"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="time.strftime('%Y-%m-24 22:00:15')" name="date"/>
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from base_status.base_state import base_state
|
||||
from crm import crm
|
||||
from osv import fields, osv
|
||||
import time
|
||||
from crm import wizard
|
||||
from osv import fields, osv
|
||||
import tools
|
||||
from tools.translate import _
|
||||
|
||||
@@ -34,7 +34,7 @@ CRM_HELPDESK_STATES = (
|
||||
|
||||
wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.helpdesk')
|
||||
|
||||
class crm_helpdesk(crm.crm_case, osv.osv):
|
||||
class crm_helpdesk(base_state, osv.osv):
|
||||
""" Helpdesk Cases """
|
||||
|
||||
_name = "crm.helpdesk"
|
||||
@@ -81,12 +81,11 @@ class crm_helpdesk(crm.crm_case, osv.osv):
|
||||
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
'user_id': crm.crm_case._get_default_user,
|
||||
'partner_id': crm.crm_case._get_default_partner,
|
||||
'email_from': crm.crm_case. _get_default_email,
|
||||
'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c),
|
||||
'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c),
|
||||
'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
|
||||
'state': lambda *a: 'draft',
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'section_id': crm.crm_case. _get_section,
|
||||
'date': lambda *a: fields.datetime.now(),
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
}
|
||||
@@ -154,5 +153,12 @@ class crm_helpdesk(crm.crm_case, osv.osv):
|
||||
res = self.write(cr, uid, [case.id], values, context=context)
|
||||
return res
|
||||
|
||||
# ******************************
|
||||
# OpenChatter
|
||||
# ******************************
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Helpdesk'
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -30,12 +30,18 @@
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button name="case_close" states="open,pending" string="Close" type="object" />
|
||||
<button name="case_open" states="draft,pending" string="Open" type="object" />
|
||||
<button name="case_pending" states="draft,open" string="Pending" type="object" />
|
||||
<button name="case_reset" states="done,cancel" string="Reset to Draft" type="object" />
|
||||
<button name="case_escalate" states="open,draft,pending" string="Escalate" type="object" />
|
||||
<button name="case_cancel" states="draft,open,pending" string="Cancel" type="object" />
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending"/>
|
||||
<button name="case_close" string="Close" type="object"
|
||||
states="open,draft,pending"/>
|
||||
<button name="case_pending" string="Pending" type="object"
|
||||
states="draft,open"/>
|
||||
<button name="case_reset" string="Reset to Draft" type="object"
|
||||
states="cancel,done"/>
|
||||
<button name="case_escalate" string="Escalate" type="object"
|
||||
states="open,draft,pending"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
|
||||
</div>
|
||||
@@ -103,7 +109,7 @@
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_form_sheet_width">
|
||||
<div class="oe_form_bottom">
|
||||
<field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</div>
|
||||
</form>
|
||||
@@ -127,23 +133,18 @@
|
||||
<field name="section_id"/>
|
||||
<field name="priority"/>
|
||||
<field name="state"/>
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object" icon="gtk-convert" />
|
||||
<button name="case_open" string="Open" type="object"
|
||||
states="draft,pending" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="open,draft,pending" icon="gtk-close"/>
|
||||
<button name="case_pending" string="Pending" type="object"
|
||||
states="draft,open" icon="gtk-media-pause"/>
|
||||
<button name="case_escalate" string="Escalate" type="object"
|
||||
states="open,draft,pending" icon="gtk-go-up"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
states="draft,open,pending" icon="gtk-cancel"/>
|
||||
<button name="case_reset" string="Reset to Draft" type="object"
|
||||
states="cancel,done" icon="gtk-convert" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -0,0 +1,738 @@
|
||||
# Gujarati translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-31 11:11+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Gujarati <gu@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n"
|
||||
"X-Generator: Launchpad (build 15342)\n"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,delay_close:0
|
||||
msgid "Delay to Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,nbr:0
|
||||
msgid "# of Cases"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Group By..."
|
||||
msgstr "ગ્રુપ દ્વારા..."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Today"
|
||||
msgstr "આજે"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "March"
|
||||
msgstr "માર્ચ"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Helpdesk requests occurred in current year"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,company_id:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "કંપની"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,email_cc:0
|
||||
msgid "Watchers Emails"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Highest"
|
||||
msgstr "ઉચ્ચતમ"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,day:0
|
||||
msgid "Day"
|
||||
msgstr "દિવસ"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Add Internal Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Date of helpdesk requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "My company"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
|
||||
msgid "Helpdesk Analysis"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,date_closed:0
|
||||
msgid "Close Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,ref:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_action_next:0
|
||||
msgid "Next Action"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Supports"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Extra Info"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,partner_id:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Estimates"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,section_id:0
|
||||
msgid "Section"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Helpdesk requests occurred in last month"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Send New Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk requests during last 7 days"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
|
||||
msgid "Helpdesk report after Sales Services"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,email_from:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,channel_id:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,channel_id:0
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "# Mails"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "My Sales Team(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,create_date:0
|
||||
#: field:crm.helpdesk.report,create_date:0
|
||||
msgid "Creation Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,date_deadline:0
|
||||
#: field:crm.helpdesk.report,date_deadline:0
|
||||
msgid "Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
|
||||
msgid "Helpdesk Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "New Helpdesk Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "History Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Month of helpdesk requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: code:addons/crm_helpdesk/crm_helpdesk.py:101
|
||||
#, python-format
|
||||
msgid "No Subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "#Helpdesk"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "All pending Helpdesk Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Year of helpdesk requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Communication"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Escalate"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,write_date:0
|
||||
msgid "Update Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Helpdesk requests occurred in current month"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Salesman"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,ref2:0
|
||||
msgid "Reference 2"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,categ_id:0
|
||||
#: field:crm.helpdesk.report,categ_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Responsible User"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Support"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,planned_cost:0
|
||||
#: field:crm.helpdesk.report,planned_cost:0
|
||||
msgid "Planned Costs"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,channel_id:0
|
||||
msgid "Communication channel."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,email_cc:0
|
||||
msgid ""
|
||||
"These email addresses will be added to the CC field of all inbound and "
|
||||
"outbound emails for this record before being sent. Separate multiple email "
|
||||
"addresses with a comma"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Search Helpdesk"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_closed:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Reply"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "7 Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Communication & History"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Global CC"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,planned_revenue:0
|
||||
msgid "Planned Revenue"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
|
||||
msgid "Helpdesk Requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,email_from:0
|
||||
msgid "These people will receive email."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,priority:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,priority:0
|
||||
msgid "Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,partner_address_id:0
|
||||
msgid "Partner Contact"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Misc"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,state:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Send Reminder"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,section_id:0
|
||||
msgid ""
|
||||
"Sales team to which Case belongs to. Define "
|
||||
"Responsible user and Email account for mail gateway."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Support Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,state:0
|
||||
msgid "In Progress"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Categorization"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
|
||||
msgid "Helpdesk"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,delay_expected:0
|
||||
msgid "Overpassed Deadline"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,probability:0
|
||||
msgid "Probability (%)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,email:0
|
||||
msgid "# Emails"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk
|
||||
msgid ""
|
||||
"Have a general overview of all support requests by sorting them with "
|
||||
"specific criteria such as the processing time, number of requests answered, "
|
||||
"emails sent and costs."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,state:0
|
||||
msgid ""
|
||||
"The state is set to 'Draft', when a case is created. "
|
||||
" \n"
|
||||
"If the case is in progress the state is set to 'Open'. "
|
||||
" \n"
|
||||
"When the case is over, the state is set to 'Done'. "
|
||||
" \n"
|
||||
"If the case needs to be reviewed then the state is set to 'Pending'."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Month-1"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
|
||||
msgid "Helpdesk and Support"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "My Case(s)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Query"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
|
||||
msgid ""
|
||||
"Create and manage helpdesk categories to better manage and classify your "
|
||||
"support requests."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Todays's Helpdesk Requests"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Request Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Open Helpdesk Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,section_id:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Sales Team"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_action_last:0
|
||||
msgid "Last Action"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111
|
||||
msgid ""
|
||||
"Helpdesk and Support allow you to track your interventions. Select a "
|
||||
"customer, add notes and categorize interventions with partners if necessary. "
|
||||
"You can also assign a priority level. Use the OpenERP Issues system to "
|
||||
"manage your support activities. Issues can be connected to the email "
|
||||
"gateway: new emails may create issues, each of them automatically gets the "
|
||||
"history of the conversation with the customer."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,name:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,duration:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-23 20:45+0000\n"
|
||||
"PO-Revision-Date: 2012-05-28 19:12+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-24 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 15135)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 15316)\n"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,delay_close:0
|
||||
@@ -725,6 +725,9 @@ msgid ""
|
||||
"gateway: new emails may create issues, each of them automatically gets the "
|
||||
"history of the conversation with the customer."
|
||||
msgstr ""
|
||||
"ヘルプデスクとサポート機能を使って、あなたの介在を記録することができます。カスタマごとに注釈を加えたり、必要であればパートナとのやり取りを記録することがで"
|
||||
"きます。また,優先レベルを割り当てることもできます。OpenERPの問題システムを使ってサポート活動を管理することができます。問題をEメールゲートウェイと"
|
||||
"連動させて、新しいEメールが問題を作成して、カスタマとの対話の履歴を自動的に生成することができます。"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-22 04:23+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-25 04:47+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-23 04:46+0000\n"
|
||||
"X-Generator: Launchpad (build 15135)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: crm_partner_assign
|
||||
#: field:crm.lead.forward.to.partner,send_to:0
|
||||
@@ -30,7 +30,7 @@ msgstr "メッセージタイプ"
|
||||
#. module: crm_partner_assign
|
||||
#: help:crm.lead.forward.to.partner,auto_delete:0
|
||||
msgid "Permanently delete emails after sending"
|
||||
msgstr "送信後、Eメールを削除する"
|
||||
msgstr "送信後、Eメールを削除"
|
||||
|
||||
#. module: crm_partner_assign
|
||||
#: field:crm.lead.report.assign,delay_close:0
|
||||
@@ -847,7 +847,7 @@ msgstr "CRMパートナ報告書"
|
||||
#. module: crm_partner_assign
|
||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
||||
msgid "E-mail composition wizard"
|
||||
msgstr "Eメール作成ツール"
|
||||
msgstr "Eメール作成ウィザード"
|
||||
|
||||
#. module: crm_partner_assign
|
||||
#: selection:crm.lead.report.assign,priority:0
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
|
||||
import delivery
|
||||
import partner
|
||||
import wizard
|
||||
import report
|
||||
import sale
|
||||
import stock
|
||||
|
||||
@@ -37,7 +37,6 @@ When creating invoices from picking, OpenERP is able to add and compute the ship
|
||||
'init_xml': ['delivery_data.xml'],
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/delivery_sale_order_view.xml',
|
||||
'delivery_report.xml',
|
||||
'delivery_view.xml',
|
||||
'partner_view.xml'
|
||||
|
||||
@@ -161,19 +161,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_order_withcarrier_form" model="ir.ui.view">
|
||||
<field name="name">delivery.sale.order_withcarrier.form.view</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="logistics" position="inside">
|
||||
<field name="id" invisible="True"/>
|
||||
<field name="carrier_id" context="{'order_id':active_id or False}"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_picking_withcarrier_out_form" model="ir.ui.view">
|
||||
<field name="name">delivery.stock.picking_withcarrier.out.form.view</field>
|
||||
<field name="type">form</field>
|
||||
@@ -258,14 +245,18 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="edit_project_multicompany">
|
||||
<field name="name">sale.order.multicompany</field>
|
||||
<record id="view_order_withcarrier_form" model="ir.ui.view">
|
||||
<field name="name">delivery.sale.order_withcarrier.form.view</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='order_confirm']" position="after">
|
||||
<button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-add" context="{'order_id':active_id}"/>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='bellow_the_lines_hook']" position="inside">
|
||||
<separator string="Delivery Costs" colspan="4"/>
|
||||
<field name="carrier_id" context="{'order_id':active_id or False}" colspan="2"/>
|
||||
<button name="delivery_set" states="draft" string="Add Now on the Sale Order" type="object" icon="gtk-add" colspan="2"/>
|
||||
<label string="if you don't click on 'Add Now', the delivery cost won't be added on the Sale Order, but will be added on the Delivery Order only" colspan="4"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -0,0 +1,642 @@
|
||||
# Latvian translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-28 08:36+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Latvian <lv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-29 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 15316)\n"
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:product.template,name:delivery.delivery_product_product_template
|
||||
msgid "Delivery by Poste"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: view:delivery.grid:0
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.move,weight_net:0
|
||||
msgid "Net weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:stock.picking:0
|
||||
msgid "Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_grid_line
|
||||
msgid "Delivery Grid Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: view:delivery.grid:0
|
||||
msgid "Delivery grids"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,type:0
|
||||
#: selection:delivery.grid.line,variable_factor:0
|
||||
#: field:stock.picking,volume:0
|
||||
msgid "Volume"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,line_ids:0
|
||||
msgid "Grid Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,partner_id:0
|
||||
msgid "The partner that is doing the delivery service."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.report.xml,name:delivery.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:res.partner:0
|
||||
msgid "Deliveries Properties"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
|
||||
msgid "Picking to be invoiced"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,pricelist_ids:0
|
||||
msgid "Advanced Pricing"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.grid,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of delivery grid."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: view:delivery.grid:0
|
||||
#: field:delivery.grid,country_ids:0
|
||||
msgid "Countries"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,variable_factor:0
|
||||
msgid "Variable Factor"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,help:delivery.action_delivery_grid_form
|
||||
msgid ""
|
||||
"The delivery price list allows you to compute the cost and sales price of "
|
||||
"the delivery according to the weight of the products and other criteria. You "
|
||||
"can define several price lists for one delivery method, per country or a "
|
||||
"zone in a specific country defined by a postal code range."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,amount:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,price_type:0
|
||||
msgid "Fixed"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,name:0
|
||||
#: view:delivery.sale.order:0
|
||||
#: field:delivery.sale.order,carrier_id:0
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form
|
||||
#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form
|
||||
#: field:res.partner,property_delivery_carrier:0
|
||||
#: field:sale.order,carrier_id:0
|
||||
msgid "Delivery Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:213
|
||||
#, python-format
|
||||
msgid "No price available!"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_move
|
||||
msgid "Stock Move"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,carrier_tracking_ref:0
|
||||
msgid "Carrier Tracking Ref"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,weight_net:0
|
||||
msgid "Net Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.grid.line:0
|
||||
msgid "Grid Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: view:delivery.grid:0
|
||||
msgid "Grid definition"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,operator:0
|
||||
msgid "Operator"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form1
|
||||
msgid ""
|
||||
"Define your delivery methods and their pricing. The delivery costs can be "
|
||||
"added on the sale order form or in the invoice, based on the delivery orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,partner_id:0
|
||||
msgid "Transport Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_grid
|
||||
msgid "Delivery Grid"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:213
|
||||
#, python-format
|
||||
msgid "No line matched this product or order in the choosed delivery grid."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,grids_id:0
|
||||
msgid "Delivery Grids"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_sale_order
|
||||
msgid "Make Delievery"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,zip_from:0
|
||||
msgid "Start Zip"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,amount:0
|
||||
msgid ""
|
||||
"Amount of the order to benefit from a free shipping, expressed in the "
|
||||
"company currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/stock.py:89
|
||||
#, python-format
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,grid_id:0
|
||||
msgid "Grid"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.grid,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the delivery "
|
||||
"grid without removing it."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,zip_to:0
|
||||
msgid "To Zip"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:141
|
||||
#, python-format
|
||||
msgid "Default price"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_define_delivery_steps_wizard
|
||||
msgid "delivery.define.delivery.steps.wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,normal_price:0
|
||||
msgid "Normal Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,name:0
|
||||
msgid "Grid Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:stock.move:0
|
||||
msgid "Weights"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,number_of_packages:0
|
||||
msgid "Number of Packages"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,type:0
|
||||
#: selection:delivery.grid.line,variable_factor:0
|
||||
#: report:sale.shipping:0
|
||||
#: field:stock.move,weight:0
|
||||
#: field:stock.picking,weight:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,use_detailed_pricelist:0
|
||||
msgid ""
|
||||
"Check this box if you want to manage delivery prices that depends on the "
|
||||
"destination, the weight, the total of the order, etc."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,normal_price:0
|
||||
msgid ""
|
||||
"Keep empty if the pricing depends on the advanced pricing per destination"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
msgid "You can not move products from or to a location of the type view."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:70
|
||||
#, python-format
|
||||
msgid "No grid available !"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
msgid ">="
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:53
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:73
|
||||
#, python-format
|
||||
msgid "Order not in draft state !"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.define.delivery.steps.wizard:0
|
||||
msgid "Choose Your Default Picking Policy"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
msgid "You try to assign a lot which is not from the same product"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,active:0
|
||||
#: field:delivery.grid,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,product_id:0
|
||||
msgid "Delivery Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.grid.line:0
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,standard_price:0
|
||||
msgid "Cost Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.define.delivery.steps.wizard,picking_policy:0
|
||||
msgid "Picking Policy"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,price_type:0
|
||||
#: field:delivery.grid.line,type:0
|
||||
msgid "Variable"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:res.partner,property_delivery_carrier:0
|
||||
msgid "This delivery method will be used when invoicing from picking."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: sql_constraint:stock.picking:0
|
||||
msgid "Reference must be unique per Company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,max_value:0
|
||||
msgid "Maximum Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.define.delivery.steps.wizard:0
|
||||
#: model:ir.actions.act_window,name:delivery.action_define_delivery_steps
|
||||
msgid "Setup Your Picking Policy"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form1
|
||||
msgid "Define Delivery Methods"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,free_if_more_than:0
|
||||
msgid ""
|
||||
"If the order is more expensive than a certain amount, the customer can "
|
||||
"benefit from a free shipping"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:sale.order,carrier_id:0
|
||||
msgid ""
|
||||
"Complete this field if you plan to invoice the shipping based on picking."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.define.delivery.steps.wizard:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/delivery.py:130
|
||||
#, python-format
|
||||
msgid "Free if more than %.2f"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: sql_constraint:sale.order:0
|
||||
msgid "Order Reference must be unique per Company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form
|
||||
msgid ""
|
||||
"Define the delivery methods you are using and their pricing in order to "
|
||||
"reinvoice the delivery costs when you are doing invoicing based on delivery "
|
||||
"orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:res.partner:0
|
||||
msgid "Sales & Purchases"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
msgid "<="
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
msgid "You must assign a production lot for this product"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,free_if_more_than:0
|
||||
msgid "Free If More Than"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "Create Deliveries"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: view:delivery.grid:0
|
||||
#: field:delivery.grid,state_ids:0
|
||||
msgid "States"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.carrier,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the delivery "
|
||||
"carrier without removing it."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
|
||||
#: model:ir.ui.menu,name:delivery.menu_action_delivery_grid_form
|
||||
msgid "Delivery Pricelist"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,price:0
|
||||
#: selection:delivery.grid.line,type:0
|
||||
#: selection:delivery.grid.line,variable_factor:0
|
||||
msgid "Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:70
|
||||
#, python-format
|
||||
msgid "No grid matching for this carrier !"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.ui.menu,name:delivery.menu_delivery
|
||||
msgid "Delivery"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,type:0
|
||||
#: selection:delivery.grid.line,variable_factor:0
|
||||
msgid "Weight * Volume"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
msgid "="
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/stock.py:90
|
||||
#, python-format
|
||||
msgid "The carrier %s (id: %d) has no delivery grid!"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
msgid "Pricing Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.define.delivery.steps.wizard,picking_policy:0
|
||||
msgid "Deliver all products at once"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,use_detailed_pricelist:0
|
||||
msgid "Advanced Pricing per Destination"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.carrier:0
|
||||
#: field:delivery.grid,carrier_id:0
|
||||
#: model:ir.model,name:delivery.model_delivery_carrier
|
||||
#: report:sale.shipping:0
|
||||
#: field:stock.picking,carrier_id:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "_Apply"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:sale.order,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:53
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:73
|
||||
#, python-format
|
||||
msgid "The order state have to be draft to add delivery lines."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,list_price:0
|
||||
msgid "Sale Price"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
|
||||
#: view:sale.order:0
|
||||
msgid "Delivery Costs"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.define.delivery.steps.wizard,picking_policy:0
|
||||
msgid "Deliver each product when available"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.define.delivery.steps.wizard:0
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,price_type:0
|
||||
msgid "Price Type"
|
||||
msgstr ""
|
||||
+36
-1
@@ -18,8 +18,10 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from osv import fields,osv
|
||||
|
||||
import time
|
||||
from osv import fields,osv
|
||||
from tools.translate import _
|
||||
|
||||
# Overloaded sale_order to manage carriers :
|
||||
class sale_order(osv.osv):
|
||||
@@ -41,6 +43,39 @@ class sale_order(osv.osv):
|
||||
result.update(carrier_id=order.carrier_id.id)
|
||||
return result
|
||||
|
||||
def delivery_set(self, cr, uid, ids, context=None):
|
||||
order_obj = self.pool.get('sale.order')
|
||||
line_obj = self.pool.get('sale.order.line')
|
||||
grid_obj = self.pool.get('delivery.grid')
|
||||
carrier_obj = self.pool.get('delivery.carrier')
|
||||
acc_fp_obj = self.pool.get('account.fiscal.position')
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id)
|
||||
if not grid_id:
|
||||
raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !'))
|
||||
|
||||
if not order.state in ('draft'):
|
||||
raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
|
||||
|
||||
grid = grid_obj.browse(cr, uid, grid_id, context=context)
|
||||
|
||||
taxes = grid.carrier_id.product_id.taxes_id
|
||||
fpos = order.fiscal_position or False
|
||||
taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
|
||||
#create the sale order line
|
||||
line_obj.create(cr, uid, {
|
||||
'order_id': order.id,
|
||||
'name': grid.carrier_id.name,
|
||||
'product_uom_qty': 1,
|
||||
'product_uom': grid.carrier_id.product_id.uom_id.id,
|
||||
'product_id': grid.carrier_id.product_id.id,
|
||||
'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context),
|
||||
'tax_id': [(6,0,taxes_ids)],
|
||||
'type': 'make_to_stock'
|
||||
})
|
||||
#remove the value of the carrier_id field on the sale order
|
||||
return self.write(cr, uid, ids, {'carrier_id': False}, context=context)
|
||||
#return {'type': 'ir.actions.act_window_close'} action reload?
|
||||
|
||||
sale_order()
|
||||
|
||||
|
||||
@@ -3,14 +3,8 @@
|
||||
-
|
||||
I add delivery cost in Sale order.
|
||||
-
|
||||
!python {model: delivery.sale.order}: |
|
||||
context.update({'active_ids': [ref("sale.order")]})
|
||||
-
|
||||
!record {model: delivery.sale.order, id: sale_delivery_carrier}:
|
||||
{}
|
||||
-
|
||||
!python {model: delivery.sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context)
|
||||
!python {model: sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref("sale.order")], context=context)
|
||||
-
|
||||
I check sale order after added delivery cost.
|
||||
-
|
||||
@@ -35,7 +29,7 @@
|
||||
self.create_invoice(cr, uid, [wiz_id], {"active_ids": ship_ids, "active_id": ship_ids[0]})
|
||||
-
|
||||
I print a Delivery Order report.
|
||||
-
|
||||
-
|
||||
!python {model: stock.picking}: |
|
||||
import netsvc, tools, os
|
||||
sale = self.pool.get('sale.order')
|
||||
@@ -47,14 +41,8 @@
|
||||
-
|
||||
I add free delivery cost in Sale order.
|
||||
-
|
||||
!python {model: delivery.sale.order}: |
|
||||
context.update({'active_ids': [ref("sale.order2")]})
|
||||
-
|
||||
!record {model: delivery.sale.order, id: sale_delivery_carrier}:
|
||||
{}
|
||||
-
|
||||
!python {model: delivery.sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context)
|
||||
!python {model: sale.order}: |
|
||||
self.delivery_set(cr, uid, [ref("sale.order2")], context=context)
|
||||
-
|
||||
I check sale order after added delivery cost.
|
||||
-
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
from tools.translate import _
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class make_delivery(osv.osv_memory):
|
||||
_name = "delivery.sale.order"
|
||||
_description = 'Make Delievery'
|
||||
|
||||
_columns = {
|
||||
'carrier_id': fields.many2one('delivery.carrier','Delivery Method', required=True),
|
||||
}
|
||||
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
res = super(make_delivery, self).default_get(cr, uid, fields, context=context)
|
||||
order_obj = self.pool.get('sale.order')
|
||||
for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
carrier = order.carrier_id.id
|
||||
if not carrier:
|
||||
carrier = order.partner_id.property_delivery_carrier.id
|
||||
res.update({'carrier_id': carrier})
|
||||
|
||||
return res
|
||||
|
||||
def view_init(self, cr , uid , fields, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
order_obj = self.pool.get('sale.order')
|
||||
for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
if not order.state in ('draft'):
|
||||
raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
|
||||
pass
|
||||
|
||||
def delivery_set(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
rec_ids = context and context.get('active_ids',[])
|
||||
order_obj = self.pool.get('sale.order')
|
||||
line_obj = self.pool.get('sale.order.line')
|
||||
grid_obj = self.pool.get('delivery.grid')
|
||||
carrier_obj = self.pool.get('delivery.carrier')
|
||||
acc_fp_obj = self.pool.get('account.fiscal.position')
|
||||
order_objs = order_obj.browse(cr, uid, rec_ids, context=context)
|
||||
for datas in self.browse(cr, uid, ids, context=context):
|
||||
for order in order_objs:
|
||||
grid_id = carrier_obj.grid_get(cr, uid, [datas.carrier_id.id],order.partner_shipping_id.id)
|
||||
if not grid_id:
|
||||
raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !'))
|
||||
|
||||
if not order.state in ('draft'):
|
||||
raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
|
||||
|
||||
grid = grid_obj.browse(cr, uid, grid_id, context=context)
|
||||
|
||||
taxes = grid.carrier_id.product_id.taxes_id
|
||||
fpos = order.fiscal_position or False
|
||||
taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
|
||||
line_obj.create(cr, uid, {
|
||||
'order_id': order.id,
|
||||
'name': grid.carrier_id.name,
|
||||
'product_uom_qty': 1,
|
||||
'product_uom': grid.carrier_id.product_id.uom_id.id,
|
||||
'product_id': grid.carrier_id.product_id.id,
|
||||
'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context),
|
||||
'tax_id': [(6,0,taxes_ids)],
|
||||
'type': 'make_to_stock'
|
||||
})
|
||||
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
make_delivery()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Delivery Sale Order -->
|
||||
|
||||
<record id="view_make_delivery_wizard" model="ir.ui.view">
|
||||
<field name="name">Delivery Costs</field>
|
||||
<field name="model">delivery.sale.order</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create Deliveries">
|
||||
<separator colspan="4" string="Delivery Method" />
|
||||
<field name="carrier_id" widget="selection"/>
|
||||
<newline/>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="_Cancel" />
|
||||
<button name="delivery_set" string="_Apply"
|
||||
colspan="1" type="object" icon="gtk-apply" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_delivery_cost" model="ir.actions.act_window">
|
||||
<field name="name">Delivery Costs</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">delivery.sale.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_make_delivery_wizard"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -33,7 +33,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1 class="oe_edi_doc_title">Order <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1>
|
||||
<t t-if="(doc.state == 'draft' or doc.state == 'sent') and doc.__model == 'sale.order'">
|
||||
<h1 class="oe_edi_doc_title">Quotation <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1>
|
||||
</t>
|
||||
<t t-if="(doc.state == 'draft' or doc.state == 'sent') and doc.__model == 'purchase.order'">
|
||||
<h1 class="oe_edi_doc_title">Request for Quotation <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1>
|
||||
</t>
|
||||
<t t-if="(doc.state != 'draft' and doc.state != 'sent')">
|
||||
<h1 class="oe_edi_doc_title">Order <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1>
|
||||
</t>
|
||||
|
||||
<table width="100%" class="oe_edi_data oe_edi_shade">
|
||||
<tr class="oe_edi_floor">
|
||||
@@ -116,7 +124,7 @@
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="Edi.sale.order.sidebar">
|
||||
<t t-if="doc.order_policy && (doc.order_policy == 'prepaid' || doc.order_policy == 'manual')">
|
||||
<t t-if="doc.order_policy and (doc.order_policy == 'prepaid' || doc.order_policy == 'manual') and (doc.state != 'draft' and doc.state != 'sent')">
|
||||
<t t-if="doc.company_address.paypal_account || doc.company_address.bank_ids">
|
||||
<p class="oe_edi_sidebar_title">Pay Online</p>
|
||||
<t t-if="doc.company_address.paypal_account">
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 18:28+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-25 04:53+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-11 05:11+0000\n"
|
||||
"X-Generator: Launchpad (build 15225)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 15288)\n"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,subtype:0
|
||||
@@ -408,7 +408,7 @@ msgstr "Eメールを送信する (%s)"
|
||||
#: field:email.template,body_html:0
|
||||
#: field:email_template.preview,body_html:0
|
||||
msgid "Rich-text Contents"
|
||||
msgstr "リッチテキストの内容"
|
||||
msgstr "リッチテキストのコンテンツ"
|
||||
|
||||
#. module: email_template
|
||||
#: field:email.template,copyvalue:0
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
@@ -38,7 +39,7 @@ Note that:
|
||||
Association / Configuration / Types of Events
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['email_template'],
|
||||
'depends': ['email_template','google_map'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'security/event_security.xml',
|
||||
|
||||
+19
-7
@@ -112,6 +112,14 @@ class event_event(osv.osv):
|
||||
if total_confirmed < self.event.register_min or total_confirmed > self.event.register_max and self.event.register_max!=0:
|
||||
raise osv.except_osv(_('Error!'),_("The total of confirmed registration for the event '%s' does not meet the expected minimum/maximum. You should maybe reconsider those limits before going further") % (self.event.name))
|
||||
|
||||
def check_registration_limits_before(self, cr, uid, ids, no_of_registration, context=None):
|
||||
for event in self.browse(cr, uid, ids, context=context):
|
||||
available_seats = event.register_avail
|
||||
if available_seats and no_of_registration > available_seats:
|
||||
raise osv.except_osv(_('Warning!'),_("Only %d Seats are Available!") % (available_seats))
|
||||
elif available_seats == 0:
|
||||
raise osv.except_osv(_('Warning!'),_("No Tickets Available!"))
|
||||
|
||||
def confirm_event(self, cr, uid, ids, context=None):
|
||||
register_pool = self.pool.get('event.registration')
|
||||
if self.event.email_confirmation_id:
|
||||
@@ -189,7 +197,7 @@ class event_event(osv.osv):
|
||||
'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'),
|
||||
'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'),
|
||||
'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'),
|
||||
'register_attended': fields.function(_get_register, string='Attended Registrations', multi='register_numbers'),
|
||||
'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'),
|
||||
'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
@@ -205,7 +213,6 @@ class event_event(osv.osv):
|
||||
'full_name' : fields.function(_name_get_fnc, type="char", string='Name'),
|
||||
'reply_to': fields.char('Reply-To Email', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."),
|
||||
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who will be giving speech at the event."),
|
||||
'speaker_ids': fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'address_id': fields.many2one('res.partner','Location Address', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'country_id': fields.related('address_id', 'country_id',
|
||||
@@ -214,21 +221,23 @@ class event_event(osv.osv):
|
||||
'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
|
||||
'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'state': 'draft',
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c),
|
||||
'user_id': lambda obj, cr, uid, context: uid,
|
||||
}
|
||||
|
||||
def subscribe_to_event(self, cr, uid, ids, context=None):
|
||||
register_pool = self.pool.get('event.registration')
|
||||
user_pool = self.pool.get('res.users')
|
||||
num_of_seats = int(context.get('ticket', 1))
|
||||
self.check_registration_limits_before(cr, uid, ids, num_of_seats, context=context)
|
||||
user = user_pool.browse(cr, uid, uid, context=context)
|
||||
curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])])
|
||||
#the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe
|
||||
if not curr_reg_ids:
|
||||
curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id,})]
|
||||
curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})]
|
||||
else:
|
||||
register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context)
|
||||
return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context)
|
||||
|
||||
def unsubscribe_to_event(self, cr, uid, ids, context=None):
|
||||
@@ -246,7 +255,6 @@ class event_event(osv.osv):
|
||||
_constraints = [
|
||||
(_check_closing_date, 'Error ! Closing Date cannot be set before Beginning Date.', ['date_end']),
|
||||
]
|
||||
|
||||
def onchange_event_type(self, cr, uid, ids, type_event, context=None):
|
||||
if type_event:
|
||||
type_info = self.pool.get('event.type').browse(cr,uid,type_event,context)
|
||||
@@ -347,6 +355,11 @@ class event_registration(osv.osv):
|
||||
def registration_open(self, cr, uid, ids, context=None):
|
||||
""" Open Registration
|
||||
"""
|
||||
event_obj = self.pool.get('event.event')
|
||||
for register in self.browse(cr, uid, ids, context=context):
|
||||
event_id = register.event_id.id
|
||||
no_of_registration = register.nb_register
|
||||
event_obj.check_registration_limits_before(cr, uid, [event_id], no_of_registration, context=context)
|
||||
res = self.confirm_registration(cr, uid, ids, context=context)
|
||||
self.mail_user(cr, uid, ids, context=context)
|
||||
return res
|
||||
@@ -457,5 +470,4 @@ class event_registration(osv.osv):
|
||||
|
||||
event_registration()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -38,16 +38,16 @@
|
||||
|
||||
<record id="event_1" model="event.event">
|
||||
<field name="name">Opera of Verdi</field>
|
||||
<field eval="time.strftime('%Y-%m-05 18:00:00')" name="date_begin"/>
|
||||
<field eval="time.strftime('%Y-%m-05 21:00:00')" name="date_end"/>
|
||||
<field eval="(DateTime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')" name="date_begin"/>
|
||||
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 21:00:00')" name="date_end"/>
|
||||
<field name="type" ref="event_type_1"/>
|
||||
<field name="register_min">50</field>
|
||||
<field name="register_max">350</field>
|
||||
</record>
|
||||
<record id="event_2" model="event.event">
|
||||
<field name="name">Conference on ERP Business</field>
|
||||
<field eval="time.strftime('%Y-%m-05 14:00:00')" name="date_begin"/>
|
||||
<field eval="time.strftime('%Y-%m-05 16:30:00')" name="date_end"/>
|
||||
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 14:00:00')" name="date_begin"/>
|
||||
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/>
|
||||
<field name="type" ref="event_type_2"/>
|
||||
<field name="register_max">200</field>
|
||||
</record>
|
||||
|
||||
+38
-37
@@ -50,10 +50,10 @@
|
||||
<field name="model">event.event</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form layout="manual">
|
||||
<form string="Events" layout="manual">
|
||||
<div class="oe_form_topbar">
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object"/>
|
||||
<button string="Mark Done" name="button_done" states="confirm" type="object"/>
|
||||
<button string="Event Ended" name="button_done" states="confirm" type="object"/>
|
||||
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object"/>
|
||||
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
|
||||
<div class="oe_right">
|
||||
@@ -61,19 +61,40 @@
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
<sheet string="Events" layout="auto">
|
||||
<group col="6" colspan="4" class="oe_form_header">
|
||||
<field name="name"/>
|
||||
<field name="date_begin"/>
|
||||
<field name="date_end"/>
|
||||
<sheet layout="manual">
|
||||
|
||||
|
||||
<field name="name" required="1" nolabel="1" class="oe_form_title" colspan="4"/>
|
||||
<group colspan="4" col="5">
|
||||
<group col="2" colspan="2" class="oe_form_group_label_border" style="margin-top: 20px;">
|
||||
<field name="type" on_change="onchange_event_type(type,context)"/>
|
||||
<field name="user_id"/>
|
||||
<field name="address_id" />
|
||||
<field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_form_google_map'}"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Event">
|
||||
<separator string="Description" colspan="4"/>
|
||||
<group col="2" colspan="2" class="oe_form_group_label_border" style="margin-top: 20px;">
|
||||
<field name="date_begin"/>
|
||||
<field name="date_end"/>
|
||||
<field name="register_min"/>
|
||||
<field name="register_max"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
<div class="oe_form_google_map" style="height: 200px"></div>
|
||||
|
||||
<notebook colspan="4">
|
||||
<page string="Event Description">
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Internal Data">
|
||||
<group class="oe_form_group_label_border" colspan="2" col="2">
|
||||
<field name="register_current"/>
|
||||
<field name="register_prospect"/>
|
||||
<field name="register_attended"/>
|
||||
</group>
|
||||
<group class="oe_form_group_label_border" colspan="2" col="2">
|
||||
<field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
|
||||
<field name="speaker_confirmed"/>
|
||||
</group>
|
||||
<field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user">
|
||||
<tree string="Registration" editable="top">
|
||||
<field name="name" />
|
||||
@@ -108,28 +129,6 @@
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Speakers">
|
||||
<field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/>
|
||||
<field name="speaker_confirmed"/>
|
||||
<separator string="Other Speakers" colspan="4"/>
|
||||
<field name="speaker_ids" domain="[('speaker','=',True)]" context="{'default_speaker':1}" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Extra Info">
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Registrations" colspan="2"/>
|
||||
<field name="register_min"/>
|
||||
<field name="register_max"/>
|
||||
<field name="register_prospect"/>
|
||||
<field name="register_current"/>
|
||||
<field name="register_attended"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Emails" colspan="2"/>
|
||||
<field name="reply_to"/>
|
||||
<field name="email_registration_id" domain="[('model_id.model','=','event.registration')]"/>
|
||||
<field name="email_confirmation_id" domain="[('model_id.model','=','event.registration')]"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_form_sheet_width">
|
||||
@@ -165,9 +164,10 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Event Kanban View -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_kanban">
|
||||
<record model="ir.ui.view" id="view_event_kanban">
|
||||
<field name="name">event.event.kanban</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="type">kanban</field>
|
||||
@@ -211,13 +211,14 @@
|
||||
</p>
|
||||
<t t-if="record.register_avail.raw_value != 0">
|
||||
<t t-if="!record.is_subscribed.raw_value">
|
||||
<button type="object" name="subscribe_to_event" class="subscribe_button oe_event_button_subscribe">
|
||||
<input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/>
|
||||
<button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_mail_button_follow">
|
||||
<span >Subscribe</span>
|
||||
</button>
|
||||
</t>
|
||||
</t>
|
||||
<t t-if="record.is_subscribed.raw_value">
|
||||
<button type="object" name="unsubscribe_to_event" class="unsubscribe_button oe_event_button_unsubscribe">
|
||||
<button type="object" name="unsubscribe_to_event" class="oe_mail_button_unfollow">
|
||||
<span>Subscribed</span>
|
||||
<span class="unsubscribe">Unsubscribe</span>
|
||||
</button>
|
||||
@@ -494,7 +495,7 @@
|
||||
<field name="view_mode">tree,form,calendar,graph</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="search_view_id" ref="view_registration_search"/>
|
||||
</record>
|
||||
</record>view_
|
||||
|
||||
<menuitem
|
||||
name="Registrations"
|
||||
|
||||
@@ -29,90 +29,17 @@
|
||||
color: #FFFFFF;
|
||||
background-color: #8A89BA;
|
||||
}
|
||||
div.oe_fold_column{
|
||||
padding:0px !important;
|
||||
}
|
||||
.oe_event_button_subscribe {
|
||||
display: inline-block;
|
||||
border: 1px solid #ababab;
|
||||
color: #404040;
|
||||
font-size: 12px;
|
||||
padding: 3px 10px;
|
||||
text-align: center;
|
||||
-o-background-size: 100% 100%;
|
||||
-moz-background-size: 100% 100%;
|
||||
-webkit-background-size: auto auto !important;
|
||||
background-size: 100% 100%;
|
||||
background: #d8d8d8 none;
|
||||
background: none, -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
|
||||
background: none, -webkit-linear-gradient(#efefef, #d8d8d8);
|
||||
background: none, -moz-linear-gradient(#efefef, #d8d8d8);
|
||||
background: none, -o-linear-gradient(top, #efefef, #d8d8d8);
|
||||
background: none, -khtml-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8));
|
||||
background: -ms-linear-gradient(top, #efefef, #d8d8d8);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef', endColorstr='#d8d8d8',GradientType=0 );
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
-o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
outline: none;
|
||||
}
|
||||
.oe_event_button_unsubscribe {
|
||||
display: inline-block;
|
||||
border: 1px solid #AAA;
|
||||
color: #404040;
|
||||
font-size: 12px;
|
||||
padding: 3px 10px;
|
||||
text-align: center;
|
||||
-o-background-size: 100% 100%;
|
||||
-moz-background-size: 100% 100%;
|
||||
-webkit-background-size: auto auto !important;
|
||||
background-size: 100% 100%;
|
||||
background: #AAA none;
|
||||
background: none, -webkit-gradient(linear, left top, left bottom, from(#AAA), to(#AAA));
|
||||
background: none, -webkit-linear-gradient(#AAA, #AAA);
|
||||
background: none, -moz-linear-gradient(#AAA, #AAA);
|
||||
background: none, -o-linear-gradient(top, #AAA, #AAA);
|
||||
background: none, -khtml-gradient(linear, left top, left bottom, from(#AAA), to(#AAA));
|
||||
background: -ms-linear-gradient(top, #AAA, #AAA);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#AAA, endColorstr='#AAA',GradientType=0 );
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
-o-border-radius: 3px;
|
||||
-ms-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
-o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
|
||||
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
outline: none;
|
||||
}
|
||||
.oe_event_button_subscribe:hover {
|
||||
cursor: pointer;
|
||||
background-size: 100% 100%;
|
||||
/*background: #DC5F59 none;*/
|
||||
|
||||
.no_of_seats{
|
||||
width:35px;
|
||||
}
|
||||
|
||||
.oe_mapbox
|
||||
{
|
||||
position: relative;
|
||||
float: right;
|
||||
height:200px;
|
||||
width:256px;
|
||||
border: 1px solid #eeeeee;
|
||||
}
|
||||
.oe_event_button_unsubscribe:hover {
|
||||
cursor: pointer;
|
||||
background-size: 100% 100%;
|
||||
background: #DC5F59 none;
|
||||
}
|
||||
.unsubscribe, .unsubscribe_button:hover span {
|
||||
display: none;
|
||||
background-color: #DC5F59
|
||||
}
|
||||
.unsubscribe_button:hover .unsubscribe {
|
||||
display: inline;
|
||||
background-color: #DC5F59;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
name: event
|
||||
date_begin: 2012-01-01 19:05:15
|
||||
date_end: 2012-01-01 20:05:15
|
||||
register_max: 10
|
||||
-
|
||||
I create a registration for the event
|
||||
-
|
||||
@@ -32,6 +33,7 @@
|
||||
I confirm the registration1
|
||||
-
|
||||
!python {model: event.registration}: |
|
||||
event_pool = self.pool.get("event.event")
|
||||
self.registration_open(cr, uid, [ref("event_registration1")],context=context)
|
||||
-
|
||||
I check that registration is "confirmed"
|
||||
|
||||
@@ -70,7 +70,6 @@ class sale_order_line(osv.osv):
|
||||
def button_confirm(self, cr, uid, ids, context=None):
|
||||
'''
|
||||
create registration with sale order
|
||||
|
||||
'''
|
||||
registration_obj = self.pool.get('event.registration')
|
||||
sale_obj = self.pool.get('sale.order')
|
||||
@@ -92,4 +91,3 @@ class sale_order_line(osv.osv):
|
||||
message = _("The registration %s has been created from the Sale Order %s.") % (registration_id, order_line.order_id.name)
|
||||
registration_obj.log(cr, uid, registration_id, message)
|
||||
return super(sale_order_line, self).button_confirm(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ Using this you can directly open Google Map from the URL widget.""",
|
||||
'google_map_view.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'js': ['static/src/js/google_map.js'],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'certificate': '0029498930765',
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
<label string="Street2 : " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="street2" nolabel="1"/>
|
||||
<button name="open_map"
|
||||
string="Map" type="object" icon="gtk-zoom-in"/>
|
||||
<button name="open_map" string="Map" type="object" icon="gtk-zoom-in"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
openerp.event = function(instance, mod) {
|
||||
instance.web.form.widgets.add('many2one_address_google_map', 'instance.google_map.Many2OneAddress');
|
||||
|
||||
var googleMapsLoaded = null;
|
||||
|
||||
instance.google_map.GoogleMapConnector = instance.web.Class.extend({
|
||||
map_load: function() {
|
||||
var self = this;
|
||||
if(googleMapsLoaded === null) {
|
||||
googleMapsLoaded = $.Deferred();
|
||||
// global
|
||||
openerp_googleMapsCallback = googleMapsLoaded.resolve;
|
||||
$.ajax({
|
||||
url: "https://maps.googleapis.com/maps/api/js?v=3&callback=openerp_googleMapsCallback&sensor=false",
|
||||
dataType: "script"
|
||||
}).fail(googleMapsLoaded.reject);
|
||||
}
|
||||
return googleMapsLoaded;
|
||||
},
|
||||
render_map: function(address,element) {
|
||||
this.map_load().then(function() {
|
||||
var geocoder = new google.maps.Geocoder();
|
||||
geocoder.geocode({'address': address}, function(results, status) {
|
||||
if (status == google.maps.GeocoderStatus.OK) {
|
||||
var lat = results[0].geometry.location.lat();
|
||||
var lng = results[0].geometry.location.lng();
|
||||
var myOptions = {
|
||||
zoom: 17,
|
||||
center: new google.maps.LatLng(lat,lng),
|
||||
mapTypeId: google.maps.MapTypeId.ROADMAP
|
||||
};
|
||||
var map = new google.maps.Map(element,myOptions);
|
||||
var position = new google.maps.LatLng(lat,lng);
|
||||
var marker = new google.maps.Marker({ map: map, position: position });
|
||||
return marker;
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
instance.google_map.Many2OneAddress = instance.web.form.FieldMany2One.extend({
|
||||
init: function(field_manager, node){
|
||||
this._super(field_manager, node);
|
||||
this.map = new instance.google_map.GoogleMapConnector();
|
||||
},
|
||||
get_address:function(value){
|
||||
var self = this;
|
||||
if (!value || value.length == 0){
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
(value instanceof Array)?value = parseInt(value[0]):false;
|
||||
var data = new instance.web.DataSet(this,this.field.relation, this.build_context());
|
||||
data.read_ids(value,["street","city","zip","country_id"]).done(function(value){
|
||||
var address;
|
||||
if (value['country_id']) {
|
||||
address = _.str.sprintf('%(street)s, %(zip)s %(city)s, %(country_id[1])s', value);
|
||||
} else {
|
||||
address = _.str.sprintf('%(street)s, %(zip)s %(city)s', value);
|
||||
}
|
||||
// TODO repalce by widget_option selector self.options.selector
|
||||
var el = self.view.$element.find(".oe_form_google_map")[0];
|
||||
self.map.render_map(address,el);
|
||||
});
|
||||
},
|
||||
set_value:function(value){
|
||||
this._super(value);
|
||||
this.get_address(value);
|
||||
},
|
||||
render_value:function(no_recurse){
|
||||
this.get_address(this.get("value"));
|
||||
this._super(no_recurse);
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -167,7 +167,6 @@ class hr_evaluation(osv.osv):
|
||||
('done','Done'),
|
||||
], 'Status', required=True, readonly=True),
|
||||
'date_close': fields.date('Ending Date', select=True),
|
||||
'progress': fields.float("Progress"),
|
||||
}
|
||||
_defaults = {
|
||||
'date': lambda *a: (parser.parse(datetime.now().strftime('%Y-%m-%d')) + relativedelta(months =+ 1)).strftime('%Y-%m-%d'),
|
||||
@@ -245,7 +244,6 @@ class hr_evaluation(osv.osv):
|
||||
return True
|
||||
|
||||
def button_done(self,cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids,{'progress': 1 * 100}, context=context)
|
||||
self.write(cr, uid, ids,{'state':'done', 'date_close': time.strftime('%Y-%m-%d')}, context=context)
|
||||
return True
|
||||
|
||||
@@ -312,7 +310,6 @@ class hr_evaluation_interview(osv.osv):
|
||||
for id in self.browse(cr, uid, ids, context=context):
|
||||
flag = False
|
||||
wating_id = 0
|
||||
tot_done_req = 1
|
||||
if not id.evaluation_id.id:
|
||||
raise osv.except_osv(_('Warning !'),_("You cannot start evaluation without Appraisal."))
|
||||
records = hr_eval_obj.browse(cr, uid, [id.evaluation_id.id], context=context)[0].survey_request_ids
|
||||
@@ -322,11 +319,8 @@ class hr_evaluation_interview(osv.osv):
|
||||
continue
|
||||
if child.state != "done":
|
||||
flag = True
|
||||
else:
|
||||
tot_done_req += 1
|
||||
if not flag and wating_id:
|
||||
self.survey_req_waiting_answer(cr, uid, [wating_id], context=context)
|
||||
hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress': tot_done_req * 100 / len(records)}, context=context)
|
||||
self.write(cr, uid, ids, { 'state': 'done'}, context=context)
|
||||
return True
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="survey_2" model="survey">
|
||||
<field name="title">Employee Appraisal</field>
|
||||
<field name="title">Self Appraisal</field>
|
||||
<field name="max_response_limit">20</field>
|
||||
<field eval="[(6,0,[])]" name="users"/>
|
||||
<field name="type" ref="survey.survey_type1"/>
|
||||
@@ -1157,37 +1157,11 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
</data>
|
||||
|
||||
<data noupdate="1">
|
||||
<record id="hr_evaluation_plan_phase_sendtosubordinates0" model="hr_evaluation.plan.phase">
|
||||
<field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
<field name="name">Send to Subordinates</field>
|
||||
<field eval="0" name="send_anonymous_manager"/>
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="action">bottom-up</field>
|
||||
<field eval="0" name="send_anonymous_employee"/>
|
||||
<field eval="0" name="send_answer_employee"/>
|
||||
<field name="survey_id" ref="hr_evaluation.survey_2"/>
|
||||
<field eval="0" name="send_answer_manager"/>
|
||||
<field eval="0" name="wait"/>
|
||||
</record>
|
||||
<record id="hr_evaluation_plan_phase_sendtomanagers0" model="hr_evaluation.plan.phase">
|
||||
<field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
<field name="name">Send to Managers</field>
|
||||
<field eval="0" name="send_anonymous_manager"/>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="action">top-down</field>
|
||||
<field eval="0" name="send_anonymous_employee"/>
|
||||
<field eval="0" name="send_answer_employee"/>
|
||||
<field name="survey_id" ref="hr_evaluation.survey_2"/>
|
||||
<field eval="0" name="send_answer_manager"/>
|
||||
<field eval="0" name="wait"/>
|
||||
</record>
|
||||
<record id="hr_evaluation_plan_phase_sendtoemployee0" model="hr_evaluation.plan.phase">
|
||||
<field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
<field name="name">Send to Employee</field>
|
||||
<field eval="0" name="send_anonymous_manager"/>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="action">self</field>
|
||||
<field eval="0" name="send_anonymous_employee"/>
|
||||
@@ -1196,19 +1170,6 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field eval="0" name="send_answer_manager"/>
|
||||
<field eval="0" name="wait"/>
|
||||
</record>
|
||||
<record id="hr_evaluation_plan_phase_finalinterviewwithmanager0" model="hr_evaluation.plan.phase">
|
||||
<field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/>
|
||||
<field name="name">Final Interview With Manager</field>
|
||||
<field eval="0" name="send_anonymous_manager"/>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="action">final</field>
|
||||
<field eval="0" name="send_anonymous_employee"/>
|
||||
<field eval="0" name="send_answer_employee"/>
|
||||
<field name="survey_id" ref="hr_evaluation.survey_2"/>
|
||||
<field eval="0" name="send_answer_manager"/>
|
||||
<field eval="1" name="wait"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
<button name="button_draft" string="Reset to Draft" states="cancel" type="object"/>
|
||||
<button name="button_cancel" string="Cancel" states="draft,wait,progress" type="object"/>
|
||||
<div class="oe_right">
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,wait,done" statusbar_colors='{"progress":"blue"}'/>
|
||||
<field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/>
|
||||
</div>
|
||||
<div class="oe_clear"/>
|
||||
</div>
|
||||
@@ -172,21 +172,20 @@
|
||||
<field name="employee_id" on_change="onchange_employee_id(employee_id)"/>
|
||||
<field name="plan_id"/>
|
||||
<field name="date"/>
|
||||
<field name="progress" widget="progressbar"/>
|
||||
</group>
|
||||
<group col="2" colspan="1">
|
||||
<group col="2" colspan="1" attrs="{'invisible':['|', ('state','=','draft'), ('state', '=', 'wait')]}">
|
||||
<separator string="Ending Summary" colspan="2"/>
|
||||
<field name="rating" attrs="{'readonly':[('state','<>','progress')],'required':[('state','=','progress')]}"/>
|
||||
<field name="rating" attrs="{'readonly':[('state','<>','progress')]}"/>
|
||||
<field name="date_close" readonly="1"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Appraisal">
|
||||
<page string="Appraisal" attrs="{'invisible':[('state','=','draft')]}">
|
||||
<field name="survey_request_ids" nolabel="1" colspan="4" widget="one2many">
|
||||
<form string="Interview Appraisal">
|
||||
<group col="4" colspan="4">
|
||||
<field name="survey_id"/>
|
||||
<group col="2" colspan="2">
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" />
|
||||
</group>
|
||||
<field name="date_deadline"/>
|
||||
@@ -198,15 +197,16 @@
|
||||
<separator string="Status" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="state"/>
|
||||
<button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Internal Notes">
|
||||
<page string="Internal Notes" attrs="{'invisible':[('state','=','draft')]}">
|
||||
<field name="note_action" colspan="4" nolabel="1"
|
||||
groups="base.group_hr_manager"/>
|
||||
</page>
|
||||
<page string="Public Notes">
|
||||
<page string="Public Notes" attrs="{'invisible':[('state','=','draft')]}">
|
||||
<field name="note_summary" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -258,6 +258,9 @@
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-gnome-cpu-frequency-applet+" string="Late"
|
||||
help="Appraisal that overpassed the deadline" domain="[('date','<=',(datetime.date.today()).strftime('%%Y-%%m-%%d'))]" />
|
||||
<filter icon="terp-go-month" name="next_month" string=" Month+1"
|
||||
domain="[('date','<=', (datetime.date.today() + relativedelta(day=31, months=1)).strftime('%%Y-%%m-%%d')),('date','>=',(datetime.date.today() + relativedelta(day=1,months=1)).strftime('%%Y-%%m-%%d')),('state','=','draft')]"
|
||||
help="Appraisal during next month"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id" />
|
||||
<field name="plan_id" widget="selection" />
|
||||
@@ -281,6 +284,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="search_view_id" ref="hr_evaluation.evaluation_search"/>
|
||||
<field name="context">{"search_default_next_month":1}</field>
|
||||
<field name="help">Each employee may be assigned an Appraisal Plan. Such a plan defines the frequency and the way you manage your periodic personnel evaluation. You will be able to define steps and attach interviews to each step. OpenERP manages all kind of evaluations: bottom-up, top-down, self-evaluation and final evaluation by the manager.</field>
|
||||
</record>
|
||||
|
||||
@@ -294,28 +298,27 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Interview Appraisal">
|
||||
<group col="4" colspan="4">
|
||||
<field name="survey_id"/>
|
||||
<field name="evaluation_id"/>
|
||||
<group col="2" colspan="2">
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" />
|
||||
</group>
|
||||
<field name="date_deadline"/>
|
||||
<field name="response" readonly="1"/>
|
||||
<field name="user_to_review_id"/>
|
||||
<field name="user_id" string="Interviewer"/>
|
||||
<group col="2" colspan="2">
|
||||
<button string="Send Reminder Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" type="action"
|
||||
states="waiting_answer"/>
|
||||
<button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<field name="user_to_review_id"/>
|
||||
<field name="user_id" string="Interviewer"/>
|
||||
<field name="date_deadline"/>
|
||||
<group col="4" colspan="4">
|
||||
<field name="survey_id"/>
|
||||
<button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<newline/>
|
||||
<field name="evaluation_id"/>
|
||||
<button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action" states="waiting_answer"/>
|
||||
<newline/>
|
||||
<field name="response" readonly="1"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<newline/>
|
||||
<separator string="Status" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="state"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="waiting_answer,done"/>
|
||||
<button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" />
|
||||
<button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" />
|
||||
<button string="Cancel" name="survey_req_cancel" states="draft,waiting_answer" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -332,11 +335,12 @@
|
||||
<field name="user_id" string="Interviewer"/>
|
||||
<field name="user_to_review_id"/>
|
||||
<field name="response" readonly="1" invisible="True"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0}" attrs="{'readonly':[('response','=',False)]}" />
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/>
|
||||
<button name="%(mail.action_email_compose_message_wizard)d" string="Send Reminder Email" icon="terp-mail-message-new" type="action" colspan="2" states="waiting_answer"/>
|
||||
<field name="state"/>
|
||||
<button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" />
|
||||
<button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -31,7 +31,6 @@ class hr_evaluation_report(osv.osv):
|
||||
'create_date': fields.date('Create Date', readonly=True),
|
||||
'delay_date':fields.float('Delay to Start', digits=(16,2),readonly=True),
|
||||
'overpass_delay':fields.float('Overpassed Deadline', digits=(16,2), readonly=True),
|
||||
'progress_bar' : fields.float("Progress"),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'deadline': fields.date("Deadline", readonly=True),
|
||||
'request_id': fields.many2one('survey.request', 'Request_id', readonly=True),
|
||||
@@ -77,7 +76,6 @@ class hr_evaluation_report(osv.osv):
|
||||
to_char(s.create_date, 'MM') as month,
|
||||
count(l.*) as nbr,
|
||||
s.state,
|
||||
s.progress as progress_bar,
|
||||
avg(extract('epoch' from age(s.create_date,CURRENT_DATE)))/(3600*24) as delay_date,
|
||||
avg(extract('epoch' from age(s.date,CURRENT_DATE)))/(3600*24) as overpass_delay
|
||||
from
|
||||
@@ -96,7 +94,6 @@ class hr_evaluation_report(osv.osv):
|
||||
s.date_close,
|
||||
l.request_id,
|
||||
s.rating,
|
||||
s.progress,
|
||||
s.plan_id
|
||||
)
|
||||
""")
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<field name="rating" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="nbr" sum="# of Requests"/>
|
||||
<field name="progress_bar" widget="progressbar"/>
|
||||
<field name="delay_date"/>
|
||||
<field name="overpass_delay"/>
|
||||
</tree>
|
||||
|
||||
@@ -25,7 +25,7 @@ access_survey_page_hr_user,survey.page.hr.user,survey.model_survey_page,base.gro
|
||||
access_survey_response_hr_user,survey.response.hr.user,survey.model_survey_response,base.group_hr_user,1,1,1,0
|
||||
access_survey_history_hr_user,survey.history.hr.user,survey.model_survey_history,base.group_hr_user,1,1,1,0
|
||||
access_survey_request_hr_user,survey.request.hr.user,survey.model_survey_request,base.group_hr_user,1,1,1,0
|
||||
access_survey_question_column_heading_hr_user,survey.question.column.heading.hr.user,survey.model_survey_question_column_heading,base.group_hr_user,1,0,0,0
|
||||
access_survey_question_column_heading_hr_user,survey.question.column.heading.hr.user,survey.model_survey_question_column_heading,base.group_hr_user,1,1,1,0
|
||||
access_survey_response_line_hr_user,survey.response.line.hr.user,survey.model_survey_response_line,base.group_hr_user,1,1,1,0
|
||||
access_survey_tbl_column_heading_hr_user,survey.tbl.column.heading.hr.user,survey.model_survey_tbl_column_heading,base.group_hr_user,1,1,1,0
|
||||
access_base_calendar_attendee_survey_user,base.calendar.calendar.attendee.survey.user,base_calendar.model_calendar_attendee,base.group_survey_user,1,1,1,0
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user