[MERGE] Sync with trunk.
bzr revid: tde@openerp.com-20121112161523-yfp1dczcnmi85t8e bzr revid: tde@openerp.com-20121114083900-qw40e8ii1rfl7gt1
|
@ -107,7 +107,7 @@ class account_analytic_line(osv.osv):
|
||||||
if journal_id:
|
if journal_id:
|
||||||
journal = analytic_journal_obj.browse(cr, uid, journal_id, context=context)
|
journal = analytic_journal_obj.browse(cr, uid, journal_id, context=context)
|
||||||
if journal.type == 'sale':
|
if journal.type == 'sale':
|
||||||
product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context)
|
product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context=context)
|
||||||
if product_price_type_ids:
|
if product_price_type_ids:
|
||||||
pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0]
|
pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context=context)[0]
|
||||||
# Take the company currency as the reference one
|
# Take the company currency as the reference one
|
||||||
|
|
|
@ -486,6 +486,19 @@ class account_bank_statement(osv.osv):
|
||||||
default['move_line_ids'] = []
|
default['move_line_ids'] = []
|
||||||
return super(account_bank_statement, self).copy(cr, uid, id, default, context=context)
|
return super(account_bank_statement, self).copy(cr, uid, id, default, context=context)
|
||||||
|
|
||||||
|
def button_journal_entries(self, cr, uid, ids, context=None):
|
||||||
|
ctx = (context or {}).copy()
|
||||||
|
ctx['journal_id'] = self.browse(cr, uid, ids[0], context=context).journal_id.id
|
||||||
|
return {
|
||||||
|
'view_type':'form',
|
||||||
|
'view_mode':'tree',
|
||||||
|
'res_model':'account.move.line',
|
||||||
|
'view_id':False,
|
||||||
|
'type':'ir.actions.act_window',
|
||||||
|
'domain':[('statement_id','in',ids)],
|
||||||
|
'context':ctx,
|
||||||
|
}
|
||||||
|
|
||||||
account_bank_statement()
|
account_bank_statement()
|
||||||
|
|
||||||
class account_bank_statement_line(osv.osv):
|
class account_bank_statement_line(osv.osv):
|
||||||
|
|
|
@ -402,6 +402,7 @@ class account_invoice(osv.osv):
|
||||||
'default_res_id': ids[0],
|
'default_res_id': ids[0],
|
||||||
'default_use_template': True,
|
'default_use_template': True,
|
||||||
'default_template_id': template_id,
|
'default_template_id': template_id,
|
||||||
|
'default_composition_mode': 'comment',
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
'view_type': 'form',
|
'view_type': 'form',
|
||||||
|
@ -983,13 +984,13 @@ class account_invoice(osv.osv):
|
||||||
for i in line:
|
for i in line:
|
||||||
i[2]['period_id'] = period_id
|
i[2]['period_id'] = period_id
|
||||||
|
|
||||||
|
ctx.update(invoice=inv)
|
||||||
move_id = move_obj.create(cr, uid, move, context=ctx)
|
move_id = move_obj.create(cr, uid, move, context=ctx)
|
||||||
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
|
new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name
|
||||||
# make the invoice point to that move
|
# make the invoice point to that move
|
||||||
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx)
|
self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx)
|
||||||
# Pass invoice in context in method post: used if you want to get the same
|
# Pass invoice in context in method post: used if you want to get the same
|
||||||
# account move reference when creating the same invoice after a cancelled one:
|
# account move reference when creating the same invoice after a cancelled one:
|
||||||
ctx.update({'invoice':inv})
|
|
||||||
move_obj.post(cr, uid, [move_id], context=ctx)
|
move_obj.post(cr, uid, [move_id], context=ctx)
|
||||||
self._log_event(cr, uid, ids)
|
self._log_event(cr, uid, ids)
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -208,7 +208,7 @@ class account_move_line(osv.osv):
|
||||||
if type(period_id) == str:
|
if type(period_id) == str:
|
||||||
ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)])
|
ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)])
|
||||||
context.update({
|
context.update({
|
||||||
'period_id': ids[0]
|
'period_id': ids and ids[0] or False
|
||||||
})
|
})
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ class account_move_line(osv.osv):
|
||||||
lines = self.browse(cr, uid, ids, context=context)
|
lines = self.browse(cr, uid, ids, context=context)
|
||||||
for l in lines:
|
for l in lines:
|
||||||
if l.account_id.type == 'view':
|
if l.account_id.type == 'view':
|
||||||
raise osv.except_osv(_('Error!'), _('You cannot create journal items on “View” type account %s %s.') % (l.account_id.code, l.account_id.name))
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _check_no_closed(self, cr, uid, ids, context=None):
|
def _check_no_closed(self, cr, uid, ids, context=None):
|
||||||
|
@ -917,7 +917,7 @@ class account_move_line(osv.osv):
|
||||||
|
|
||||||
if lines and lines[0]:
|
if lines and lines[0]:
|
||||||
partner_id = lines[0].partner_id and lines[0].partner_id.id or False
|
partner_id = lines[0].partner_id and lines[0].partner_id.id or False
|
||||||
if not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context):
|
if partner_id and not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context):
|
||||||
partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context)
|
partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context)
|
||||||
return r_id
|
return r_id
|
||||||
|
|
||||||
|
|
|
@ -41,13 +41,5 @@
|
||||||
groups="group_account_user,group_account_manager"
|
groups="group_account_user,group_account_manager"
|
||||||
parent="account.menu_finance_generic_reporting" sequence="3"/>
|
parent="account.menu_finance_generic_reporting" sequence="3"/>
|
||||||
|
|
||||||
<report id="account_account_balance_landscape"
|
|
||||||
string="Account balance"
|
|
||||||
model="account.account"
|
|
||||||
name="account.account.balance.landscape"
|
|
||||||
rml="account/report/account_balance_landscape.rml"
|
|
||||||
auto="False"
|
|
||||||
menu="False"/>
|
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -302,11 +302,11 @@
|
||||||
<field name="domain">[('parent_id','=',False)]</field>
|
<field name="domain">[('parent_id','=',False)]</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_account_gain_loss_tree" model="ir.ui.view">
|
<record id="view_account_gain_loss_tree" model="ir.ui.view">
|
||||||
<field name="name">Unrealized Gain or Loss</field>
|
<field name="name">Unrealized Gain or Loss</field>
|
||||||
<field name="model">account.account</field>
|
<field name="model">account.account</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Unrealized Gains and losses">
|
<tree string="Unrealized Gains and losses" create="false">
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="parent_id" invisible="1"/>
|
<field name="parent_id" invisible="1"/>
|
||||||
|
@ -322,7 +322,7 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_account_gain_loss" model="ir.actions.act_window">
|
<record id="action_account_gain_loss" model="ir.actions.act_window">
|
||||||
<field name="name">Unrealized Gain or Loss</field>
|
<field name="name">Unrealized Gain or Loss</field>
|
||||||
<field name="res_model">account.account</field>
|
<field name="res_model">account.account</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
|
@ -650,7 +650,7 @@
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
||||||
<field name="type" on_change="onchange_type(partner_id, type)"/>
|
<field name="type" on_change="onchange_type(partner_id, type)"/>
|
||||||
<field domain="[('journal_id','=',parent.journal_id), ('company_id', '=', parent.company_id)]" name="account_id"/>
|
<field name="account_id" options='{"no_open":True}' domain="[('journal_id','=',parent.journal_id), ('company_id', '=', parent.company_id)]"/>
|
||||||
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]"/>
|
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
@ -661,7 +661,7 @@
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
|
||||||
<field name="type" on_change="onchange_type(partner_id, type)"/>
|
<field name="type" on_change="onchange_type(partner_id, type)"/>
|
||||||
<field domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view'), ('company_id', '=', parent.company_id)]" name="account_id"/>
|
<field name="account_id" domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view'), ('company_id', '=', parent.company_id)]"/>
|
||||||
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]"/>
|
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="sequence" readonly="0"/>
|
<field name="sequence" readonly="0"/>
|
||||||
|
@ -671,15 +671,24 @@
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</page>
|
</page>
|
||||||
<page string="Journal Entries" name="move_live_ids">
|
|
||||||
<field name="move_line_ids"/>
|
|
||||||
</page>
|
|
||||||
</notebook>
|
</notebook>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="view_bank_statement_form_journal_items" model="ir.ui.view">
|
||||||
|
<field name="name">account.bank.statement.journal.items.form.inherit</field>
|
||||||
|
<field name="model">account.bank.statement</field>
|
||||||
|
<field name="inherit_id" ref="view_bank_statement_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//div[@name='import_buttons']" position="inside">
|
||||||
|
<button name="button_journal_entries"
|
||||||
|
string="Journal Items" type="object"
|
||||||
|
attrs="{'invisible':[('state','!=','confirm')]}"/>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record id="action_bank_statement_tree" model="ir.actions.act_window">
|
<record id="action_bank_statement_tree" model="ir.actions.act_window">
|
||||||
<field name="name">Bank Statements</field>
|
<field name="name">Bank Statements</field>
|
||||||
|
@ -1055,7 +1064,7 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_move_line_tree" model="ir.ui.view">
|
<record id="view_move_line_tree" model="ir.ui.view">
|
||||||
<field name="name">account.move.line.tree</field>
|
<field name="name">account.move.line.tree</field>
|
||||||
<field name="model">account.move.line</field>
|
<field name="model">account.move.line</field>
|
||||||
<field eval="4" name="priority"/>
|
<field eval="4" name="priority"/>
|
||||||
|
@ -1850,7 +1859,7 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_subscription_search" model="ir.ui.view">
|
<record id="view_subscription_search" model="ir.ui.view">
|
||||||
<field name="name">account.subscription.search</field>
|
<field name="name">account.subscription.search</field>
|
||||||
<field name="model">account.subscription</field>
|
<field name="model">account.subscription</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
@ -2159,7 +2168,8 @@
|
||||||
<field name="visible" />
|
<field name="visible" />
|
||||||
<field name="complete_tax_set" />
|
<field name="complete_tax_set" />
|
||||||
</group>
|
</group>
|
||||||
<field name="tax_template_ids" colspan="4" readonly="1" nolabel="1"/>
|
<separator string="Default Taxes" colspan="4"/>
|
||||||
|
<field name="tax_template_ids" colspan="4" nolabel="1"/>
|
||||||
<separator string="Properties" colspan="4"/>
|
<separator string="Properties" colspan="4"/>
|
||||||
<group col="4">
|
<group col="4">
|
||||||
<field name="property_account_receivable" domain="[('id', 'child_of', [account_root_id])]"/>
|
<field name="property_account_receivable" domain="[('id', 'child_of', [account_root_id])]"/>
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
<field name="name">Automated Invoice Notification Mail</field>
|
<field name="name">Automated Invoice Notification Mail</field>
|
||||||
<field name="email_from">${object.user_id.email or object.company_id.email or 'noreply@localhost'}</field>
|
<field name="email_from">${object.user_id.email or object.company_id.email or 'noreply@localhost'}</field>
|
||||||
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })</field>
|
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })</field>
|
||||||
<field name="email_to">${object.partner_id.email or ''}</field>
|
<field name="email_recipients">${object.partner_id.id}</field>
|
||||||
<field name="model_id" ref="account.model_account_invoice"/>
|
<field name="model_id" ref="account.model_account_invoice"/>
|
||||||
<field name="auto_delete" eval="True"/>
|
<field name="auto_delete" eval="True"/>
|
||||||
<field name="body_html"><![CDATA[
|
<field name="body_html"><![CDATA[
|
||||||
|
|
|
@ -7,20 +7,20 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||||
"PO-Revision-Date: 2011-03-17 20:16+0000\n"
|
"PO-Revision-Date: 2012-11-13 15:01+0000\n"
|
||||||
"Last-Translator: jpdborgna <Unknown>\n"
|
"Last-Translator: jpdborgna <Unknown>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 05:06+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-14 04:40+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.invoice.report:0
|
#: view:account.invoice.report:0
|
||||||
#: view:analytic.entries.report:0
|
#: view:analytic.entries.report:0
|
||||||
msgid "last month"
|
msgid "last month"
|
||||||
msgstr ""
|
msgstr "Ultimo mes"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||||
|
@ -146,7 +146,7 @@ msgstr "Referencia"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.open.closed.fiscalyear:0
|
#: view:account.open.closed.fiscalyear:0
|
||||||
msgid "Choose Fiscal Year "
|
msgid "Choose Fiscal Year "
|
||||||
msgstr ""
|
msgstr "Seleccione el año fiscal "
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.payment.term,active:0
|
#: help:account.payment.term,active:0
|
||||||
|
@ -159,7 +159,7 @@ msgstr ""
|
||||||
#: code:addons/account/account_invoice.py:1430
|
#: code:addons/account/account_invoice.py:1430
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Warning!"
|
msgid "Warning!"
|
||||||
msgstr ""
|
msgstr "¡Advertencia!"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: code:addons/account/account.py:3129
|
#: code:addons/account/account.py:3129
|
||||||
|
@ -187,7 +187,7 @@ msgstr ""
|
||||||
#: code:addons/account/wizard/account_move_journal.py:95
|
#: code:addons/account/wizard/account_move_journal.py:95
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Journal: %s"
|
msgid "Journal: %s"
|
||||||
msgstr ""
|
msgstr "Diario: %s"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.analytic.journal,type:0
|
#: help:account.analytic.journal,type:0
|
||||||
|
@ -228,6 +228,7 @@ msgstr ""
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
|
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La factura '%s' está parcialmente pagada: %s%s de %s%s (%s%s pendiente)"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
|
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
|
||||||
|
@ -268,7 +269,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.fiscalyear.close.state:0
|
#: view:account.fiscalyear.close.state:0
|
||||||
msgid "Close Fiscalyear"
|
msgid "Close Fiscalyear"
|
||||||
msgstr ""
|
msgstr "Cerrar ejercicio fiscal"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.automatic.reconcile,allow_write_off:0
|
#: field:account.automatic.reconcile,allow_write_off:0
|
||||||
|
@ -335,7 +336,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: view:account.installer:0
|
#: view:account.installer:0
|
||||||
msgid "Configure"
|
msgid "Configure"
|
||||||
msgstr ""
|
msgstr "Configurar"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.entries.report,month:0
|
#: selection:account.entries.report,month:0
|
||||||
|
@ -344,7 +345,7 @@ msgstr ""
|
||||||
#: selection:report.account.sales,month:0
|
#: selection:report.account.sales,month:0
|
||||||
#: selection:report.account_type.sales,month:0
|
#: selection:report.account_type.sales,month:0
|
||||||
msgid "June"
|
msgid "June"
|
||||||
msgstr ""
|
msgstr "Junio"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:ir.actions.act_window,help:account.action_account_moves_bank
|
#: model:ir.actions.act_window,help:account.action_account_moves_bank
|
||||||
|
@ -378,12 +379,12 @@ msgstr "Fecha de creación"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.journal,type:0
|
#: selection:account.journal,type:0
|
||||||
msgid "Purchase Refund"
|
msgid "Purchase Refund"
|
||||||
msgstr ""
|
msgstr "Devolución de compra"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: selection:account.journal,type:0
|
#: selection:account.journal,type:0
|
||||||
msgid "Opening/Closing Situation"
|
msgid "Opening/Closing Situation"
|
||||||
msgstr ""
|
msgstr "Situación de apertura/cierre"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.journal,currency:0
|
#: help:account.journal,currency:0
|
||||||
|
@ -393,7 +394,7 @@ msgstr "La moneda utilizada para el extracto"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.open.closed.fiscalyear,fyear_id:0
|
#: field:account.open.closed.fiscalyear,fyear_id:0
|
||||||
msgid "Fiscal Year to Open"
|
msgid "Fiscal Year to Open"
|
||||||
msgstr "Año fiscal para abrir"
|
msgstr "Ejercicio fiscal a abrir"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.journal,sequence_id:0
|
#: help:account.journal,sequence_id:0
|
||||||
|
@ -495,7 +496,7 @@ msgstr ""
|
||||||
#. module: account
|
#. module: account
|
||||||
#: field:account.bank.statement,account_id:0
|
#: field:account.bank.statement,account_id:0
|
||||||
msgid "Account used in this journal"
|
msgid "Account used in this journal"
|
||||||
msgstr ""
|
msgstr "Cuenta utilizada en este diario"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.aged.trial.balance,chart_account_id:0
|
#: help:account.aged.trial.balance,chart_account_id:0
|
||||||
|
@ -557,7 +558,7 @@ msgstr "Cerrar un año fiscal"
|
||||||
#. module: account
|
#. module: account
|
||||||
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
|
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
|
||||||
msgid "The accountant confirms the statement."
|
msgid "The accountant confirms the statement."
|
||||||
msgstr ""
|
msgstr "El contador confirma la declaración."
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: report:account.account.balance:0
|
#: report:account.account.balance:0
|
||||||
|
@ -8156,7 +8157,7 @@ msgstr ""
|
||||||
#: field:account.bank.statement,balance_end_real:0
|
#: field:account.bank.statement,balance_end_real:0
|
||||||
#: field:account.treasury.report,ending_balance:0
|
#: field:account.treasury.report,ending_balance:0
|
||||||
msgid "Ending Balance"
|
msgid "Ending Balance"
|
||||||
msgstr "Balance final"
|
msgstr "Saldo Final"
|
||||||
|
|
||||||
#. module: account
|
#. module: account
|
||||||
#: help:account.move.line,blocked:0
|
#: help:account.move.line,blocked:0
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<field name="name">account.fiscal.position.form</field>
|
<field name="name">account.fiscal.position.form</field>
|
||||||
<field name="model">account.fiscal.position</field>
|
<field name="model">account.fiscal.position</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Fiscal Position">
|
<form string="Fiscal Position" version="7.0">
|
||||||
<group col="4">
|
<group col="4">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="active"/>
|
<field name="active"/>
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}"
|
context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}"
|
||||||
src_model="res.partner"
|
src_model="res.partner"
|
||||||
view_type="form"
|
view_type="form"
|
||||||
view_mode="tree,form,calendar"/>
|
view_mode="tree,form"/>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -170,12 +170,12 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
|
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
|
||||||
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
|
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
|
||||||
<td><para style="terp_tblheader_General_Centre">Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]</para></td>
|
<td><para style="terp_tblheader_General_Centre">Filter By [[ get_filter(data)!='No Filters' and get_filter(data) ]]</para></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
|
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
|
||||||
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
|
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
|
||||||
<td><para style="terp_default_Centre_8">[[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] </para>
|
<td><para style="terp_default_Centre_8">[[ get_filter(data)=='No Filters' and get_filter(data) or removeParentNode('para') ]] </para>
|
||||||
<blockTable colWidths="60.0,60.0" style="Table3">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
|
<blockTable colWidths="60.0,60.0" style="Table3">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
|
||||||
<tr>
|
<tr>
|
||||||
<td><para style="terp_tblheader_General_Centre">Start Date</para></td>
|
<td><para style="terp_tblheader_General_Centre">Start Date</para></td>
|
||||||
|
|
|
@ -299,10 +299,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
|
||||||
|
|
||||||
def _get_sortby(self, data):
|
def _get_sortby(self, data):
|
||||||
if self.sortby == 'sort_date':
|
if self.sortby == 'sort_date':
|
||||||
return 'Date'
|
return self._translate('Date')
|
||||||
elif self.sortby == 'sort_journal_partner':
|
elif self.sortby == 'sort_journal_partner':
|
||||||
return 'Journal & Partner'
|
return self._translate('Journal & Partner')
|
||||||
return 'Date'
|
return self._translate('Date')
|
||||||
|
|
||||||
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal')
|
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal')
|
||||||
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')
|
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')
|
||||||
|
|
|
@ -94,10 +94,10 @@ class common_report_header(object):
|
||||||
def _get_filter(self, data):
|
def _get_filter(self, data):
|
||||||
if data.get('form', False) and data['form'].get('filter', False):
|
if data.get('form', False) and data['form'].get('filter', False):
|
||||||
if data['form']['filter'] == 'filter_date':
|
if data['form']['filter'] == 'filter_date':
|
||||||
return 'Date'
|
return self._translate('Date')
|
||||||
elif data['form']['filter'] == 'filter_period':
|
elif data['form']['filter'] == 'filter_period':
|
||||||
return 'Periods'
|
return self._translate('Periods')
|
||||||
return 'No Filter'
|
return self._translate('No Filters')
|
||||||
|
|
||||||
def _sum_debit_period(self, period_id, journal_id=None):
|
def _sum_debit_period(self, period_id, journal_id=None):
|
||||||
journals = journal_id or self.journal_ids
|
journals = journal_id or self.journal_ids
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0')}
|
data_dict = {'chart_account_id':ref('account.chart0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'), 'account_report_id': ref('account_financial_report_balancesheet0')}
|
data_dict = {'chart_account_id':ref('account.chart0'), 'account_report_id': ref('account_financial_report_balancesheet0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -49,7 +47,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0')}
|
data_dict = {'chart_account_id':ref('account.chart0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_balance_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_balance_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -60,7 +57,6 @@
|
||||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),
|
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),
|
||||||
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.journal.period','active_ids':journal_ids})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0')}
|
data_dict = {'chart_account_id':ref('account.chart0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_central_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_central_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -71,7 +67,6 @@
|
||||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),
|
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),
|
||||||
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.journal.period','active_ids':journal_ids})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0')}
|
data_dict = {'chart_account_id':ref('account.chart0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_general_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_general_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -80,7 +75,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':False}
|
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':False}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -89,7 +83,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':True}
|
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':True}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -99,7 +92,6 @@
|
||||||
!python {model: account.journal.period}: |
|
!python {model: account.journal.period}: |
|
||||||
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.journal.period','active_ids':journal_ids})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'), 'period_from':ref('period_1'), 'period_to':ref('period_12')}
|
data_dict = {'chart_account_id':ref('account.chart0'), 'period_from':ref('period_1'), 'period_to':ref('period_12')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_print_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_print_journal',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
@ -109,7 +101,6 @@
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
data_dict = {'chart_account_id':ref('account.chart0')}
|
data_dict = {'chart_account_id':ref('account.chart0')}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')})
|
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_partner_balance',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_partner_balance',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
-
|
-
|
||||||
|
@ -118,7 +109,6 @@
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': True}
|
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': True}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')})
|
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
-
|
-
|
||||||
|
@ -127,7 +117,6 @@
|
||||||
!python {model: res.partner}: |
|
!python {model: res.partner}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': False}
|
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': False}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')],'active_id':ref('account.chart0')})
|
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
-
|
-
|
||||||
|
@ -135,7 +124,6 @@
|
||||||
-
|
-
|
||||||
!python {model: account.account}: |
|
!python {model: account.account}: |
|
||||||
ctx={}
|
ctx={}
|
||||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
|
||||||
data_dict = {'chart_account_id':ref('account.chart0'), 'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')}
|
data_dict = {'chart_account_id':ref('account.chart0'), 'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')}
|
||||||
from tools import test_reports
|
from tools import test_reports
|
||||||
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
|
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
|
||||||
|
|
|
@ -226,7 +226,7 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||||
for account in obj_acc_account.browse(cr, uid, account_ids, context={'fiscalyear': fy_id}):
|
for account in obj_acc_account.browse(cr, uid, account_ids, context={'fiscalyear': fy_id}):
|
||||||
balance_in_currency = 0.0
|
balance_in_currency = 0.0
|
||||||
if account.currency_id:
|
if account.currency_id:
|
||||||
cr.execute('SELECT sum(amount_currency) as balance_in_currency FROM account_move_line ' \
|
cr.execute('SELECT sum(COALESCE(amount_currency,0.0)) as balance_in_currency FROM account_move_line ' \
|
||||||
'WHERE account_id = %s ' \
|
'WHERE account_id = %s ' \
|
||||||
'AND ' + query_line + ' ' \
|
'AND ' + query_line + ' ' \
|
||||||
'AND currency_id = %s', (account.id, account.currency_id.id))
|
'AND currency_id = %s', (account.id, account.currency_id.id))
|
||||||
|
|
|
@ -119,7 +119,11 @@ class account_common_report(osv.osv_memory):
|
||||||
|
|
||||||
def _get_fiscalyear(self, cr, uid, context=None):
|
def _get_fiscalyear(self, cr, uid, context=None):
|
||||||
now = time.strftime('%Y-%m-%d')
|
now = time.strftime('%Y-%m-%d')
|
||||||
fiscalyears = self.pool.get('account.fiscalyear').search(cr, uid, [('date_start', '<', now), ('date_stop', '>', now)], limit=1 )
|
company_id = False
|
||||||
|
ids = context.get('active_ids', [])
|
||||||
|
if ids:
|
||||||
|
company_id = self.browse(cr, uid, ids[0], context=context).company_id.id
|
||||||
|
fiscalyears = self.pool.get('account.fiscalyear').search(cr, uid, [('date_start', '<', now), ('date_stop', '>', now), ('company_id', '=', company_id)], limit=1)
|
||||||
return fiscalyears and fiscalyears[0] or False
|
return fiscalyears and fiscalyears[0] or False
|
||||||
|
|
||||||
def _get_all_journal(self, cr, uid, context=None):
|
def _get_all_journal(self, cr, uid, context=None):
|
||||||
|
|
|
@ -21,17 +21,17 @@
|
||||||
<field name="inherit_id" ref="account.view_move_form"/>
|
<field name="inherit_id" ref="account.view_move_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="/form/sheet/notebook/page/field[@name='line_id']/tree/field[@name='analytic_account_id']" position="replace">
|
<xpath expr="/form/sheet/notebook/page/field[@name='line_id']/tree/field[@name='analytic_account_id']" position="replace">
|
||||||
<field name="analytics_id" context="{'journal_id':journal_id}" groups="analytic.group_analytic_accounting"/>
|
<field name="analytics_id" context="{'journal_id':parent.journal_id}" groups="analytic.group_analytic_accounting"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="/form/sheet/notebook/page/field[@name='line_id']/form/notebook/page/group/group/field[@name='analytic_account_id']" position="replace">
|
<xpath expr="/form/sheet/notebook/page/field[@name='line_id']/form/notebook/page/group/group/field[@name='analytic_account_id']" position="replace">
|
||||||
<field name="analytics_id" context="{'journal_id':journal_id}" groups="analytic.group_analytic_accounting"/>
|
<field name="analytics_id" context="{'journal_id':parent.journal_id}" groups="analytic.group_analytic_accounting"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="journal_col11" model="account.journal.column">
|
<record id="journal_col11" model="account.journal.column">
|
||||||
<field eval=""""Analytic Distribution"""" name="name"/>
|
<field eval=""""Analytic Distribution"""" name="name"/>
|
||||||
<field eval="11" name="sequence"/>
|
<field eval="15" name="sequence"/>
|
||||||
<field name="view_id" ref="account.account_journal_view"/>
|
<field name="view_id" ref="account.account_journal_view"/>
|
||||||
<field eval="0" name="required"/>
|
<field eval="0" name="required"/>
|
||||||
<field eval=""""analytics_id"""" name="field"/>
|
<field eval=""""analytics_id"""" name="field"/>
|
||||||
|
@ -276,7 +276,7 @@
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="view_default_inherit_tree">
|
<record model="ir.ui.view" id="view_default_inherit_tree">
|
||||||
<field name="name">account.analytic.default.tree.plans</field>
|
<field name="name">account.analytic.default.tree.plans</field>
|
||||||
<field name="model">account.analytic.default</field>
|
<field name="model">account.analytic.default</field>
|
||||||
<field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_tree"/>
|
<field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_tree"/>
|
||||||
|
|
|
@ -40,7 +40,7 @@ class account_invoice_line(osv.osv):
|
||||||
|
|
||||||
if inv.type in ('out_invoice','out_refund'):
|
if inv.type in ('out_invoice','out_refund'):
|
||||||
for i_line in inv.invoice_line:
|
for i_line in inv.invoice_line:
|
||||||
if i_line.product_id:
|
if i_line.product_id and i_line.product_id.valuation == 'real_time':
|
||||||
if inv.type == 'out_invoice':
|
if inv.type == 'out_invoice':
|
||||||
# debit account dacc will be the output account
|
# debit account dacc will be the output account
|
||||||
# first check the product, if empty check the category
|
# first check the product, if empty check the category
|
||||||
|
@ -87,7 +87,7 @@ class account_invoice_line(osv.osv):
|
||||||
})
|
})
|
||||||
elif inv.type in ('in_invoice','in_refund'):
|
elif inv.type in ('in_invoice','in_refund'):
|
||||||
for i_line in inv.invoice_line:
|
for i_line in inv.invoice_line:
|
||||||
if i_line.product_id:
|
if i_line.product_id and i_line.product_id.valuation == 'real_time':
|
||||||
if i_line.product_id.type != 'service':
|
if i_line.product_id.type != 'service':
|
||||||
# get the price difference account at the product
|
# get the price difference account at the product
|
||||||
acc = i_line.product_id.property_account_creditor_price_difference and i_line.product_id.property_account_creditor_price_difference.id
|
acc = i_line.product_id.property_account_creditor_price_difference and i_line.product_id.property_account_creditor_price_difference.id
|
||||||
|
|
|
@ -386,7 +386,7 @@ class account_asset_depreciation_line(osv.osv):
|
||||||
current_currency = line.asset_id.currency_id.id
|
current_currency = line.asset_id.currency_id.id
|
||||||
context.update({'date': depreciation_date})
|
context.update({'date': depreciation_date})
|
||||||
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.amount, context=context)
|
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.amount, context=context)
|
||||||
sign = line.asset_id.category_id.journal_id.type = 'purchase' and 1 or -1
|
sign = (line.asset_id.category_id.journal_id.type == 'purchase' and 1) or -1
|
||||||
asset_name = line.asset_id.name
|
asset_name = line.asset_id.name
|
||||||
reference = line.name
|
reference = line.name
|
||||||
move_vals = {
|
move_vals = {
|
||||||
|
|
|
@ -220,7 +220,18 @@
|
||||||
<menuitem parent="next_id_31"
|
<menuitem parent="next_id_31"
|
||||||
id="menu_act_crossovered_budget_view"
|
id="menu_act_crossovered_budget_view"
|
||||||
action="act_crossovered_budget_view" sequence="1" />
|
action="act_crossovered_budget_view" sequence="1" />
|
||||||
|
|
||||||
|
<record id="view_crossovered_budget_line_search" model="ir.ui.view">
|
||||||
|
<field name="name">account.budget.line.search</field>
|
||||||
|
<field name="model">crossovered.budget.lines</field>
|
||||||
|
<field name="type">search</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Budget Lines">
|
||||||
|
<field name="analytic_account_id"/>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
<record model="ir.ui.view" id="view_crossovered_budget_line_tree">
|
<record model="ir.ui.view" id="view_crossovered_budget_line_tree">
|
||||||
<field name="name">crossovered.budget.line.tree</field>
|
<field name="name">crossovered.budget.line.tree</field>
|
||||||
<field name="model">crossovered.budget.lines</field>
|
<field name="model">crossovered.budget.lines</field>
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||||
"PO-Revision-Date: 2012-02-09 19:28+0000\n"
|
"PO-Revision-Date: 2012-11-09 12:09+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||||
"Language-Team: Spanish <es@li.org>\n"
|
"Language-Team: Spanish <es@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 05:36+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: selection:res.company,check_layout:0
|
#: selection:res.company,check_layout:0
|
||||||
|
@ -154,7 +154,7 @@ msgstr "Compañías"
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: view:res.company:0
|
#: view:res.company:0
|
||||||
msgid "Default Check Layout"
|
msgid "Default Check Layout"
|
||||||
msgstr ""
|
msgstr "Comprobar formato por defecto"
|
||||||
|
|
||||||
#. module: account_check_writing
|
#. module: account_check_writing
|
||||||
#: constraint:account.journal:0
|
#: constraint:account.journal:0
|
||||||
|
|
|
@ -43,6 +43,18 @@
|
||||||
<field eval="True" name="required"/>
|
<field eval="True" name="required"/>
|
||||||
<field eval="2" name="sequence"/>
|
<field eval="2" name="sequence"/>
|
||||||
</record>
|
</record>
|
||||||
|
<record id="sequence_journal" model="ir.sequence.type">
|
||||||
|
<field name="name">Account Journal</field>
|
||||||
|
<field name="code">account.journal</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="sequence_journal_seq" model="ir.sequence">
|
||||||
|
<field name="name">Account journal sequence</field>
|
||||||
|
<field name="code">account.journal</field>
|
||||||
|
<field name="prefix">AJ</field>
|
||||||
|
<field eval="1" name="number_next"/>
|
||||||
|
<field eval="1" name="number_increment"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -267,6 +267,7 @@ class account_voucher(osv.osv):
|
||||||
_order = "date desc, id desc"
|
_order = "date desc, id desc"
|
||||||
# _rec_name = 'number'
|
# _rec_name = 'number'
|
||||||
_columns = {
|
_columns = {
|
||||||
|
'active': fields.boolean('Active', help="By default, reconciliation vouchers made on draft bank statements are set as inactive, which allow to hide the customer/supplier payment while the bank statement isn't confirmed."),
|
||||||
'type':fields.selection([
|
'type':fields.selection([
|
||||||
('sale','Sale'),
|
('sale','Sale'),
|
||||||
('purchase','Purchase'),
|
('purchase','Purchase'),
|
||||||
|
@ -328,6 +329,7 @@ class account_voucher(osv.osv):
|
||||||
'is_multi_currency': fields.boolean('Multi Currency Voucher', help='Fields with internal purpose only that depicts if the voucher is a multi currency one or not'),
|
'is_multi_currency': fields.boolean('Multi Currency Voucher', help='Fields with internal purpose only that depicts if the voucher is a multi currency one or not'),
|
||||||
}
|
}
|
||||||
_defaults = {
|
_defaults = {
|
||||||
|
'active': True,
|
||||||
'period_id': _get_period,
|
'period_id': _get_period,
|
||||||
'partner_id': _get_partner,
|
'partner_id': _get_partner,
|
||||||
'journal_id':_get_journal,
|
'journal_id':_get_journal,
|
||||||
|
@ -953,6 +955,9 @@ class account_voucher(osv.osv):
|
||||||
if voucher_brw.number:
|
if voucher_brw.number:
|
||||||
name = voucher_brw.number
|
name = voucher_brw.number
|
||||||
elif voucher_brw.journal_id.sequence_id:
|
elif voucher_brw.journal_id.sequence_id:
|
||||||
|
if not voucher_brw.journal_id.sequence_id.active:
|
||||||
|
raise osv.except_osv(_('Configuration Error !'),
|
||||||
|
_('Please activate the sequence of selected journal !'))
|
||||||
name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=context)
|
name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=context)
|
||||||
else:
|
else:
|
||||||
raise osv.except_osv(_('Error!'),
|
raise osv.except_osv(_('Error!'),
|
||||||
|
@ -1504,6 +1509,15 @@ account_voucher_line()
|
||||||
class account_bank_statement(osv.osv):
|
class account_bank_statement(osv.osv):
|
||||||
_inherit = 'account.bank.statement'
|
_inherit = 'account.bank.statement'
|
||||||
|
|
||||||
|
def button_confirm_bank(self, cr, uid, ids, context=None):
|
||||||
|
voucher_obj = self.pool.get('account.voucher')
|
||||||
|
voucher_ids = []
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
voucher_ids += [line.voucher_id.id for line in statement.line_ids if line.voucher_id]
|
||||||
|
if voucher_ids:
|
||||||
|
voucher_obj.write(cr, uid, voucher_ids, {'active': True}, context=context)
|
||||||
|
return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)
|
||||||
|
|
||||||
def button_cancel(self, cr, uid, ids, context=None):
|
def button_cancel(self, cr, uid, ids, context=None):
|
||||||
voucher_obj = self.pool.get('account.voucher')
|
voucher_obj = self.pool.get('account.voucher')
|
||||||
for st in self.browse(cr, uid, ids, context=context):
|
for st in self.browse(cr, uid, ids, context=context):
|
||||||
|
@ -1539,6 +1553,16 @@ account_bank_statement()
|
||||||
class account_bank_statement_line(osv.osv):
|
class account_bank_statement_line(osv.osv):
|
||||||
_inherit = 'account.bank.statement.line'
|
_inherit = 'account.bank.statement.line'
|
||||||
|
|
||||||
|
def onchange_partner_id(self, cr, uid, ids, partner_id, context=None):
|
||||||
|
res = super(account_bank_statement_line, self).onchange_partner_id(cr, uid, ids, partner_id, context=context)
|
||||||
|
if 'value' not in res:
|
||||||
|
res['value'] = {}
|
||||||
|
res['value'].update({'voucher_id' : False})
|
||||||
|
return res
|
||||||
|
|
||||||
|
def onchange_amount(self, cr, uid, ids, amount, context=None):
|
||||||
|
return {'value' : {'voucher_id' : False}}
|
||||||
|
|
||||||
def _amount_reconciled(self, cursor, user, ids, name, args, context=None):
|
def _amount_reconciled(self, cursor, user, ids, name, args, context=None):
|
||||||
if not ids:
|
if not ids:
|
||||||
return {}
|
return {}
|
||||||
|
@ -1565,7 +1589,7 @@ class account_bank_statement_line(osv.osv):
|
||||||
_columns = {
|
_columns = {
|
||||||
'amount_reconciled': fields.function(_amount_reconciled,
|
'amount_reconciled': fields.function(_amount_reconciled,
|
||||||
string='Amount reconciled', type='float'),
|
string='Amount reconciled', type='float'),
|
||||||
'voucher_id': fields.many2one('account.voucher', 'Payment'),
|
'voucher_id': fields.many2one('account.voucher', 'Reconciliation'),
|
||||||
}
|
}
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, context=None):
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
|
|
|
@ -200,33 +200,29 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//div[@name='import_buttons']" position="inside">
|
<xpath expr="//div[@name='import_buttons']" position="inside">
|
||||||
<button name="%(action_view_account_statement_from_invoice_lines)d"
|
<button name="%(action_view_account_statement_from_invoice_lines)d"
|
||||||
string="Import Invoices" type="action" icon="gtk-execute"
|
string="Import Invoices" type="action"
|
||||||
attrs="{'invisible':[('state','=','confirm')]}"/>
|
attrs="{'invisible':[('state','=','confirm')]}"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_bank_statement_tree_voucher" model="ir.ui.view">
|
<record id="view_bank_statement_form_voucher" model="ir.ui.view">
|
||||||
<field name="name">account.bank.statement.voucher.tree.inherit</field>
|
<field name="name">account.bank.statement.voucher.tree.inherit</field>
|
||||||
<field name="model">account.bank.statement</field>
|
<field name="model">account.bank.statement</field>
|
||||||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='amount']" position="after">
|
<xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='amount']" position="after">
|
||||||
<field name="voucher_id" context="{'line_type': type, 'default_type': amount < 0 and 'payment' or 'receipt', 'type': amount < 0 and 'payment' or 'receipt', 'default_partner_id': partner_id, 'default_journal_id': parent.journal_id, 'default_amount': abs(amount), 'default_reference': ref, 'default_date': date, 'default_name': name}"/>
|
<field name="voucher_id" widget="many2onebutton" options="{'label':{'create':'Reconcile','edit':'Edit Reconciliation'}}" context="{'line_type': type, 'default_type': amount < 0 and 'payment' or 'receipt', 'type': amount < 0 and 'payment' or 'receipt', 'default_partner_id': partner_id, 'default_journal_id': parent.journal_id, 'default_amount': abs(amount), 'default_reference': ref, 'default_date': date, 'default_name': name, 'default_active': False}"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/form/group/field[@name='sequence']" position="before">
|
||||||
|
<field name="voucher_id" widget="many2onebutton" options="{'label':{'create':'Reconcile','edit':'Edit Reconciliation'}}" context="{'line_type': type, 'default_type': amount < 0 and 'payment' or 'receipt', 'type': amount < 0 and 'payment' or 'receipt', 'default_partner_id': partner_id, 'default_journal_id': parent.journal_id, 'default_amount': abs(amount), 'default_reference': ref, 'default_date': date, 'default_name': name, 'default_active': False}"/>
|
||||||
|
</xpath>
|
||||||
|
<field name="amount" position="attributes">
|
||||||
|
<attribute name="on_change">onchange_amount(amount)</attribute>
|
||||||
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="view_bank_statement_form_voucher" model="ir.ui.view">
|
|
||||||
<field name="name">account.bank.statement.voucher.form.inherit</field>
|
|
||||||
<field name="model">account.bank.statement</field>
|
|
||||||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/form/group/field[@name='sequence']" position="before">
|
|
||||||
<field name="voucher_id" context="{'line_type': type, 'default_type': amount < 0 and 'payment' or 'receipt', 'type': amount < 0 and 'payment' or 'receipt', 'default_partner_id': partner_id, 'default_journal_id': parent.journal_id, 'default_amount': abs(amount), 'default_reference': ref, 'default_date': date, 'default_name': name}"/>
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
<record id="view_cash_statement_tree_voucher" model="ir.ui.view">
|
<record id="view_cash_statement_tree_voucher" model="ir.ui.view">
|
||||||
<field name="name">account.cash.statement.voucher.tree.inherit</field>
|
<field name="name">account.cash.statement.voucher.tree.inherit</field>
|
||||||
<field name="model">account.bank.statement</field>
|
<field name="model">account.bank.statement</field>
|
||||||
|
|
|
@ -54,6 +54,8 @@
|
||||||
<form string="Bill Payment" version="7.0">
|
<form string="Bill Payment" version="7.0">
|
||||||
<group col="6">
|
<group col="6">
|
||||||
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}"/>
|
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}"/>
|
||||||
|
<field name="state" invisible="1"/>
|
||||||
|
<field name="company_id" invisible="1"/>
|
||||||
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
||||||
<field name="journal_id"
|
<field name="journal_id"
|
||||||
domain="[('type','in',['bank', 'cash'])]"
|
domain="[('type','in',['bank', 'cash'])]"
|
||||||
|
@ -390,35 +392,33 @@
|
||||||
<field name="model">account.voucher</field>
|
<field name="model">account.voucher</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Receipt" version="7.0">
|
<form string="Receipt" version="7.0">
|
||||||
<header>
|
<header invisible="context.get('line_type', False)">
|
||||||
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/>
|
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
|
||||||
<button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
|
<button name="cancel_voucher" string="Cancel" states="draft,proforma"/>
|
||||||
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
|
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" confirm="Are you sure to unreconcile and cancel this record ?"/>
|
||||||
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
|
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
|
||||||
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
|
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
|
||||||
</header>
|
</header>
|
||||||
<sheet>
|
<sheet>
|
||||||
<h1 attrs="{'invisible': [('number','=',False)]}"><field name="number"/></h1>
|
<h1 attrs="{'invisible': [('number','=',False)]}"><field name="number"/></h1>
|
||||||
<group>
|
<group invisible="context.get('line_type', False)">
|
||||||
<group>
|
<group>
|
||||||
<field name="partner_id" domain="[('customer','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
|
<field name="partner_id" domain="[('customer','=',True)]" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
|
||||||
<field name="currency_id" invisible="1"/>
|
<field name="currency_id" invisible="1"/>
|
||||||
<field name="amount" class="oe_inline"
|
<field name="amount" class="oe_inline"
|
||||||
string="Paid Amount"
|
string="Paid Amount"
|
||||||
widget="monetary" options="{'currency_field': 'currency_id'}"
|
widget="monetary" options="{'currency_field': 'currency_id'}"
|
||||||
invisible="context.get('line_type', False)"
|
|
||||||
on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
||||||
<field name="journal_id"
|
<field name="journal_id"
|
||||||
domain="[('type','in',['bank', 'cash'])]"
|
domain="[('type','in',['bank', 'cash'])]"
|
||||||
invisible="context.get('line_type', False)"
|
|
||||||
widget="selection"
|
widget="selection"
|
||||||
on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
|
on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
|
||||||
string="Payment Method"/>
|
string="Payment Method"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
|
<field name="date" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
|
||||||
<field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="e.g. 003/10"/>
|
<field name="reference" string="Payment Ref" placeholder="e.g. 003/10"/>
|
||||||
<field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
|
<field name="name" colspan="2" placeholder="e.g. Invoice SAJ/0042"/>
|
||||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||||
|
|
||||||
<field name="account_id"
|
<field name="account_id"
|
||||||
|
@ -430,7 +430,7 @@
|
||||||
</group>
|
</group>
|
||||||
<notebook>
|
<notebook>
|
||||||
<page string="Payment Information" groups="base.group_user">
|
<page string="Payment Information" groups="base.group_user">
|
||||||
<label for="line_cr_ids"/>
|
<label for="line_cr_ids" invisible="context.get('line_type', False)"/>
|
||||||
<field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
<field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
|
||||||
<tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
|
<tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
|
||||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||||
|
@ -511,7 +511,7 @@
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
</sheet>
|
</sheet>
|
||||||
<div class="oe_chatter">
|
<div class="oe_chatter" invisible="context.get('line_type', False)">
|
||||||
<field name="message_follower_ids" widget="mail_followers"/>
|
<field name="message_follower_ids" widget="mail_followers"/>
|
||||||
<field name="message_ids" widget="mail_thread"/>
|
<field name="message_ids" widget="mail_thread"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<field name="res_model">account.voucher</field>
|
<field name="res_model">account.voucher</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)]</field>
|
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)]</field>
|
||||||
<field name="context">{'type':'receipt', 'partner_id': partner_id, 'default_reference':reference}</field>
|
<field name="context">{'default_type':'receipt', 'type':'receipt', 'partner_id': partner_id, 'default_reference':reference}</field>
|
||||||
<field name="view_id" ref="view_vendor_receipt_form"/>
|
<field name="view_id" ref="view_vendor_receipt_form"/>
|
||||||
<field name="target">current</field>
|
<field name="target">current</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -98,6 +98,10 @@ class account_analytic_account(osv.osv):
|
||||||
|
|
||||||
def name_get(self, cr, uid, ids, context=None):
|
def name_get(self, cr, uid, ids, context=None):
|
||||||
res = []
|
res = []
|
||||||
|
if not ids:
|
||||||
|
return res
|
||||||
|
if isinstance(ids, (int, long)):
|
||||||
|
ids = [ids]
|
||||||
for id in ids:
|
for id in ids:
|
||||||
elmt = self.browse(cr, uid, id, context=context)
|
elmt = self.browse(cr, uid, id, context=context)
|
||||||
res.append((id, self._get_one_full_name(elmt)))
|
res.append((id, self._get_one_full_name(elmt)))
|
||||||
|
|
|
@ -388,6 +388,8 @@ class audittrail_objects_proxy(object_proxy):
|
||||||
}
|
}
|
||||||
# loop on all the fields
|
# loop on all the fields
|
||||||
for field_name, field_definition in pool.get(model.model)._all_columns.items():
|
for field_name, field_definition in pool.get(model.model)._all_columns.items():
|
||||||
|
if field_name in ('__last_update', 'id'):
|
||||||
|
continue
|
||||||
#if the field_list param is given, skip all the fields not in that list
|
#if the field_list param is given, skip all the fields not in that list
|
||||||
if field_list and field_name not in field_list:
|
if field_list and field_name not in field_list:
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
<field name="res_id" readonly="1"/>
|
<field name="res_id" readonly="1"/>
|
||||||
<field name="object_id" readonly="1"/>
|
<field name="object_id" readonly="1"/>
|
||||||
</group>
|
</group>
|
||||||
<field name="line_ids" mode="tree,form"
|
<field name="line_ids" mode="tree"
|
||||||
widget="one2many_list" readonly="1">
|
widget="one2many_list" readonly="1">
|
||||||
<form string="Log Lines" version="7.0">
|
<form string="Log Lines" version="7.0">
|
||||||
<group col="4">
|
<group col="4">
|
||||||
|
|
|
@ -8,15 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||||
"PO-Revision-Date: 2012-05-10 17:24+0000\n"
|
"PO-Revision-Date: 2012-11-09 12:09+0000\n"
|
||||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||||
"<jesteve@zikzakmedia.com>\n"
|
|
||||||
"Language-Team: Spanish <es@li.org>\n"
|
"Language-Team: Spanish <es@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 05:32+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: help:base.action.rule,act_mail_to_user:0
|
#: help:base.action.rule,act_mail_to_user:0
|
||||||
|
@ -340,7 +339,7 @@ msgstr "Activo"
|
||||||
#: code:addons/base_action_rule/base_action_rule.py:329
|
#: code:addons/base_action_rule/base_action_rule.py:329
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No Email ID Found for your Company address!"
|
msgid "No Email ID Found for your Company address!"
|
||||||
msgstr ""
|
msgstr "¡No se ha encontrado Id del e-mail para la dirección de su compañía!"
|
||||||
|
|
||||||
#. module: base_action_rule
|
#. module: base_action_rule
|
||||||
#: field:base.action.rule,act_remind_user:0
|
#: field:base.action.rule,act_remind_user:0
|
||||||
|
|
|
@ -99,6 +99,8 @@ class res_partner_bank(osv.osv):
|
||||||
@param iban: IBAN as string
|
@param iban: IBAN as string
|
||||||
@return: True if IBAN is valid, False otherwise
|
@return: True if IBAN is valid, False otherwise
|
||||||
"""
|
"""
|
||||||
|
if not iban:
|
||||||
|
return False
|
||||||
iban = _format_iban(iban).lower()
|
iban = _format_iban(iban).lower()
|
||||||
if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])):
|
if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])):
|
||||||
return False
|
return False
|
||||||
|
@ -128,9 +130,9 @@ class res_partner_bank(osv.osv):
|
||||||
def _construct_constraint_msg(self, cr, uid, ids, context=None):
|
def _construct_constraint_msg(self, cr, uid, ids, context=None):
|
||||||
|
|
||||||
def default_iban_check(iban_cn):
|
def default_iban_check(iban_cn):
|
||||||
return iban_cn[0] in string.ascii_lowercase and iban_cn[1] in string.ascii_lowercase
|
return iban_cn and iban_cn[0] in string.ascii_lowercase and iban_cn[1] in string.ascii_lowercase
|
||||||
|
|
||||||
iban_country = self.browse(cr, uid, ids)[0].acc_number[:2].lower()
|
iban_country = self.browse(cr, uid, ids)[0].acc_number and self.browse(cr, uid, ids)[0].acc_number[:2].lower()
|
||||||
if default_iban_check(iban_country):
|
if default_iban_check(iban_country):
|
||||||
if iban_country in _ref_iban:
|
if iban_country in _ref_iban:
|
||||||
return _('The IBAN does not seem to be correct. You should have entered something like this %s'), \
|
return _('The IBAN does not seem to be correct. You should have entered something like this %s'), \
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Hungarian 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: 2011-01-11 11:14+0000\n"
|
||||||
|
"PO-Revision-Date: 2012-11-13 16:00+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Hungarian <hu@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Launchpad-Export-Date: 2012-11-14 04:40+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
|
#. module: base_tools
|
||||||
|
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
|
||||||
|
msgid "Common base for tools modules"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: base_tools
|
||||||
|
#: model:ir.module.module,description:base_tools.module_meta_information
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
|
@ -115,7 +115,6 @@ class crm_case_section(osv.osv):
|
||||||
'code': fields.char('Code', size=8),
|
'code': fields.char('Code', size=8),
|
||||||
'active': fields.boolean('Active', help="If the active field is set to "\
|
'active': fields.boolean('Active', help="If the active field is set to "\
|
||||||
"true, it will allow you to hide the sales team without removing it."),
|
"true, it will allow you to hide the sales team without removing it."),
|
||||||
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
|
|
||||||
'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the salesman with the team leader."),
|
'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the salesman with the team leader."),
|
||||||
'user_id': fields.many2one('res.users', 'Team Leader'),
|
'user_id': fields.many2one('res.users', 'Team Leader'),
|
||||||
'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
|
'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
|
||||||
|
@ -137,7 +136,6 @@ class crm_case_section(osv.osv):
|
||||||
|
|
||||||
_defaults = {
|
_defaults = {
|
||||||
'active': 1,
|
'active': 1,
|
||||||
'allow_unlink': 1,
|
|
||||||
'stage_ids': _get_stage_common,
|
'stage_ids': _get_stage_common,
|
||||||
'alias_domain': False, # always hide alias during creation
|
'alias_domain': False, # always hide alias during creation
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ class base_action_rule(osv.osv):
|
||||||
write['section_id'] = action.act_section_id.id
|
write['section_id'] = action.act_section_id.id
|
||||||
|
|
||||||
if hasattr(action, 'act_categ_id') and action.act_categ_id:
|
if hasattr(action, 'act_categ_id') and action.act_categ_id:
|
||||||
write['categ_ids'] = [4, action.act_categ_id.id]
|
write['categ_ids'] = [(4, action.act_categ_id.id)]
|
||||||
|
|
||||||
model_obj.write(cr, uid, [obj.id], write, context)
|
model_obj.write(cr, uid, [obj.id], write, context)
|
||||||
return res
|
return res
|
||||||
|
|
|
@ -779,14 +779,6 @@ class crm_lead(base_stage, format_address, osv.osv):
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def unlink(self, cr, uid, ids, context=None):
|
|
||||||
for lead in self.browse(cr, uid, ids, context):
|
|
||||||
if (not lead.section_id.allow_unlink) and (lead.state != 'draft'):
|
|
||||||
raise osv.except_osv(_('Error!'),
|
|
||||||
_("You cannot delete lead '%s' because it is not in 'Draft' state. " \
|
|
||||||
"You can still 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):
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
if vals.get('stage_id') and not vals.get('probability'):
|
if vals.get('stage_id') and not vals.get('probability'):
|
||||||
# change probability of lead(s) if required by stage
|
# change probability of lead(s) if required by stage
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
parent="base.menu_base_config" sequence="45" groups="base.group_sale_salesman"/>
|
parent="base.menu_base_config" sequence="45" groups="base.group_sale_salesman"/>
|
||||||
|
|
||||||
<menuitem id="base.next_id_64" name="Sales"
|
<menuitem id="base.next_id_64" name="Sales"
|
||||||
parent="base.menu_reporting" sequence="1" />
|
parent="base.menu_reporting" sequence="1"/>
|
||||||
|
|
||||||
<menuitem id="base.menu_sales_configuration_misc" name="Miscellaneous" parent="base.menu_base_config" sequence="75"/>
|
<menuitem id="base.menu_sales_configuration_misc" name="Miscellaneous" parent="base.menu_base_config" sequence="81"/>
|
||||||
|
|
||||||
|
|
||||||
<!-- crm.case.channel -->
|
<!-- crm.case.channel -->
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
<field name="parent_id"/>
|
<field name="parent_id"/>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
<group>
|
<group>
|
||||||
<field name="user_id"/>
|
<field name="user_id"/>
|
||||||
<field name="resource_calendar_id"/>
|
<field name="resource_calendar_id"/>
|
||||||
|
@ -102,7 +102,6 @@
|
||||||
<field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/>
|
<field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/>
|
||||||
</div>
|
</div>
|
||||||
<field name="change_responsible"/>
|
<field name="change_responsible"/>
|
||||||
<field name="allow_unlink"/>
|
|
||||||
</group>
|
</group>
|
||||||
<separator string="Team Members"/>
|
<separator string="Team Members"/>
|
||||||
<field name="member_ids" widget="many2many_kanban">
|
<field name="member_ids" widget="many2many_kanban">
|
||||||
|
@ -163,7 +162,7 @@
|
||||||
<field name="view_id" ref="crm_case_section_view_tree"/>
|
<field name="view_id" ref="crm_case_section_view_tree"/>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="oe_view_nocontent_create">
|
<p class="oe_view_nocontent_create">
|
||||||
Click to define a new sales team.
|
Click to define a new sales team.
|
||||||
</p><p>
|
</p><p>
|
||||||
Use sales team to organize your different salespersons or
|
Use sales team to organize your different salespersons or
|
||||||
departments into separate teams. Each team will work in
|
departments into separate teams. Each team will work in
|
||||||
|
@ -203,7 +202,7 @@
|
||||||
<form string="Stage" version="7.0">
|
<form string="Stage" version="7.0">
|
||||||
<group col="4">
|
<group col="4">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="state" />
|
<field name="state"/>
|
||||||
<field name="probability"/>
|
<field name="probability"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="on_change"/>
|
<field name="on_change"/>
|
||||||
|
@ -228,7 +227,7 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
||||||
<!-- Case Categories Form View -->
|
<!-- Case Categories Form View -->
|
||||||
|
|
||||||
<record id="crm_case_categ-view" model="ir.ui.view">
|
<record id="crm_case_categ-view" model="ir.ui.view">
|
||||||
<field name="name">crm.case.categ.form</field>
|
<field name="name">crm.case.categ.form</field>
|
||||||
|
@ -238,7 +237,7 @@
|
||||||
<group>
|
<group>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="section_id"/>
|
<field name="section_id"/>
|
||||||
<field name="object_id" invisible="1" />
|
<field name="object_id" invisible="1"/>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
|
@ -297,7 +296,7 @@
|
||||||
<menuitem action="crm_case_resource_type_act"
|
<menuitem action="crm_case_resource_type_act"
|
||||||
id="menu_crm_case_resource_type_act" sequence="4"
|
id="menu_crm_case_resource_type_act" sequence="4"
|
||||||
groups="base.group_no_one"
|
groups="base.group_no_one"
|
||||||
parent="base.menu_crm_config_lead" />
|
parent="base.menu_crm_config_lead"/>
|
||||||
|
|
||||||
<record id="crm_case_section_act_tree" model="ir.actions.act_window">
|
<record id="crm_case_section_act_tree" model="ir.actions.act_window">
|
||||||
<field name="name">Cases by Sales Team</field>
|
<field name="name">Cases by Sales Team</field>
|
||||||
|
@ -354,13 +353,13 @@
|
||||||
<button name="process_start"
|
<button name="process_start"
|
||||||
states="not running"
|
states="not running"
|
||||||
string="Compute Segmentation" type="object"
|
string="Compute Segmentation" type="object"
|
||||||
icon="gtk-execute" />
|
icon="gtk-execute"/>
|
||||||
<button name="process_stop" states="running"
|
<button name="process_stop" states="running"
|
||||||
string="Stop Process" type="object"
|
string="Stop Process" type="object"
|
||||||
icon="gtk-cancel" />
|
icon="gtk-cancel"/>
|
||||||
<button name="process_continue" states="running"
|
<button name="process_continue" states="running"
|
||||||
string="Continue Process" type="object"
|
string="Continue Process" type="object"
|
||||||
icon="gtk-go-forward" />
|
icon="gtk-go-forward"/>
|
||||||
<field name="state" widget="statusbar"/>
|
<field name="state" widget="statusbar"/>
|
||||||
</header>
|
</header>
|
||||||
<group col="4">
|
<group col="4">
|
||||||
|
@ -412,7 +411,7 @@
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p class="oe_view_nocontent_create">
|
<p class="oe_view_nocontent_create">
|
||||||
Click to define a new customer segmentation.
|
Click to define a new customer segmentation.
|
||||||
</p><p>
|
</p><p>
|
||||||
Create specific categories which you can assign to your
|
Create specific categories which you can assign to your
|
||||||
contacts to better manage your interactions with them. The
|
contacts to better manage your interactions with them. The
|
||||||
|
@ -425,7 +424,7 @@
|
||||||
<menuitem action="crm_segmentation_tree-act"
|
<menuitem action="crm_segmentation_tree-act"
|
||||||
id="menu_crm_segmentation-act"
|
id="menu_crm_segmentation-act"
|
||||||
groups="base.group_no_one" sequence="15"
|
groups="base.group_no_one" sequence="15"
|
||||||
parent="base.menu_base_config" />
|
parent="base.menu_base_config"/>
|
||||||
|
|
||||||
<!-- menu for the working time -->
|
<!-- menu for the working time -->
|
||||||
<menuitem action="resource.action_resource_calendar_form" id="menu_action_resource_calendar_form" parent="resource.menu_resource_config" sequence="1"/>
|
<menuitem action="resource.action_resource_calendar_form" id="menu_action_resource_calendar_form" parent="resource.menu_resource_config" sequence="1"/>
|
||||||
|
@ -466,11 +465,11 @@
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<menuitem action="action_crm_payment_mode"
|
<menuitem action="action_crm_payment_mode"
|
||||||
id="menu_crm_payment_mode_act"
|
id="menu_crm_payment_mode_act"
|
||||||
groups="base.group_no_one"
|
groups="base.group_no_one"
|
||||||
name="Payment Modes"
|
name="Payment Modes"
|
||||||
parent="base.menu_crm_config_lead" />
|
parent="base.menu_crm_config_lead"/>
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -7,14 +7,14 @@ msgstr ""
|
||||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||||
"PO-Revision-Date: 2012-02-10 17:48+0000\n"
|
"PO-Revision-Date: 2012-11-09 12:10+0000\n"
|
||||||
"Last-Translator: Carlos Ch. <Unknown>\n"
|
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 04:57+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead.report:0
|
#: view:crm.lead.report:0
|
||||||
|
@ -172,7 +172,7 @@ msgstr "Mes esperado de cierre"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead2opportunity.partner.mass:0
|
#: view:crm.lead2opportunity.partner.mass:0
|
||||||
msgid "Assigned Opportunities to"
|
msgid "Assigned Opportunities to"
|
||||||
msgstr ""
|
msgstr "Oportunidades asignadas a"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0
|
#: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0
|
||||||
|
@ -598,7 +598,7 @@ msgstr "Fecha de fin"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
|
#: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0
|
||||||
msgid "Schedule/Log a Call"
|
msgid "Schedule/Log a Call"
|
||||||
msgstr ""
|
msgstr "Planificar/Registrar una llamada"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: constraint:base.action.rule:0
|
#: constraint:base.action.rule:0
|
||||||
|
@ -792,7 +792,7 @@ msgstr "Siguiente"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.segmentation,som_interval:0
|
#: field:crm.segmentation,som_interval:0
|
||||||
msgid "Days per Period"
|
msgid "Days per Period"
|
||||||
msgstr ""
|
msgstr "Días por periodo"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.meeting,byday:0
|
#: field:crm.meeting,byday:0
|
||||||
|
@ -959,7 +959,7 @@ msgstr "Días para abrir"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.meeting:0
|
#: view:crm.meeting:0
|
||||||
msgid "Show Time as"
|
msgid "Show Time as"
|
||||||
msgstr ""
|
msgstr "Mostrar hora como"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.phonecall2partner:0
|
#: view:crm.phonecall2partner:0
|
||||||
|
@ -1342,7 +1342,7 @@ msgstr "Fecha escritura"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.meeting:0
|
#: view:crm.meeting:0
|
||||||
msgid "End of Recurrency"
|
msgid "End of Recurrency"
|
||||||
msgstr ""
|
msgstr "Fin de recurrencia"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.meeting:0
|
#: view:crm.meeting:0
|
||||||
|
@ -1392,6 +1392,12 @@ msgid ""
|
||||||
" \n"
|
" \n"
|
||||||
"If the call needs to be done then the state is set to 'Not Held'."
|
"If the call needs to be done then the state is set to 'Not Held'."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"El estado se establece a 'Para hacer' cuando se crea el caso.\n"
|
||||||
|
"Si es caso está en marcha, el estado se establece a 'Abierto.\n"
|
||||||
|
"Cuando la llamada se termina, el estado se establece en 'Realizada'. "
|
||||||
|
" \n"
|
||||||
|
"Si la llamada está pendiente de ser realizada, entonces el estado se "
|
||||||
|
"establece en 'Pendiente'."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: selection:crm.meeting,week_list:0
|
#: selection:crm.meeting,week_list:0
|
||||||
|
@ -1449,7 +1455,7 @@ msgstr "Oportunidades por categorías"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.section,name:crm.section_sales_marketing_department
|
#: model:crm.case.section,name:crm.section_sales_marketing_department
|
||||||
msgid "Sales Marketing Department"
|
msgid "Sales Marketing Department"
|
||||||
msgstr ""
|
msgstr "Departamento de ventas y marketing"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.phonecall.report:0
|
#: view:crm.phonecall.report:0
|
||||||
|
@ -1900,7 +1906,7 @@ msgstr "Responder a"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.case.section:0
|
#: view:crm.case.section:0
|
||||||
msgid "Select Stages for this Sales Team"
|
msgid "Select Stages for this Sales Team"
|
||||||
msgstr ""
|
msgstr "Seleccione etapas para este equipo de ventas"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:board.board:0
|
#: view:board.board:0
|
||||||
|
@ -2015,7 +2021,7 @@ msgstr "Ubicación"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass
|
#: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass
|
||||||
msgid "Mass Lead To Opportunity Partner"
|
msgid "Mass Lead To Opportunity Partner"
|
||||||
msgstr ""
|
msgstr "Transformación masiva de iniciativa a oportunidad"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -2777,7 +2783,7 @@ msgstr "e-mail del contacto"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead,referred:0
|
#: field:crm.lead,referred:0
|
||||||
msgid "Referred by"
|
msgid "Referred by"
|
||||||
msgstr ""
|
msgstr "Referido por"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note
|
#: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note
|
||||||
|
@ -3541,7 +3547,7 @@ msgstr "Nuevas oportunidades"
|
||||||
#: code:addons/crm/crm_action_rule.py:61
|
#: code:addons/crm/crm_action_rule.py:61
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No E-Mail Found for your Company address!"
|
msgid "No E-Mail Found for your Company address!"
|
||||||
msgstr ""
|
msgstr "No se encontró dirección de e-mail para el contacto de su compañía"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.lead.report,email:0
|
#: field:crm.lead.report,email:0
|
||||||
|
@ -3561,7 +3567,7 @@ msgstr "Oportunidades por usuario y equipo"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: view:crm.phonecall:0
|
#: view:crm.phonecall:0
|
||||||
msgid "Reset to Todo"
|
msgid "Reset to Todo"
|
||||||
msgstr ""
|
msgstr "Cambiar a 'Para hacer'"
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: field:crm.case.section,working_hours:0
|
#: field:crm.case.section,working_hours:0
|
||||||
|
@ -3643,6 +3649,10 @@ msgid ""
|
||||||
"partner. From the phone call form, you can trigger a request for another "
|
"partner. From the phone call form, you can trigger a request for another "
|
||||||
"call, a meeting or an opportunity."
|
"call, a meeting or an opportunity."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Esta herramienta permite registrar sus llamadas entrantes sobre la marcha. "
|
||||||
|
"Cada llamada que recibe aparecerá en el formulario de la empresa para trazar "
|
||||||
|
"cada contacto que tiene con una empresa. Desde el formulario de llamadas, "
|
||||||
|
"puede lanzar una petición para otra llamada, una reunión u oportunidad."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: selection:crm.lead.report,creation_month:0
|
#: selection:crm.lead.report,creation_month:0
|
||||||
|
@ -3673,6 +3683,10 @@ msgid ""
|
||||||
"channels that will be maintained at the creation of a document in the "
|
"channels that will be maintained at the creation of a document in the "
|
||||||
"system. Some examples of channels can be: Website, Phone Call, Reseller, etc."
|
"system. Some examples of channels can be: Website, Phone Call, Reseller, etc."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Controle el origen de sus iniciativas y oportunidades de venta mediante la "
|
||||||
|
"creación de canales específicos que se usarán en la creación de documentos "
|
||||||
|
"en el sistema. Algunos ejemplos de canales son: Sitio web, llamada "
|
||||||
|
"telefónica, distribuidores, ..."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: selection:crm.lead2opportunity.partner,name:0
|
#: selection:crm.lead2opportunity.partner,name:0
|
||||||
|
@ -3740,7 +3754,7 @@ msgstr "Año"
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: constraint:res.partner:0
|
#: constraint:res.partner:0
|
||||||
msgid "Error ! You cannot create recursive associated members."
|
msgid "Error ! You cannot create recursive associated members."
|
||||||
msgstr ""
|
msgstr "¡Error! No puede crear miembros asociados recursivamente."
|
||||||
|
|
||||||
#. module: crm
|
#. module: crm
|
||||||
#: model:crm.case.resource.type,name:crm.type_lead8
|
#: model:crm.case.resource.type,name:crm.type_lead8
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
<field name="res_model">crm.phonecall.report</field>
|
<field name="res_model">crm.phonecall.report</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,graph</field>
|
<field name="view_mode">tree,graph</field>
|
||||||
<field name="context">{"search_default_year":1,"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
<field name="context">{"search_default_year":1,"search_default_Salesperson":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||||
<field name="view_id" ref="view_report_crm_phonecall_tree"/>
|
<field name="view_id" ref="view_report_crm_phonecall_tree"/>
|
||||||
<field name="search_view_id" ref="view_report_crm_phonecall_filter"/>
|
<field name="search_view_id" ref="view_report_crm_phonecall_filter"/>
|
||||||
<field name="help">From this report, you can analyse the performance of your sales team, based on their phone calls. You can group or filter the information according to several criteria and drill down the information, by adding more groups in the report.</field>
|
<field name="help">From this report, you can analyse the performance of your sales team, based on their phone calls. You can group or filter the information according to several criteria and drill down the information, by adding more groups in the report.</field>
|
||||||
|
|
|
@ -105,7 +105,7 @@ class crm_claim(base_stage, osv.osv):
|
||||||
'email_from': fields.char('Email', size=128, help="Destination email for email gateway."),
|
'email_from': fields.char('Email', size=128, help="Destination email for email gateway."),
|
||||||
'partner_phone': fields.char('Phone', size=32),
|
'partner_phone': fields.char('Phone', size=32),
|
||||||
'stage_id': fields.many2one ('crm.claim.stage', 'Stage',
|
'stage_id': fields.many2one ('crm.claim.stage', 'Stage',
|
||||||
domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"),
|
domain="['&',('fold', '=', False),'|', ('section_ids', '=', section_id), ('case_default', '=', True)]"),
|
||||||
'cause': fields.text('Root Cause'),
|
'cause': fields.text('Root Cause'),
|
||||||
'state': fields.related('stage_id', 'state', type="selection", store=True,
|
'state': fields.related('stage_id', 'state', type="selection", store=True,
|
||||||
selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
|
selection=crm.AVAILABLE_STATES, string="Status", readonly=True,
|
||||||
|
|
|
@ -43,38 +43,32 @@
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<record model="crm.claim.stage" id="stage_claim1">
|
<record model="crm.claim.stage" id="stage_claim1">
|
||||||
<field name="name">Draft claim</field>
|
<field name="name">New</field>
|
||||||
<field name="state">draft</field>
|
<field name="state">draft</field>
|
||||||
<field name="sequence">26</field>
|
<field name="sequence">26</field>
|
||||||
<field name="case_default" eval="True"/>
|
<field name="case_default" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="crm.claim.stage" id="stage_claim5">
|
<record model="crm.claim.stage" id="stage_claim5">
|
||||||
<field name="name">Actions Defined</field>
|
<field name="name">In Progress</field>
|
||||||
<field name="state">open</field>
|
<field name="state">open</field>
|
||||||
<field name="sequence">27</field>
|
<field name="sequence">27</field>
|
||||||
<field name="case_default" eval="True"/>
|
<field name="case_default" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="crm.claim.stage" id="stage_claim2">
|
<record model="crm.claim.stage" id="stage_claim2">
|
||||||
<field name="name">Actions Done</field>
|
<field name="name">Settled</field>
|
||||||
<field name="state">done</field>
|
<field name="state">done</field>
|
||||||
<field name="sequence">28</field>
|
<field name="sequence">28</field>
|
||||||
<field name="case_default" eval="True"/>
|
<field name="case_default" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="crm.claim.stage" id="stage_claim3">
|
<record model="crm.claim.stage" id="stage_claim3">
|
||||||
<field name="name">Refused</field>
|
<field name="name">Rejected</field>
|
||||||
<field name="state">done</field>
|
<field name="state">cancel</field>
|
||||||
<field name="sequence">29</field>
|
<field name="sequence">29</field>
|
||||||
<field name="case_default" eval="True"/>
|
<field name="case_default" eval="True"/>
|
||||||
<field name="case_refused" eval="True"/>
|
<field name="case_refused" eval="True"/>
|
||||||
<field name="fold" eval="True"/>
|
<field name="fold" eval="True"/>
|
||||||
</record>
|
</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>
|
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<!-- Claim Stages -->
|
<!-- Claim Stages -->
|
||||||
<menuitem id="base.menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
|
<menuitem id="base.menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
|
||||||
<menuitem id="base.menu_project_config_project" name="Stages" parent="base.menu_definitions" sequence="1"/>
|
<menuitem id="base.menu_project_config_project" name="Stages" parent="base.menu_definitions" sequence="1"/>
|
||||||
<menuitem id="menu_claim_stage_view" name="Claim Stages" action="crm_claim_stage_act" parent="base.menu_project_config_project" sequence="20"/>
|
<menuitem id="menu_claim_stage_view" name="Stages" action="crm_claim_stage_act" parent="menu_config_claim" sequence="20"/>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -102,16 +102,11 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Claim" version="7.0">
|
<form string="Claim" version="7.0">
|
||||||
<header>
|
<header>
|
||||||
<button name="case_open" string="Open" type="object" class="oe_highlight"
|
<button name="case_close" string="Settle" type="object" class="oe_highlight"
|
||||||
states="draft,pending" groups="base.group_user"/>
|
states="draft,open,pending" groups="base.group_user"/>
|
||||||
<button name="case_close" string="Done" type="object" class="oe_highlight"
|
<button name="case_cancel" string="Reject" type="object" groups="base.group_user"
|
||||||
states="open,pending" groups="base.group_user"/>
|
|
||||||
<button name="case_reset" string="Reset to Draft" type="object" groups="base.group_user"
|
|
||||||
states="cancel,done"/>
|
|
||||||
<button name="case_cancel" string="Cancel" type="object" groups="base.group_user"
|
|
||||||
states="draft,open,pending"/>
|
states="draft,open,pending"/>
|
||||||
<field name="stage_id" widget="statusbar"
|
<field name="stage_id" widget="statusbar" clickable="True"/>
|
||||||
on_change="onchange_stage_id(stage_id)"/>
|
|
||||||
</header>
|
</header>
|
||||||
<sheet string="Claims">
|
<sheet string="Claims">
|
||||||
<group>
|
<group>
|
||||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||||
"PO-Revision-Date: 2011-01-16 17:13+0000\n"
|
"PO-Revision-Date: 2012-11-09 12:10+0000\n"
|
||||||
"Last-Translator: mgaja (GrupoIsep.com) <Unknown>\n"
|
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
||||||
"Language-Team: Spanish <es@li.org>\n"
|
"Language-Team: Spanish <es@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 05:33+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,send_to:0
|
#: field:crm.lead.forward.to.partner,send_to:0
|
||||||
|
@ -25,12 +25,12 @@ msgstr "Enviar a"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,subtype:0
|
#: field:crm.lead.forward.to.partner,subtype:0
|
||||||
msgid "Message type"
|
msgid "Message type"
|
||||||
msgstr ""
|
msgstr "Tipo de mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,auto_delete:0
|
#: help:crm.lead.forward.to.partner,auto_delete:0
|
||||||
msgid "Permanently delete emails after sending"
|
msgid "Permanently delete emails after sending"
|
||||||
msgstr ""
|
msgstr "Eliminar permanentemente los emails depués de su envío"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,delay_close:0
|
#: field:crm.lead.report.assign,delay_close:0
|
||||||
|
@ -40,7 +40,7 @@ msgstr "Retraso para cerrar"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,email_to:0
|
#: help:crm.lead.forward.to.partner,email_to:0
|
||||||
msgid "Message recipients"
|
msgid "Message recipients"
|
||||||
msgstr ""
|
msgstr "Destinatarios del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,planned_revenue:0
|
#: field:crm.lead.report.assign,planned_revenue:0
|
||||||
|
@ -61,7 +61,7 @@ msgstr "Agrupar por..."
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,template_id:0
|
#: field:crm.lead.forward.to.partner,template_id:0
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr ""
|
msgstr "Plantilla"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -76,12 +76,12 @@ msgstr "Geo localizar"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,body:0
|
#: help:crm.lead.forward.to.partner,body:0
|
||||||
msgid "Plain-text version of the message"
|
msgid "Plain-text version of the message"
|
||||||
msgstr ""
|
msgstr "Versión en texto plano del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
msgid "Body"
|
msgid "Body"
|
||||||
msgstr ""
|
msgstr "Cuerpo"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,month:0
|
#: selection:crm.lead.report.assign,month:0
|
||||||
|
@ -101,7 +101,7 @@ msgstr "Demora cierre"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
msgid "#Partner"
|
msgid "#Partner"
|
||||||
msgstr ""
|
msgstr "Nº empresa"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,history:0
|
#: selection:crm.lead.forward.to.partner,history:0
|
||||||
|
@ -137,7 +137,7 @@ msgstr "Más alta"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,body:0
|
#: field:crm.lead.forward.to.partner,body:0
|
||||||
msgid "Text contents"
|
msgid "Text contents"
|
||||||
msgstr ""
|
msgstr "Contenido del texto"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -148,7 +148,7 @@ msgstr "Día"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,message_id:0
|
#: help:crm.lead.forward.to.partner,message_id:0
|
||||||
msgid "Message unique identifier"
|
msgid "Message unique identifier"
|
||||||
msgstr ""
|
msgstr "Identificador único del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,history:0
|
#: selection:crm.lead.forward.to.partner,history:0
|
||||||
|
@ -167,6 +167,8 @@ msgid ""
|
||||||
"Add here all attachments of the current document you want to include in the "
|
"Add here all attachments of the current document you want to include in the "
|
||||||
"Email."
|
"Email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Añada aquí todos los datos adjuntos del documento que quiere incluir en el "
|
||||||
|
"correo."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,state:0
|
#: selection:crm.lead.report.assign,state:0
|
||||||
|
@ -195,17 +197,17 @@ msgstr ""
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,body_html:0
|
#: help:crm.lead.forward.to.partner,body_html:0
|
||||||
msgid "Rich-text/HTML version of the message"
|
msgid "Rich-text/HTML version of the message"
|
||||||
msgstr ""
|
msgstr "Versión en texto enriquecido / HTML del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,auto_delete:0
|
#: field:crm.lead.forward.to.partner,auto_delete:0
|
||||||
msgid "Auto Delete"
|
msgid "Auto Delete"
|
||||||
msgstr ""
|
msgstr "Auto eliminar"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,email_bcc:0
|
#: help:crm.lead.forward.to.partner,email_bcc:0
|
||||||
msgid "Blind carbon copy message recipients"
|
msgid "Blind carbon copy message recipients"
|
||||||
msgstr ""
|
msgstr "Destinatarios de la copia oculta"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,partner_id:0
|
#: field:crm.lead.forward.to.partner,partner_id:0
|
||||||
|
@ -254,7 +256,7 @@ msgstr "Sección"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
msgid "Send"
|
msgid "Send"
|
||||||
msgstr ""
|
msgstr "Enviar"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
@ -286,7 +288,7 @@ msgstr "Tipo"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr "Nombre"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,priority:0
|
#: selection:crm.lead.report.assign,priority:0
|
||||||
|
@ -299,11 +301,13 @@ msgid ""
|
||||||
"Type of message, usually 'html' or 'plain', used to select plaintext or rich "
|
"Type of message, usually 'html' or 'plain', used to select plaintext or rich "
|
||||||
"text contents accordingly"
|
"text contents accordingly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Tipo de mensaje, normalmente 'html' o 'plano', utilizado para seleccionar "
|
||||||
|
"contenidos en texto plano o en texto enriquecido"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
msgid "Assign Date"
|
msgid "Assign Date"
|
||||||
msgstr ""
|
msgstr "Fecha de asignación"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -318,7 +322,7 @@ msgstr "Fecha creación"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,res_id:0
|
#: field:crm.lead.forward.to.partner,res_id:0
|
||||||
msgid "Related Document ID"
|
msgid "Related Document ID"
|
||||||
msgstr ""
|
msgstr "ID del docuemtno relacionado"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -349,7 +353,7 @@ msgstr "Etapa"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,model:0
|
#: field:crm.lead.forward.to.partner,model:0
|
||||||
msgid "Related Document model"
|
msgid "Related Document model"
|
||||||
msgstr ""
|
msgstr "Modelo del documento relacionado"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:192
|
#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:192
|
||||||
|
@ -392,7 +396,7 @@ msgstr "Cerrar"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,use_template:0
|
#: field:crm.lead.forward.to.partner,use_template:0
|
||||||
msgid "Use Template"
|
msgid "Use Template"
|
||||||
msgstr ""
|
msgstr "Usar plantilla"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign
|
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign
|
||||||
|
@ -464,12 +468,12 @@ msgstr "nº oportunidades"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "Team"
|
msgid "Team"
|
||||||
msgstr ""
|
msgstr "Equipo"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
msgid "Referred Partner"
|
msgid "Referred Partner"
|
||||||
msgstr ""
|
msgstr "Empresa referida"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,state:0
|
#: selection:crm.lead.report.assign,state:0
|
||||||
|
@ -490,7 +494,7 @@ msgstr "Cerrado"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward
|
#: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward
|
||||||
msgid "Mass forward to partner"
|
msgid "Mass forward to partner"
|
||||||
msgstr ""
|
msgstr "Envío masivo a empresa"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
@ -570,7 +574,7 @@ msgstr "Longitud Geo"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,opp:0
|
#: field:crm.partner.report.assign,opp:0
|
||||||
msgid "# of Opportunity"
|
msgid "# of Opportunity"
|
||||||
msgstr ""
|
msgstr "Nº oportunidad"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -600,12 +604,12 @@ msgstr "Empresa a la que este caso ha sido reenviado/asignado."
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,date:0
|
#: field:crm.lead.forward.to.partner,date:0
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr "Fecha"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,body_html:0
|
#: field:crm.lead.forward.to.partner,body_html:0
|
||||||
msgid "Rich-text contents"
|
msgid "Rich-text contents"
|
||||||
msgstr ""
|
msgstr "Contenido en texto enriquecido"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -620,18 +624,18 @@ msgstr "res.empresa.nivel"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,message_id:0
|
#: field:crm.lead.forward.to.partner,message_id:0
|
||||||
msgid "Message-Id"
|
msgid "Message-Id"
|
||||||
msgstr ""
|
msgstr "Id del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
#: field:crm.lead.forward.to.partner,attachment_ids:0
|
#: field:crm.lead.forward.to.partner,attachment_ids:0
|
||||||
msgid "Attachments"
|
msgid "Attachments"
|
||||||
msgstr ""
|
msgstr "Adjuntos"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,email_cc:0
|
#: field:crm.lead.forward.to.partner,email_cc:0
|
||||||
msgid "Cc"
|
msgid "Cc"
|
||||||
msgstr ""
|
msgstr "Cc"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,month:0
|
#: selection:crm.lead.report.assign,month:0
|
||||||
|
@ -641,7 +645,7 @@ msgstr "Septiembre"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,references:0
|
#: field:crm.lead.forward.to.partner,references:0
|
||||||
msgid "References"
|
msgid "References"
|
||||||
msgstr ""
|
msgstr "Referencias"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -668,7 +672,7 @@ msgstr "Abierto"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,email_cc:0
|
#: help:crm.lead.forward.to.partner,email_cc:0
|
||||||
msgid "Carbon copy message recipients"
|
msgid "Carbon copy message recipients"
|
||||||
msgstr ""
|
msgstr "Destinatarios de la copia"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,headers:0
|
#: help:crm.lead.forward.to.partner,headers:0
|
||||||
|
@ -676,6 +680,8 @@ msgid ""
|
||||||
"Full message headers, e.g. SMTP session headers (usually available on "
|
"Full message headers, e.g. SMTP session headers (usually available on "
|
||||||
"inbound messages only)"
|
"inbound messages only)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Cabeceras completas del mensaje, por ejemplo las cabeceras de sesión SMTP "
|
||||||
|
"(normalmente disponibles sólo en mensajes entrantes)"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:res.partner,date_localization:0
|
#: field:res.partner,date_localization:0
|
||||||
|
@ -698,11 +704,13 @@ msgid ""
|
||||||
"Message sender, taken from user preferences. If empty, this is not a mail "
|
"Message sender, taken from user preferences. If empty, this is not a mail "
|
||||||
"but a message."
|
"but a message."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Remitente del mensaje, proveniente de las preferencias del usuario. Si está "
|
||||||
|
"vacío, esto no es correo electrónico, sino un mensaje."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,nbr:0
|
#: field:crm.partner.report.assign,nbr:0
|
||||||
msgid "# of Partner"
|
msgid "# of Partner"
|
||||||
msgstr ""
|
msgstr "Nº empresa"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
|
@ -713,7 +721,7 @@ msgstr "Reenviar a empresa"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.partner.report.assign,name:0
|
#: field:crm.partner.report.assign,name:0
|
||||||
msgid "Partner name"
|
msgid "Partner name"
|
||||||
msgstr ""
|
msgstr "Nombre de la empresa"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,month:0
|
#: selection:crm.lead.report.assign,month:0
|
||||||
|
@ -728,7 +736,7 @@ msgstr "Ingreso estimado"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,reply_to:0
|
#: field:crm.lead.forward.to.partner,reply_to:0
|
||||||
msgid "Reply-To"
|
msgid "Reply-To"
|
||||||
msgstr ""
|
msgstr "Responder a"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead,partner_assigned_id:0
|
#: field:crm.lead,partner_assigned_id:0
|
||||||
|
@ -748,7 +756,7 @@ msgstr "Oportunidad"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.forward.to.partner:0
|
#: view:crm.lead.forward.to.partner:0
|
||||||
msgid "Send Mail"
|
msgid "Send Mail"
|
||||||
msgstr ""
|
msgstr "Enviar correo"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.report.assign,partner_id:0
|
#: field:crm.lead.report.assign,partner_id:0
|
||||||
|
@ -776,7 +784,7 @@ msgstr "País"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,headers:0
|
#: field:crm.lead.forward.to.partner,headers:0
|
||||||
msgid "Message headers"
|
msgid "Message headers"
|
||||||
msgstr ""
|
msgstr "Cabeceras del mensaje"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:res.partner:0
|
#: view:res.partner:0
|
||||||
|
@ -786,7 +794,7 @@ msgstr "Convertir en oportunidad"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,email_bcc:0
|
#: field:crm.lead.forward.to.partner,email_bcc:0
|
||||||
msgid "Bcc"
|
msgid "Bcc"
|
||||||
msgstr ""
|
msgstr "Cco"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead:0
|
#: view:crm.lead:0
|
||||||
|
@ -802,7 +810,7 @@ msgstr "Abril"
|
||||||
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_partner_assign
|
#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_partner_assign
|
||||||
#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree
|
#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree
|
||||||
msgid "Partnership Analysis"
|
msgid "Partnership Analysis"
|
||||||
msgstr ""
|
msgstr "Análisis de la relación"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead
|
#: model:ir.model,name:crm_partner_assign.model_crm_lead
|
||||||
|
@ -817,7 +825,7 @@ msgstr "Pendiente"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.partner.report.assign:0
|
#: view:crm.partner.report.assign:0
|
||||||
msgid "Partner assigned Analysis"
|
msgid "Partner assigned Analysis"
|
||||||
msgstr ""
|
msgstr "Análisis de la empresa asignada"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign
|
#: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign
|
||||||
|
@ -828,11 +836,12 @@ msgstr "Informe de iniciativas CRM"
|
||||||
#: help:crm.lead.forward.to.partner,references:0
|
#: help:crm.lead.forward.to.partner,references:0
|
||||||
msgid "Message references, such as identifiers of previous messages"
|
msgid "Message references, such as identifiers of previous messages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Referencias del mensaje, tales como identificadores de mensajes anteriores"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: constraint:res.partner:0
|
#: constraint:res.partner:0
|
||||||
msgid "Error ! You cannot create recursive associated members."
|
msgid "Error ! You cannot create recursive associated members."
|
||||||
msgstr ""
|
msgstr "¡Error! No puede crear miembros asociados recursivamente."
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.forward.to.partner,history:0
|
#: selection:crm.lead.forward.to.partner,history:0
|
||||||
|
@ -847,12 +856,12 @@ msgstr "Secuencia"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
|
#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
|
||||||
msgid "CRM Partner Report"
|
msgid "CRM Partner Report"
|
||||||
msgstr ""
|
msgstr "Informe de la empresa CRM"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
|
||||||
msgid "Email composition wizard"
|
msgid "Email composition wizard"
|
||||||
msgstr ""
|
msgstr "Asistente de composición de e-mail"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: selection:crm.lead.report.assign,priority:0
|
#: selection:crm.lead.report.assign,priority:0
|
||||||
|
@ -873,7 +882,7 @@ msgstr "Fecha de creación"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: field:crm.lead.forward.to.partner,filter_id:0
|
#: field:crm.lead.forward.to.partner,filter_id:0
|
||||||
msgid "Filters"
|
msgid "Filters"
|
||||||
msgstr ""
|
msgstr "Filtros"
|
||||||
|
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: view:crm.lead.report.assign:0
|
#: view:crm.lead.report.assign:0
|
||||||
|
@ -884,7 +893,7 @@ msgstr "Año"
|
||||||
#. module: crm_partner_assign
|
#. module: crm_partner_assign
|
||||||
#: help:crm.lead.forward.to.partner,reply_to:0
|
#: help:crm.lead.forward.to.partner,reply_to:0
|
||||||
msgid "Preferred response address for the message"
|
msgid "Preferred response address for the message"
|
||||||
msgstr ""
|
msgstr "Dirección de correo de respuesta preferida para este mensaje"
|
||||||
|
|
||||||
#~ msgid "Reply-to of the Sales team defined on this case"
|
#~ msgid "Reply-to of the Sales team defined on this case"
|
||||||
#~ msgstr "\"Responder a\" del equipo de ventas definido en este caso"
|
#~ msgstr "\"Responder a\" del equipo de ventas definido en este caso"
|
||||||
|
@ -941,3 +950,6 @@ msgstr ""
|
||||||
#~ "partners o asesores,\n"
|
#~ "partners o asesores,\n"
|
||||||
#~ "basándose en geo-localización.\n"
|
#~ "basándose en geo-localización.\n"
|
||||||
#~ " "
|
#~ " "
|
||||||
|
|
||||||
|
#~ msgid "E-mail composition wizard"
|
||||||
|
#~ msgstr "Asistente de composición de e-mail"
|
||||||
|
|
|
@ -823,6 +823,7 @@ class node_res_dir(node_class):
|
||||||
uid = self.context.uid
|
uid = self.context.uid
|
||||||
ctx = self.context.context.copy()
|
ctx = self.context.context.copy()
|
||||||
ctx.update(self.dctx)
|
ctx.update(self.dctx)
|
||||||
|
ctx.update(self.context.extra_ctx)
|
||||||
where = []
|
where = []
|
||||||
if self.domain:
|
if self.domain:
|
||||||
app = safe_eval(self.domain, ctx)
|
app = safe_eval(self.domain, ctx)
|
||||||
|
|
|
@ -272,7 +272,7 @@ class abstracted_fs(object):
|
||||||
if path.startswith('/'):
|
if path.startswith('/'):
|
||||||
path = path[1:]
|
path = path[1:]
|
||||||
|
|
||||||
p_parts = path.split('/') # hard-code the unix sep here, by spec.
|
p_parts = path.split(os.sep)
|
||||||
|
|
||||||
assert '..' not in p_parts
|
assert '..' not in p_parts
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ class showdiff(osv.osv_memory):
|
||||||
|
|
||||||
elif len(ids) == 1:
|
elif len(ids) == 1:
|
||||||
old = history.browse(cr, uid, ids[0])
|
old = history.browse(cr, uid, ids[0])
|
||||||
nids = history.search(cr, uid, [('document_id', '=', old.document_id.id)])
|
nids = history.search(cr, uid, [('page_id', '=', old.page_id.id)])
|
||||||
nids.sort()
|
nids.sort()
|
||||||
diff = history.getDiff(cr, uid, ids[0], nids[-1])
|
diff = history.getDiff(cr, uid, ids[0], nids[-1])
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -51,9 +51,10 @@ class document_davdir(osv.osv):
|
||||||
# that might be not worth preparing.
|
# that might be not worth preparing.
|
||||||
nctx.extra_ctx['webdav_path'] = '/'+config.get_misc('webdav','vdir','webdav')
|
nctx.extra_ctx['webdav_path'] = '/'+config.get_misc('webdav','vdir','webdav')
|
||||||
usr_obj = self.pool.get('res.users')
|
usr_obj = self.pool.get('res.users')
|
||||||
res = usr_obj.read(cr, uid, uid, ['login'])
|
res = usr_obj.read(cr, uid, uid, ['login','lang'])
|
||||||
if res:
|
if res:
|
||||||
nctx.extra_ctx['username'] = res['login']
|
nctx.extra_ctx['username'] = res['login']
|
||||||
|
nctx.extra_ctx['lang'] = res['lang']
|
||||||
# TODO group
|
# TODO group
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,8 @@ class email_template(osv.osv):
|
||||||
"of the message"),
|
"of the message"),
|
||||||
'subject': fields.char('Subject', translate=True, help="Subject (placeholders may be used here)",),
|
'subject': fields.char('Subject', translate=True, help="Subject (placeholders may be used here)",),
|
||||||
'email_from': fields.char('From', help="Sender address (placeholders may be used here)"),
|
'email_from': fields.char('From', help="Sender address (placeholders may be used here)"),
|
||||||
'email_to': fields.char('To', help="Comma-separated recipient addresses (placeholders may be used here)"),
|
'email_to': fields.char('To (Emails)', help="Comma-separated recipient addresses (placeholders may be used here)"),
|
||||||
|
'email_recipients': fields.char('To (Partners)', help="Comma-separated ids of recipient partners (placeholders may be used here)"),
|
||||||
'email_cc': fields.char('Cc', help="Carbon copy recipients (placeholders may be used here)"),
|
'email_cc': fields.char('Cc', help="Carbon copy recipients (placeholders may be used here)"),
|
||||||
'reply_to': fields.char('Reply-To', help="Preferred response address (placeholders may be used here)"),
|
'reply_to': fields.char('Reply-To', help="Preferred response address (placeholders may be used here)"),
|
||||||
'mail_server_id': fields.many2one('ir.mail_server', 'Outgoing Mail Server', readonly=False,
|
'mail_server_id': fields.many2one('ir.mail_server', 'Outgoing Mail Server', readonly=False,
|
||||||
|
@ -284,7 +285,7 @@ class email_template(osv.osv):
|
||||||
template = self.get_email_template(cr, uid, template_id, res_id, context)
|
template = self.get_email_template(cr, uid, template_id, res_id, context)
|
||||||
values = {}
|
values = {}
|
||||||
for field in ['subject', 'body_html', 'email_from',
|
for field in ['subject', 'body_html', 'email_from',
|
||||||
'email_to', 'email_cc', 'reply_to']:
|
'email_to', 'email_recipients', 'email_cc', 'reply_to']:
|
||||||
values[field] = self.render_template(cr, uid, getattr(template, field),
|
values[field] = self.render_template(cr, uid, getattr(template, field),
|
||||||
template.model, res_id, context=context) \
|
template.model, res_id, context=context) \
|
||||||
or False
|
or False
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
<group>
|
<group>
|
||||||
<group string="Addressing">
|
<group string="Addressing">
|
||||||
<field name="email_from" required="1"/>
|
<field name="email_from" required="1"/>
|
||||||
<field name="email_to" required="1"/>
|
<field name="email_to"/>
|
||||||
|
<field name="email_recipients"/>
|
||||||
<field name="email_cc"/>
|
<field name="email_cc"/>
|
||||||
<field name="reply_to"/>
|
<field name="reply_to"/>
|
||||||
<field name="user_signature"/>
|
<field name="user_signature"/>
|
||||||
|
@ -77,6 +78,7 @@
|
||||||
<field name="subject"/>
|
<field name="subject"/>
|
||||||
<field name="email_from"/>
|
<field name="email_from"/>
|
||||||
<field name="email_to"/>
|
<field name="email_to"/>
|
||||||
|
<field name="email_recipients"/>
|
||||||
<field name="report_name"/>
|
<field name="report_name"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -63,11 +63,16 @@ class test_message_compose(test_mail.TestMailMockups):
|
||||||
# Create template on mail.group, with attachments
|
# Create template on mail.group, with attachments
|
||||||
group_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'mail.group')])[0]
|
group_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'mail.group')])[0]
|
||||||
email_template = self.registry('email.template')
|
email_template = self.registry('email.template')
|
||||||
email_template_id = email_template.create(cr, uid, {'model_id': group_model_id,
|
email_template_id = email_template.create(cr, uid, {
|
||||||
'name': 'Pigs Template', 'subject': '${object.name}',
|
'model_id': group_model_id,
|
||||||
'body_html': '${object.description}', 'user_signature': True,
|
'name': 'Pigs Template',
|
||||||
|
'subject': '${object.name}',
|
||||||
|
'body_html': '${object.description}',
|
||||||
|
'user_signature': True,
|
||||||
'attachment_ids': [(0, 0, _attachments[0]), (0, 0, _attachments[1])],
|
'attachment_ids': [(0, 0, _attachments[0]), (0, 0, _attachments[1])],
|
||||||
'email_to': 'b@b.b c@c.c', 'email_cc': 'd@d.d'})
|
'email_to': 'b@b.b c@c.c',
|
||||||
|
'email_cc': 'd@d.d'
|
||||||
|
})
|
||||||
|
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
# CASE1: comment and save as template
|
# CASE1: comment and save as template
|
||||||
|
@ -76,9 +81,9 @@ class test_message_compose(test_mail.TestMailMockups):
|
||||||
# 1. Comment on pigs
|
# 1. Comment on pigs
|
||||||
compose_id = mail_compose.create(cr, uid,
|
compose_id = mail_compose.create(cr, uid,
|
||||||
{'subject': 'Forget me subject', 'body': '<p>Dummy body</p>'},
|
{'subject': 'Forget me subject', 'body': '<p>Dummy body</p>'},
|
||||||
{'default_composition_mode': 'comment', 'default_model': 'mail.group',
|
{'default_composition_mode': 'comment',
|
||||||
|
'default_model': 'mail.group',
|
||||||
'default_res_id': self.group_pigs_id,
|
'default_res_id': self.group_pigs_id,
|
||||||
'default_template_id': email_template_id,
|
|
||||||
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
||||||
compose = mail_compose.browse(cr, uid, compose_id)
|
compose = mail_compose.browse(cr, uid, compose_id)
|
||||||
|
|
||||||
|
@ -97,8 +102,10 @@ class test_message_compose(test_mail.TestMailMockups):
|
||||||
# 1. Comment on pigs
|
# 1. Comment on pigs
|
||||||
compose_id = mail_compose.create(cr, uid,
|
compose_id = mail_compose.create(cr, uid,
|
||||||
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
||||||
{'default_composition_mode': 'comment', 'default_model': 'mail.group',
|
{'default_composition_mode': 'comment',
|
||||||
|
'default_model': 'mail.group',
|
||||||
'default_res_id': self.group_pigs_id,
|
'default_res_id': self.group_pigs_id,
|
||||||
|
'default_use_template': False,
|
||||||
'default_template_id': email_template_id,
|
'default_template_id': email_template_id,
|
||||||
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
||||||
compose = mail_compose.browse(cr, uid, compose_id)
|
compose = mail_compose.browse(cr, uid, compose_id)
|
||||||
|
@ -135,8 +142,10 @@ class test_message_compose(test_mail.TestMailMockups):
|
||||||
# 1. Mass_mail on pigs and bird, with a default_partner_ids set to check he is correctly added
|
# 1. Mass_mail on pigs and bird, with a default_partner_ids set to check he is correctly added
|
||||||
compose_id = mail_compose.create(cr, uid,
|
compose_id = mail_compose.create(cr, uid,
|
||||||
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
{'subject': 'Forget me subject', 'body': 'Dummy body'},
|
||||||
{'default_composition_mode': 'mass_mail', 'default_model': 'mail.group',
|
{'default_composition_mode': 'mass_mail',
|
||||||
|
'default_model': 'mail.group',
|
||||||
'default_res_id': self.group_pigs_id,
|
'default_res_id': self.group_pigs_id,
|
||||||
|
'default_use_template': False,
|
||||||
'default_template_id': email_template_id,
|
'default_template_id': email_template_id,
|
||||||
'default_partner_ids': [p_a_id],
|
'default_partner_ids': [p_a_id],
|
||||||
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
'active_ids': [self.group_pigs_id, self.group_bird_id]})
|
||||||
|
@ -170,3 +179,26 @@ class test_message_compose(test_mail.TestMailMockups):
|
||||||
partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])])
|
partner_ids = self.res_partner.search(cr, uid, [('email', 'in', ['b@b.b', 'c@c.c', 'd@d.d'])])
|
||||||
self.assertEqual(set(message_pigs_pids), set(partner_ids), 'mail.message on pigs incorrect number of notified_partner_ids')
|
self.assertEqual(set(message_pigs_pids), set(partner_ids), 'mail.message on pigs incorrect number of notified_partner_ids')
|
||||||
self.assertEqual(set(message_bird_pids), set(partner_ids), 'mail.message on bird notified_partner_ids incorrect')
|
self.assertEqual(set(message_bird_pids), set(partner_ids), 'mail.message on bird notified_partner_ids incorrect')
|
||||||
|
|
||||||
|
# ----------------------------------------
|
||||||
|
# CASE4: test newly introduced email_recipients field
|
||||||
|
# ----------------------------------------
|
||||||
|
|
||||||
|
# get already-created partners back
|
||||||
|
p_b_id = self.res_partner.search(cr, uid, [('email', '=', 'b@b.b')])[0]
|
||||||
|
p_c_id = self.res_partner.search(cr, uid, [('email', '=', 'c@c.c')])[0]
|
||||||
|
p_d_id = self.res_partner.search(cr, uid, [('email', '=', 'd@d.d')])[0]
|
||||||
|
# modify template: use email_recipients, use template and email address in email_to to test all features together
|
||||||
|
user_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'res.users')])[0]
|
||||||
|
email_template.write(cr, uid, [email_template_id], {
|
||||||
|
'model_id': user_model_id,
|
||||||
|
'body_html': '${object.login}',
|
||||||
|
'email_to': '${object.email} c@c',
|
||||||
|
'email_recipients': '%i,%i' % (p_b_id, p_c_id),
|
||||||
|
'email_cc': 'd@d',
|
||||||
|
})
|
||||||
|
# patner by email + partner by id (no double)
|
||||||
|
send_to = [p_a_id, p_b_id, p_c_id, p_d_id]
|
||||||
|
# Generate messsage with default email and partner on template
|
||||||
|
mail_value = mail_compose.generate_email_for_composer(cr, uid, email_template_id, uid)
|
||||||
|
self.assertEqual(set(mail_value['partner_ids']), set(send_to), 'mail.message partner_ids list created by template is incorrect')
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
<group>
|
<group>
|
||||||
<field name="email_from" readonly="1"/>
|
<field name="email_from" readonly="1"/>
|
||||||
<field name="email_to" readonly="1"/>
|
<field name="email_to" readonly="1"/>
|
||||||
|
<field name="email_recipients" readonly="1"/>
|
||||||
<field name="email_cc" readonly="1" attrs="{'invisible':[('email_cc','=',False)]}"/>
|
<field name="email_cc" readonly="1" attrs="{'invisible':[('email_cc','=',False)]}"/>
|
||||||
<field name="reply_to" readonly="1" attrs="{'invisible':[('reply_to','=',False)]}"/>
|
<field name="reply_to" readonly="1" attrs="{'invisible':[('reply_to','=',False)]}"/>
|
||||||
<field name="subject" readonly="1"/>
|
<field name="subject" readonly="1"/>
|
||||||
|
|
|
@ -52,8 +52,9 @@ class mail_compose_message(osv.TransientModel):
|
||||||
context = {}
|
context = {}
|
||||||
result = super(mail_compose_message, self).default_get(cr, uid, fields, context=context)
|
result = super(mail_compose_message, self).default_get(cr, uid, fields, context=context)
|
||||||
result['template_id'] = context.get('default_template_id', context.get('mail.compose.template_id', False))
|
result['template_id'] = context.get('default_template_id', context.get('mail.compose.template_id', False))
|
||||||
|
|
||||||
# pre-render the template if any
|
# pre-render the template if any
|
||||||
if result.get('use_template'):
|
if result.get('use_template') and result.get('template_id'):
|
||||||
onchange_res = self.onchange_use_template(cr, uid, [], result.get('use_template'), result.get('template_id'),
|
onchange_res = self.onchange_use_template(cr, uid, [], result.get('use_template'), result.get('template_id'),
|
||||||
result.get('composition_mode'), result.get('model'), result.get('res_id'), context=context)
|
result.get('composition_mode'), result.get('model'), result.get('res_id'), context=context)
|
||||||
result.update(onchange_res['value'])
|
result.update(onchange_res['value'])
|
||||||
|
@ -65,6 +66,10 @@ class mail_compose_message(osv.TransientModel):
|
||||||
'template_id': fields.selection(_get_templates, 'Template', size=-1),
|
'template_id': fields.selection(_get_templates, 'Template', size=-1),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_defaults = {
|
||||||
|
'use_template': True,
|
||||||
|
}
|
||||||
|
|
||||||
def onchange_template_id(self, cr, uid, ids, use_template, template_id, composition_mode, model, res_id, context=None):
|
def onchange_template_id(self, cr, uid, ids, use_template, template_id, composition_mode, model, res_id, context=None):
|
||||||
""" - use_template not set: return default_get
|
""" - use_template not set: return default_get
|
||||||
- use_template set in mass_mailing: we cannot render, so return the template values
|
- use_template set in mass_mailing: we cannot render, so return the template values
|
||||||
|
@ -148,15 +153,23 @@ class mail_compose_message(osv.TransientModel):
|
||||||
mail.compose.message, transform email_cc and email_to into partner_ids """
|
mail.compose.message, transform email_cc and email_to into partner_ids """
|
||||||
template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
|
template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
|
||||||
# filter template values
|
# filter template values
|
||||||
fields = ['body', 'body_html', 'subject', 'email_to', 'email_cc', 'attachments']
|
fields = ['body', 'body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachments']
|
||||||
values = dict((field, template_values[field]) for field in fields if template_values.get(field))
|
values = dict((field, template_values[field]) for field in fields if template_values.get(field))
|
||||||
values['body'] = values.pop('body_html', '')
|
values['body'] = values.pop('body_html', '')
|
||||||
# transform email_to, email_cc into partner_ids
|
# transform email_to, email_cc into partner_ids
|
||||||
values['partner_ids'] = []
|
values['partner_ids'] = []
|
||||||
|
|
||||||
mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', ''))
|
mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', ''))
|
||||||
for mail in mails:
|
for mail in mails:
|
||||||
partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context)
|
partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context)
|
||||||
values['partner_ids'].append(partner_id)
|
values['partner_ids'].append(partner_id)
|
||||||
|
email_recipients = values.pop('email_recipients', '')
|
||||||
|
if email_recipients:
|
||||||
|
for partner_id in email_recipients.split(','):
|
||||||
|
values['partner_ids'].append(int(partner_id))
|
||||||
|
|
||||||
|
values['partner_ids'] = list(set(values['partner_ids']))
|
||||||
|
|
||||||
return values
|
return values
|
||||||
|
|
||||||
def render_message(self, cr, uid, wizard, res_id, context=None):
|
def render_message(self, cr, uid, wizard, res_id, context=None):
|
||||||
|
|
|
@ -8,23 +8,23 @@
|
||||||
<field name="inherit_id" ref="mail.email_compose_message_wizard_form"/>
|
<field name="inherit_id" ref="mail.email_compose_message_wizard_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<data>
|
<data>
|
||||||
<xpath expr="//form/group" position="after">
|
<xpath expr="//field[@name='content_subtype']" position="after">
|
||||||
<group attrs="{'invisible':[('use_template','=',False)]}">
|
<field name="use_template" invisible="1"
|
||||||
<field name="use_template" invisible="1"
|
on_change="onchange_use_template(use_template, template_id, composition_mode, model, res_id, context)"/>
|
||||||
on_change="onchange_use_template(use_template, template_id, composition_mode, model, res_id, context)"/>
|
|
||||||
<field name="template_id"
|
|
||||||
on_change="onchange_template_id(use_template, template_id, composition_mode, model, res_id, context)"/>
|
|
||||||
</group>
|
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//form/footer/button" position="after">
|
<xpath expr="//footer" position="inside">
|
||||||
<button icon="/email_template/static/src/img/email_template.png"
|
<group class="oe_right" col="1">
|
||||||
type="object" name="toggle_template" string=""
|
<div>Use template
|
||||||
help="Use a message template"
|
<field name="template_id" attrs="{'invisible':[('use_template','=',False)]}"
|
||||||
attrs="{'invisible':[('content_subtype','!=','html')]}"/>
|
nolabel="1"
|
||||||
<button icon="/email_template/static/src/img/email_template_save.png"
|
on_change="onchange_template_id(use_template, template_id, composition_mode, model, res_id, context)"/>
|
||||||
type="object" name="save_as_template" string=""
|
</div>
|
||||||
help="Save as a new template"
|
or
|
||||||
attrs="{'invisible':[('content_subtype','!=','html')]}"/>
|
<button icon="/email_template/static/src/img/email_template_save.png"
|
||||||
|
type="object" name="save_as_template" string="Save as new template" class="oe_link"
|
||||||
|
help="Save as a new template"
|
||||||
|
attrs="{'invisible':[('content_subtype','!=','html')]}"/>
|
||||||
|
</group>
|
||||||
</xpath>
|
</xpath>
|
||||||
</data>
|
</data>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -14,11 +14,13 @@
|
||||||
border-bottom-left-radius:3px;
|
border-bottom-left-radius:3px;
|
||||||
border-bottom-right-radius:3px;
|
border-bottom-right-radius:3px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
border-collapse: separate;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #8A89BA;
|
color: #8A89BA;
|
||||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
|
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
}
|
}
|
||||||
.oe_event_month_year{
|
.oe_event_month_year{
|
||||||
border-bottom-left-radius:3px;
|
border-bottom-left-radius:3px;
|
||||||
|
|
|
@ -39,7 +39,7 @@ class sale_order_line(osv.osv):
|
||||||
_columns = {
|
_columns = {
|
||||||
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
|
'event_id': fields.many2one('event.event', 'Event', help="Choose an event and it will automatically create a registration for this event."),
|
||||||
#those 2 fields are used for dynamic domains and filled by onchange
|
#those 2 fields are used for dynamic domains and filled by onchange
|
||||||
'event_type_id': fields.related('event_type_id', type='many2one', relation="event.type", string="Event Type"),
|
'event_type_id': fields.related('product_id','event_type_id', type='many2one', relation="event.type", string="Event Type"),
|
||||||
'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'),
|
'event_ok': fields.related('product_id', 'event_ok', string='event_ok', type='boolean'),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,10 @@ class fleet_vehicle_cost(osv.Model):
|
||||||
def _year_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
|
def _year_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
|
||||||
res = {}
|
res = {}
|
||||||
for record in self.browse(cr, uid, ids, context=context):
|
for record in self.browse(cr, uid, ids, context=context):
|
||||||
res[record.id] = str(time.strptime(record.date, tools.DEFAULT_SERVER_DATE_FORMAT).tm_year)
|
if (record.date):
|
||||||
|
res[record.id] = str(time.strptime(record.date, tools.DEFAULT_SERVER_DATE_FORMAT).tm_year)
|
||||||
|
else:
|
||||||
|
res[record.id] = _('Unknown')
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _cost_name_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
|
def _cost_name_get_fnc(self, cr, uid, ids, name, unknow_none, context=None):
|
||||||
|
@ -253,7 +256,6 @@ class fleet_vehicle(osv.Model):
|
||||||
|
|
||||||
def _search_get_overdue_contract_reminder(self, cr, uid, obj, name, args, context):
|
def _search_get_overdue_contract_reminder(self, cr, uid, obj, name, args, context):
|
||||||
res = []
|
res = []
|
||||||
today = fields.date.today(self, cr, uid, context=context)
|
|
||||||
for field, operator, value in args:
|
for field, operator, value in args:
|
||||||
assert operator in ('=', '!=', '<>') and value in (True, False), 'Operation not supported'
|
assert operator in ('=', '!=', '<>') and value in (True, False), 'Operation not supported'
|
||||||
if (operator == '=' and value == True) or (operator in ('<>', '!=') and value == False):
|
if (operator == '=' and value == True) or (operator in ('<>', '!=') and value == False):
|
||||||
|
@ -343,7 +345,7 @@ class fleet_vehicle(osv.Model):
|
||||||
'seats': fields.integer('Seats Number', help='Number of seats of the vehicle'),
|
'seats': fields.integer('Seats Number', help='Number of seats of the vehicle'),
|
||||||
'doors': fields.integer('Doors Number', help='Number of doors of the vehicle'),
|
'doors': fields.integer('Doors Number', help='Number of doors of the vehicle'),
|
||||||
'tag_ids' :fields.many2many('fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id','tag_id', 'Tags'),
|
'tag_ids' :fields.many2many('fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id','tag_id', 'Tags'),
|
||||||
'odometer': fields.function(_get_odometer, fnct_inv=_set_odometer, type='float', string='Odometer Value', help='Odometer measure of the vehicle at the moment of this log'),
|
'odometer': fields.function(_get_odometer, fnct_inv=_set_odometer, type='float', string='Last Odometer', help='Odometer measure of the vehicle at the moment of this log'),
|
||||||
'odometer_unit': fields.selection([('kilometers', 'Kilometers'),('miles','Miles')], 'Odometer Unit', help='Unit of the odometer ',required=True),
|
'odometer_unit': fields.selection([('kilometers', 'Kilometers'),('miles','Miles')], 'Odometer Unit', help='Unit of the odometer ',required=True),
|
||||||
'transmission': fields.selection([('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission', help='Transmission Used by the vehicle'),
|
'transmission': fields.selection([('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission', help='Transmission Used by the vehicle'),
|
||||||
'fuel_type': fields.selection([('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type', help='Fuel Used by the vehicle'),
|
'fuel_type': fields.selection([('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type', help='Fuel Used by the vehicle'),
|
||||||
|
@ -718,7 +720,7 @@ class fleet_vehicle_log_contract(osv.Model):
|
||||||
'start_date': datetime.datetime.strftime(str_to_datetime(element.expiration_date) + datetime.timedelta(days=1), tools.DEFAULT_SERVER_DATE_FORMAT),
|
'start_date': datetime.datetime.strftime(str_to_datetime(element.expiration_date) + datetime.timedelta(days=1), tools.DEFAULT_SERVER_DATE_FORMAT),
|
||||||
'expiration_date': datetime.datetime.strftime(enddate + diffdate, tools.DEFAULT_SERVER_DATE_FORMAT),
|
'expiration_date': datetime.datetime.strftime(enddate + diffdate, tools.DEFAULT_SERVER_DATE_FORMAT),
|
||||||
}
|
}
|
||||||
newid = super(fleet_vehicle_log_contract, self).copy(cr, uid, [element.id], default, context=context)
|
newid = super(fleet_vehicle_log_contract, self).copy(cr, uid, element.id, default, context=context)
|
||||||
mod, modid = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'fleet', 'fleet_vehicle_log_contract_form')
|
mod, modid = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'fleet', 'fleet_vehicle_log_contract_form')
|
||||||
return {
|
return {
|
||||||
'name':_("Renew Contract"),
|
'name':_("Renew Contract"),
|
||||||
|
@ -769,8 +771,8 @@ class fleet_vehicle_log_contract(osv.Model):
|
||||||
'start_date': fields.date('Contract Start Date', help='Date when the coverage of the contract begins'),
|
'start_date': fields.date('Contract Start Date', help='Date when the coverage of the contract begins'),
|
||||||
'expiration_date': fields.date('Contract Expiration Date', help='Date when the coverage of the contract expirates (by default, one year after begin date)'),
|
'expiration_date': fields.date('Contract Expiration Date', help='Date when the coverage of the contract expirates (by default, one year after begin date)'),
|
||||||
'days_left': fields.function(get_days_left, type='integer', string='Warning Date'),
|
'days_left': fields.function(get_days_left, type='integer', string='Warning Date'),
|
||||||
'insurer_id' :fields.many2one('res.partner', 'Supplier', domain="[('supplier','=',True)]"),
|
'insurer_id' :fields.many2one('res.partner', 'Supplier'),
|
||||||
'purchaser_id': fields.many2one('res.partner', 'Contractor', domain="['|', ('customer','=',True), ('employee','=',True)]",help='Person to which the contract is signed for'),
|
'purchaser_id': fields.many2one('res.partner', 'Contractor', help='Person to which the contract is signed for'),
|
||||||
'ins_ref': fields.char('Contract Reference', size=64),
|
'ins_ref': fields.char('Contract Reference', size=64),
|
||||||
'state': fields.selection([('open', 'In Progress'), ('toclose','To Close'), ('closed', 'Terminated')], 'Status', readonly=True, help='Choose wheter the contract is still valid or not'),
|
'state': fields.selection([('open', 'In Progress'), ('toclose','To Close'), ('closed', 'Terminated')], 'Status', readonly=True, help='Choose wheter the contract is still valid or not'),
|
||||||
'notes': fields.text('Terms and Conditions', help='Write here all supplementary informations relative to this contract'),
|
'notes': fields.text('Terms and Conditions', help='Write here all supplementary informations relative to this contract'),
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
<field name="view_id" ref="fleet_vehicle_kanban"></field>
|
<field name="view_id" ref="fleet_vehicle_kanban"></field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree</field>
|
<field name="view_mode">tree</field>
|
||||||
<field name="domain">['|',('contract_renewal_due_soon','>',0),('contract_renewal_overdue','>',0)]</field>
|
<field name="domain">['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
Here are displayed vehicles for which one or more contracts need to be renewed. If you see this message, then there is no contracts to renew.
|
Here are displayed vehicles for which one or more contracts need to be renewed. If you see this message, then there is no contracts to renew.
|
||||||
|
|
|
@ -256,7 +256,7 @@
|
||||||
<field name="location"/>
|
<field name="location"/>
|
||||||
<field name="state" />
|
<field name="state" />
|
||||||
<field name="state" />
|
<field name="state" />
|
||||||
<filter name="alert_true" domain="['|',('contract_renewal_due_soon','>',0),('contract_renewal_overdue','>',0)]" string="Has Alert(s)"/>
|
<filter name="alert_true" domain="['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]" string="Has Alert(s)"/>
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
@ -522,7 +522,7 @@
|
||||||
<field name="name">fleet.vehicle.odometer.tree</field>
|
<field name="name">fleet.vehicle.odometer.tree</field>
|
||||||
<field name="model">fleet.vehicle.odometer</field>
|
<field name="model">fleet.vehicle.odometer</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Odometer Logs" version="7.0" editable="bottom">
|
<tree string="Odometer Logs" version="7.0" editable="top">
|
||||||
<field name="date" />
|
<field name="date" />
|
||||||
<field name="vehicle_id" on_change="on_change_vehicle(vehicle_id)"/>
|
<field name="vehicle_id" on_change="on_change_vehicle(vehicle_id)"/>
|
||||||
<field name="value" />
|
<field name="value" />
|
||||||
|
@ -563,7 +563,7 @@
|
||||||
<field name="name">Vehicles Odometer</field>
|
<field name="name">Vehicles Odometer</field>
|
||||||
<field name="res_model">fleet.vehicle.odometer</field>
|
<field name="res_model">fleet.vehicle.odometer</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,form,graph</field>
|
<field name="view_mode">tree,graph</field>
|
||||||
<field name="context">{"search_default_groupby_vehicle" : True}</field>
|
<field name="context">{"search_default_groupby_vehicle" : True}</field>
|
||||||
<field name="help" type="html">
|
<field name="help" type="html">
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -158,6 +158,8 @@ class hr_employee(osv.osv):
|
||||||
return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context)
|
return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context)
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
|
#we need a related field in order to be able to sort the employee by name
|
||||||
|
'name_related': fields.related('resource_id', 'name', type='char', string='Name', readonly=True, store=True),
|
||||||
'country_id': fields.many2one('res.country', 'Nationality'),
|
'country_id': fields.many2one('res.country', 'Nationality'),
|
||||||
'birthday': fields.date("Date of Birth"),
|
'birthday': fields.date("Date of Birth"),
|
||||||
'ssnid': fields.char('SSN No', size=32, help='Social Security Number'),
|
'ssnid': fields.char('SSN No', size=32, help='Social Security Number'),
|
||||||
|
@ -207,6 +209,8 @@ class hr_employee(osv.osv):
|
||||||
'last_login': fields.related('user_id', 'date', type='datetime', string='Latest Connection', readonly=1),
|
'last_login': fields.related('user_id', 'date', type='datetime', string='Latest Connection', readonly=1),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_order='name_related'
|
||||||
|
|
||||||
def create(self, cr, uid, data, context=None):
|
def create(self, cr, uid, data, context=None):
|
||||||
employee_id = super(hr_employee, self).create(cr, uid, data, context=context)
|
employee_id = super(hr_employee, self).create(cr, uid, data, context=context)
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -288,7 +288,7 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="open_view_categ_form" model="ir.actions.act_window">
|
<record id="open_view_categ_form" model="ir.actions.act_window">
|
||||||
<field name="name">Categories of Employee</field>
|
<field name="name">Categories of Employees</field>
|
||||||
<field name="res_model">hr.employee.category</field>
|
<field name="res_model">hr.employee.category</field>
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
|
@ -342,8 +342,8 @@
|
||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="no_of_employee" groups="base.group_user"/>
|
<field name="no_of_employee" groups="base.group_user"/>
|
||||||
<field name="expected_employees" groups="base.group_user"/>
|
|
||||||
<field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
|
<field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
|
||||||
|
<field name="expected_employees" groups="base.group_user"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||||
|
|
|
@ -8,15 +8,14 @@ msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||||
"PO-Revision-Date: 2012-01-03 02:55+0000\n"
|
"PO-Revision-Date: 2012-11-10 17:20+0000\n"
|
||||||
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
|
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\n"
|
||||||
"<chris.ormaza@gmail.com>\n"
|
|
||||||
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
|
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2012-10-30 05:17+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-11 04:57+0000\n"
|
||||||
"X-Generator: Launchpad (build 16206)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: model:process.node,name:hr.process_node_openerpuser0
|
#: model:process.node,name:hr.process_node_openerpuser0
|
||||||
|
@ -199,6 +198,8 @@ msgstr "Mujer"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Expected number of employees for this job position after new recruitment."
|
"Expected number of employees for this job position after new recruitment."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Número de Empleados para este puesto de trabajo después de las nuevas "
|
||||||
|
"contrataciones"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
||||||
|
@ -291,7 +292,7 @@ msgstr "Categorías"
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: field:hr.job,expected_employees:0
|
#: field:hr.job,expected_employees:0
|
||||||
msgid "Total Employees"
|
msgid "Total Employees"
|
||||||
msgstr ""
|
msgstr "Total de Empleados"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: selection:hr.employee,marital:0
|
#: selection:hr.employee,marital:0
|
||||||
|
@ -435,7 +436,7 @@ msgstr "Estado"
|
||||||
#: model:ir.actions.act_window,name:hr.open_view_categ_tree
|
#: model:ir.actions.act_window,name:hr.open_view_categ_tree
|
||||||
#: model:ir.ui.menu,name:hr.menu_view_employee_category_tree
|
#: model:ir.ui.menu,name:hr.menu_view_employee_category_tree
|
||||||
msgid "Categories Structure"
|
msgid "Categories Structure"
|
||||||
msgstr ""
|
msgstr "Estructura de categorías"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: field:hr.employee,partner_id:0
|
#: field:hr.employee,partner_id:0
|
||||||
|
@ -465,7 +466,7 @@ msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados."
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: model:ir.actions.act_window,name:hr.action2
|
#: model:ir.actions.act_window,name:hr.action2
|
||||||
msgid "Subordinate Hierarchy"
|
msgid "Subordinate Hierarchy"
|
||||||
msgstr ""
|
msgstr "Jerarquía subirdinada"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: model:ir.actions.act_window,help:hr.view_department_form_installer
|
#: model:ir.actions.act_window,help:hr.view_department_form_installer
|
||||||
|
@ -715,12 +716,12 @@ msgstr "Subordinados"
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: field:hr.job,no_of_employee:0
|
#: field:hr.job,no_of_employee:0
|
||||||
msgid "Number of employees currently occupying this job position."
|
msgid "Number of employees currently occupying this job position."
|
||||||
msgstr ""
|
msgstr "Número de empleados ocupando actualmente este puesto de trabajo"
|
||||||
|
|
||||||
#. module: hr
|
#. module: hr
|
||||||
#: field:hr.job,no_of_recruitment:0
|
#: field:hr.job,no_of_recruitment:0
|
||||||
msgid "Number of new employees you expect to recruit."
|
msgid "Number of new employees you expect to recruit."
|
||||||
msgstr ""
|
msgstr "Número de empleados que espera contratar"
|
||||||
|
|
||||||
#~ msgid "Working Time Categories"
|
#~ msgid "Working Time Categories"
|
||||||
#~ msgstr "Categorías de Horarios de Trabajo"
|
#~ msgstr "Categorías de Horarios de Trabajo"
|
||||||
|
|
|
@ -18,10 +18,11 @@
|
||||||
-o-border-radius: 3px;
|
-o-border-radius: 3px;
|
||||||
-ms-border-radius: 3px;
|
-ms-border-radius: 3px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
border-collapse: separate;
|
||||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
box-shadow: 0 1px 4px 3px rgba(0, 0, 0, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_employee_picture {
|
.oe_employee_picture {
|
||||||
|
|
|
@ -31,6 +31,7 @@ from report.interface import toxml
|
||||||
from report import report_sxw
|
from report import report_sxw
|
||||||
from tools import ustr
|
from tools import ustr
|
||||||
from tools.translate import _
|
from tools.translate import _
|
||||||
|
from tools import to_xml
|
||||||
|
|
||||||
one_day = relativedelta(days=1)
|
one_day = relativedelta(days=1)
|
||||||
month2name = [0, 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
month2name = [0, 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
||||||
|
@ -111,7 +112,7 @@ class report_custom(report_rml):
|
||||||
<date>%s</date>
|
<date>%s</date>
|
||||||
<company>%s</company>
|
<company>%s</company>
|
||||||
</header>
|
</header>
|
||||||
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)
|
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name))
|
||||||
|
|
||||||
first_date = str(month)
|
first_date = str(month)
|
||||||
som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S')
|
som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S')
|
||||||
|
|
|
@ -64,22 +64,22 @@ class hr_expense_expense(osv.osv):
|
||||||
_description = "Expense"
|
_description = "Expense"
|
||||||
_order = "id desc"
|
_order = "id desc"
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Description', size=128),
|
'name': fields.char('Description', size=128, required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'id': fields.integer('Sheet ID', readonly=True),
|
'id': fields.integer('Sheet ID', readonly=True),
|
||||||
'date': fields.date('Date', select=True),
|
'date': fields.date('Date', select=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."),
|
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is done."),
|
||||||
'employee_id': fields.many2one('hr.employee', "Employee", required=True),
|
'employee_id': fields.many2one('hr.employee', "Employee", required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'user_id': fields.many2one('res.users', 'User', required=True),
|
'user_id': fields.many2one('res.users', 'User', required=True),
|
||||||
'date_confirm': fields.date('Confirmation Date', select=True, help="Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
|
'date_confirm': fields.date('Confirmation Date', select=True, help="Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
|
||||||
'date_valid': fields.date('Validation Date', select=True, help="Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
|
'date_valid': fields.date('Validation Date', select=True, help="Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
|
||||||
'user_valid': fields.many2one('res.users', 'Validation By'),
|
'user_valid': fields.many2one('res.users', 'Validation By', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
|
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
|
||||||
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
|
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
|
||||||
'note': fields.text('Note'),
|
'note': fields.text('Note'),
|
||||||
'amount': fields.function(_amount, string='Total Amount', digits_compute= dp.get_precision('Account')),
|
'amount': fields.function(_amount, string='Total Amount', digits_compute= dp.get_precision('Account')),
|
||||||
'voucher_id': fields.many2one('account.voucher', "Employee's Receipt"),
|
'voucher_id': fields.many2one('account.voucher', "Employee's Receipt"),
|
||||||
'currency_id': fields.many2one('res.currency', 'Currency', required=True),
|
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'department_id':fields.many2one('hr.department','Department'),
|
'department_id':fields.many2one('hr.department','Department', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}),
|
||||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||||
'state': fields.selection([
|
'state': fields.selection([
|
||||||
('draft', 'New'),
|
('draft', 'New'),
|
||||||
|
@ -100,6 +100,12 @@ class hr_expense_expense(osv.osv):
|
||||||
'currency_id': _get_currency,
|
'currency_id': _get_currency,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
|
for rec in self.browse(cr, uid, ids, context=context):
|
||||||
|
if rec.state != 'draft':
|
||||||
|
raise osv.except_osv(_('Warning!'),_('You can only delete draft expenses!'))
|
||||||
|
return super(hr_expense_expense, self).unlink(cr, uid, ids, context)
|
||||||
|
|
||||||
def onchange_currency_id(self, cr, uid, ids, currency_id=False, company_id=False, context=None):
|
def onchange_currency_id(self, cr, uid, ids, currency_id=False, company_id=False, context=None):
|
||||||
res = {'value': {'journal_id': False}}
|
res = {'value': {'journal_id': False}}
|
||||||
journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','purchase'), ('currency','=',currency_id), ('company_id', '=', company_id)], context=context)
|
journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','purchase'), ('currency','=',currency_id), ('company_id', '=', company_id)], context=context)
|
||||||
|
@ -236,16 +242,6 @@ class product_product(osv.osv):
|
||||||
'hr_expense_ok': fields.boolean('Can be Expensed', help="Specify if the product can be selected in an HR expense line."),
|
'hr_expense_ok': fields.boolean('Can be Expensed', help="Specify if the product can be selected in an HR expense line."),
|
||||||
}
|
}
|
||||||
|
|
||||||
def on_change_hr_expense_ok(self, cr, uid, id, hr_expense_ok):
|
|
||||||
|
|
||||||
if not hr_expense_ok:
|
|
||||||
return {}
|
|
||||||
data_obj = self.pool.get('ir.model.data')
|
|
||||||
cat_id = data_obj._get_id(cr, uid, 'hr_expense', 'cat_expense')
|
|
||||||
categ_id = data_obj.browse(cr, uid, cat_id).res_id
|
|
||||||
res = {'value' : {'type':'service','sale_ok' :False,'categ_id':categ_id }}
|
|
||||||
return res
|
|
||||||
|
|
||||||
product_product()
|
product_product()
|
||||||
|
|
||||||
class hr_expense_line(osv.osv):
|
class hr_expense_line(osv.osv):
|
||||||
|
|
|
@ -195,7 +195,7 @@
|
||||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<div name="options" position="inside">
|
<div name="options" position="inside">
|
||||||
<field name="hr_expense_ok" on_change="on_change_hr_expense_ok(hr_expense_ok)"/>
|
<field name="hr_expense_ok"/>
|
||||||
<label for="hr_expense_ok"/>
|
<label for="hr_expense_ok"/>
|
||||||
</div>
|
</div>
|
||||||
</field>
|
</field>
|
||||||
|
|
|
@ -90,6 +90,18 @@ class hr_holidays_status(osv.osv):
|
||||||
'color_name': 'red',
|
'color_name': 'red',
|
||||||
'active': True,
|
'active': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def name_get(self, cr, uid, ids, context=None):
|
||||||
|
if not ids:
|
||||||
|
return []
|
||||||
|
res = []
|
||||||
|
for record in self.browse(cr, uid, ids, context=context):
|
||||||
|
name = record.name
|
||||||
|
if not record.limit:
|
||||||
|
name = name + (' (%d/%d)' % (record.leaves_taken or 0.0, record.max_leaves or 0.0))
|
||||||
|
res.append((record.id, name))
|
||||||
|
return res
|
||||||
|
|
||||||
hr_holidays_status()
|
hr_holidays_status()
|
||||||
|
|
||||||
class hr_holidays(osv.osv):
|
class hr_holidays(osv.osv):
|
||||||
|
|
|
@ -31,6 +31,7 @@ import time
|
||||||
from report import report_sxw
|
from report import report_sxw
|
||||||
from tools import ustr
|
from tools import ustr
|
||||||
from tools.translate import _
|
from tools.translate import _
|
||||||
|
from tools import to_xml
|
||||||
|
|
||||||
def lengthmonth(year, month):
|
def lengthmonth(year, month):
|
||||||
if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))):
|
if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))):
|
||||||
|
@ -240,7 +241,7 @@ class report_custom(report_rml):
|
||||||
<date>%s</date>
|
<date>%s</date>
|
||||||
<company>%s</company>
|
<company>%s</company>
|
||||||
</header>
|
</header>
|
||||||
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)
|
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name))
|
||||||
|
|
||||||
# Computing the xml
|
# Computing the xml
|
||||||
xml='''<?xml version="1.0" encoding="UTF-8" ?>
|
xml='''<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
|
@ -326,6 +326,7 @@ class hr_payslip(osv.osv):
|
||||||
return self.write(cr, uid, ids, {'paid': True, 'state': 'done'}, context=context)
|
return self.write(cr, uid, ids, {'paid': True, 'state': 'done'}, context=context)
|
||||||
|
|
||||||
def hr_verify_sheet(self, cr, uid, ids, context=None):
|
def hr_verify_sheet(self, cr, uid, ids, context=None):
|
||||||
|
self.compute_sheet(cr, uid, ids, context)
|
||||||
return self.write(cr, uid, ids, {'state': 'verify'}, context=context)
|
return self.write(cr, uid, ids, {'state': 'verify'}, context=context)
|
||||||
|
|
||||||
def refund_sheet(self, cr, uid, ids, context=None):
|
def refund_sheet(self, cr, uid, ids, context=None):
|
||||||
|
@ -358,6 +359,12 @@ class hr_payslip(osv.osv):
|
||||||
def check_done(self, cr, uid, ids, context=None):
|
def check_done(self, cr, uid, ids, context=None):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
|
for payslip in self.browse(cr, uid, ids, context=context):
|
||||||
|
if payslip.state not in ['draft','cancel']:
|
||||||
|
raise osv.except_osv(_('Warning!'),_('You cannot delete a payslip which is not draft or cancelled!'))
|
||||||
|
return super(hr_payslip, self).unlink(cr, uid, ids, context)
|
||||||
|
|
||||||
#TODO move this function into hr_contract module, on hr.employee object
|
#TODO move this function into hr_contract module, on hr.employee object
|
||||||
def get_contract(self, cr, uid, employee, date_from, date_to, context=None):
|
def get_contract(self, cr, uid, employee, date_from, date_to, context=None):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<record id="hr_salary_rule_meal_voucher" model="hr.salary.rule">
|
<record id="hr_salary_rule_meal_voucher" model="hr.salary.rule">
|
||||||
<field name="amount_select">fix</field>
|
<field name="amount_select">fix</field>
|
||||||
<field eval="10" name="amount_fix"/>
|
<field eval="10" name="amount_fix"/>
|
||||||
<field name="quantity">worked_days.WORK100.number_of_days</field>
|
<field name="quantity">worked_days.WORK100 and worked_days.WORK100.number_of_days</field>
|
||||||
<field name="code">MA</field>
|
<field name="code">MA</field>
|
||||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||||
<field name="register_id" ref="hr_meal_voucher_register"/>
|
<field name="register_id" ref="hr_meal_voucher_register"/>
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
<field name="category_id" ref="hr_payroll.ALW"/>
|
<field name="category_id" ref="hr_payroll.ALW"/>
|
||||||
<field name="name">Get 1% of sales</field>
|
<field name="name">Get 1% of sales</field>
|
||||||
<field name="sequence" eval="17"/>
|
<field name="sequence" eval="17"/>
|
||||||
<field name="amount_python_compute">result = (inputs.SALEURO.amount + inputs.SALASIA.amount) * 0.01</field>
|
<field name="amount_python_compute">result = ((inputs.SALEURO and inputs.SALEURO.amount) + (inputs.SALASIA and inputs.SALASIA.amount)) * 0.01</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Rule Inputs -->
|
<!-- Rule Inputs -->
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Jobs - Recruitment Form" version="7.0">
|
<form string="Jobs - Recruitment Form" version="7.0">
|
||||||
<header>
|
<header>
|
||||||
<button name="case_close_with_emp" string="Hire" type="object"
|
<button name="case_close_with_emp" string="Hire & Create Employee" type="object"
|
||||||
states="draft,open,pending,done" class="oe_highlight"/>
|
states="draft,open,pending,done" class="oe_highlight"/>
|
||||||
<button name="case_cancel" string="Refuse" type="object"
|
<button name="case_cancel" string="Refuse" type="object"
|
||||||
states="draft,open,pending" class="oe_highlight"/>
|
states="draft,open,pending" class="oe_highlight"/>
|
||||||
|
@ -333,7 +333,7 @@
|
||||||
<field name="model">hr.job</field>
|
<field name="model">hr.job</field>
|
||||||
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="no_of_recruitment" version="7.0" position="after">
|
<field name="expected_employees" version="7.0" position="after">
|
||||||
<label for="survey_id" groups="base.group_user"/>
|
<label for="survey_id" groups="base.group_user"/>
|
||||||
<div groups="base.group_user">
|
<div groups="base.group_user">
|
||||||
<field name="survey_id" class="oe_inline" domain="[('type','=','Human Resources')]"/>
|
<field name="survey_id" class="oe_inline" domain="[('type','=','Human Resources')]"/>
|
||||||
|
|
|
@ -28,6 +28,7 @@ import time
|
||||||
import pooler
|
import pooler
|
||||||
from report import report_sxw
|
from report import report_sxw
|
||||||
from tools import ustr
|
from tools import ustr
|
||||||
|
from tools import to_xml
|
||||||
|
|
||||||
def lengthmonth(year, month):
|
def lengthmonth(year, month):
|
||||||
if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))):
|
if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))):
|
||||||
|
@ -94,7 +95,7 @@ class report_custom(report_rml):
|
||||||
<date>%s</date>
|
<date>%s</date>
|
||||||
<company>%s</company>
|
<company>%s</company>
|
||||||
</header>
|
</header>
|
||||||
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,user_id).company_id.name)
|
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,user_id).company_id.name))
|
||||||
|
|
||||||
account_xml = []
|
account_xml = []
|
||||||
for account, telems in accounts.iteritems():
|
for account, telems in accounts.iteritems():
|
||||||
|
|
|
@ -27,8 +27,9 @@ class analytical_timesheet_employee(osv.osv_memory):
|
||||||
_name = 'hr.analytical.timesheet.employee'
|
_name = 'hr.analytical.timesheet.employee'
|
||||||
_description = 'Print Employee Timesheet & Print My Timesheet'
|
_description = 'Print Employee Timesheet & Print My Timesheet'
|
||||||
_columns = {
|
_columns = {
|
||||||
'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)],
|
'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'),
|
||||||
'Month', required=True),
|
(5,'May'), (6,'June'), (7,'July'), (8,'August'), (9,'September'),
|
||||||
|
(10,'October'), (11,'November'), (12,'December')], 'Month', required=True),
|
||||||
'year': fields.integer('Year', required=True),
|
'year': fields.integer('Year', required=True),
|
||||||
'employee_id': fields.many2one('hr.employee', 'Employee', required=True)
|
'employee_id': fields.many2one('hr.employee', 'Employee', required=True)
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,9 @@ class analytical_timesheet_employees(osv.osv_memory):
|
||||||
_name = 'hr.analytical.timesheet.users'
|
_name = 'hr.analytical.timesheet.users'
|
||||||
_description = 'Print Employees Timesheet'
|
_description = 'Print Employees Timesheet'
|
||||||
_columns = {
|
_columns = {
|
||||||
'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)],
|
'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'),
|
||||||
'Month', required=True),
|
(5,'May'), (6,'June'), (7,'July'), (8,'August'), (9,'September'),
|
||||||
|
(10,'October'), (11,'November'), (12,'December')], 'Month', required=True),
|
||||||
'year': fields.integer('Year', required=True),
|
'year': fields.integer('Year', required=True),
|
||||||
'employee_ids': fields.many2many('hr.employee', 'timesheet_employee_rel', 'timesheet_id', 'employee_id', 'employees', required=True)
|
'employee_ids': fields.many2many('hr.employee', 'timesheet_employee_rel', 'timesheet_id', 'employee_id', 'employees', required=True)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
# Spanish (Paraguay) translation for openobject-addons
|
# Spanish (Argentina) translation for openobject-addons
|
||||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
# This file is distributed under the same license as the openobject-addons package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: openobject-addons\n"
|
"Project-Id-Version: openobject-addons\n"
|
||||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||||
"PO-Revision-Date: 2011-03-21 16:23+0000\n"
|
"PO-Revision-Date: 2012-11-13 15:04+0000\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Eduardo Alberto Calvo <Unknown>\n"
|
||||||
"Language-Team: Spanish (Paraguay) <es_PY@li.org>\n"
|
"Language-Team: Spanish (Argentina) <es_AR@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Launchpad-Export-Date: 2011-03-22 04:36+0000\n"
|
"X-Launchpad-Export-Date: 2012-11-14 04:40+0000\n"
|
||||||
"X-Generator: Launchpad (build 12559)\n"
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
#. module: l10n_ar
|
#. module: l10n_ar
|
||||||
#: model:ir.module.module,description:l10n_ar.module_meta_information
|
#: model:ir.module.module,description:l10n_ar.module_meta_information
|
||||||
|
@ -31,7 +31,7 @@ msgstr ""
|
||||||
#. module: l10n_ar
|
#. module: l10n_ar
|
||||||
#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information
|
#: model:ir.module.module,shortdesc:l10n_ar.module_meta_information
|
||||||
msgid "Argentinian Chart of Account"
|
msgid "Argentinian Chart of Account"
|
||||||
msgstr "Plan de cuentas de la Argentina"
|
msgstr "Plan de cuentas de Argentina"
|
||||||
|
|
||||||
#. module: l10n_ar
|
#. module: l10n_ar
|
||||||
#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal
|
#: model:ir.actions.todo,note:l10n_ar.config_call_account_template_in_minimal
|
||||||
|
@ -45,7 +45,7 @@ msgid ""
|
||||||
"Chart of Accounts from a Chart Template."
|
"Chart of Accounts from a Chart Template."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Generar el plan contable a partir de una plantilla de plan contable. Se le "
|
"Generar el plan contable a partir de una plantilla de plan contable. Se le "
|
||||||
"pedirá el nombre de la compañía, la plantilla de plan contable a utilizar, "
|
"pedirá el nombre de la compañia, la plantilla de plan contable a utilizar, "
|
||||||
"el número de dígitos para generar el código de las cuentas y de la cuenta "
|
"el número de dígitos para generar el código de las cuentas y de la cuenta "
|
||||||
"bancaria, la moneda para crear los diarios. Así pues, se genere una copia "
|
"bancaria, la moneda para crear los diarios. Así pues, se genere una copia "
|
||||||
"exacta de la plantilla de plan contable.\n"
|
"exacta de la plantilla de plan contable.\n"
|
||||||
|
|
|
@ -65,6 +65,8 @@ class partner_vat(osv.osv_memory):
|
||||||
|
|
||||||
partners = []
|
partners = []
|
||||||
partner_ids = obj_partner.search(cr, uid, [('vat_subjected', '!=', False), ('vat','ilike','BE%')], context=context)
|
partner_ids = obj_partner.search(cr, uid, [('vat_subjected', '!=', False), ('vat','ilike','BE%')], context=context)
|
||||||
|
if not partner_ids:
|
||||||
|
raise osv.except_osv(_('Error'),_('No belgian contact with a VAT number in your database.'))
|
||||||
cr.execute("""SELECT sub1.partner_id, sub1.name, sub1.vat, sub1.turnover, sub2.vat_amount
|
cr.execute("""SELECT sub1.partner_id, sub1.name, sub1.vat, sub1.turnover, sub2.vat_amount
|
||||||
FROM (SELECT l.partner_id, p.name, p.vat, SUM(CASE WHEN c.code ='49' THEN -l.tax_amount ELSE l.tax_amount END) as turnover
|
FROM (SELECT l.partner_id, p.name, p.vat, SUM(CASE WHEN c.code ='49' THEN -l.tax_amount ELSE l.tax_amount END) as turnover
|
||||||
FROM account_move_line l
|
FROM account_move_line l
|
||||||
|
@ -190,7 +192,7 @@ class partner_vat_list(osv.osv_memory):
|
||||||
addr = obj_partner.address_get(cr, uid, [obj_cmpny.partner_id.id], ['invoice'])
|
addr = obj_partner.address_get(cr, uid, [obj_cmpny.partner_id.id], ['invoice'])
|
||||||
if addr.get('invoice',False):
|
if addr.get('invoice',False):
|
||||||
ads = obj_partner.browse(cr, uid, [addr['invoice']], context=context)[0]
|
ads = obj_partner.browse(cr, uid, [addr['invoice']], context=context)[0]
|
||||||
phone = ads.phone.replace(' ','') or ''
|
phone = ads.phone and ads.phone.replace(' ','') or ''
|
||||||
email = ads.email or ''
|
email = ads.email or ''
|
||||||
name = ads.name or ''
|
name = ads.name or ''
|
||||||
city = ads.city or ''
|
city = ads.city or ''
|
||||||
|
@ -259,6 +261,8 @@ class partner_vat_list(osv.osv_memory):
|
||||||
|
|
||||||
# Turnover and Farmer tags are not included
|
# Turnover and Farmer tags are not included
|
||||||
client_datas = self._get_datas(cr, uid, ids, context=context)
|
client_datas = self._get_datas(cr, uid, ids, context=context)
|
||||||
|
if not client_datas:
|
||||||
|
raise osv.except_osv(_('Data Insufficient!'),_('No data available for the client.'))
|
||||||
data_client_info = ''
|
data_client_info = ''
|
||||||
for amount_data in client_datas:
|
for amount_data in client_datas:
|
||||||
data_client_info += """
|
data_client_info += """
|
||||||
|
@ -309,6 +313,8 @@ class partner_vat_list(osv.osv_memory):
|
||||||
datas['year'] = context['year']
|
datas['year'] = context['year']
|
||||||
datas['limit_amount'] = context['limit_amount']
|
datas['limit_amount'] = context['limit_amount']
|
||||||
datas['client_datas'] = self._get_datas(cr, uid, ids, context=context)
|
datas['client_datas'] = self._get_datas(cr, uid, ids, context=context)
|
||||||
|
if not datas['client_datas']:
|
||||||
|
raise osv.except_osv(_('Error!'),_('No record to print.'))
|
||||||
return {
|
return {
|
||||||
'type': 'ir.actions.report.xml',
|
'type': 'ir.actions.report.xml',
|
||||||
'report_name': 'partner.vat.listing.print',
|
'report_name': 'partner.vat.listing.print',
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
# Spanish 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-11-12 16:09+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish <es@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-11-13 05:17+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: help:hr.employee,disabled_spouse_bool:0
|
||||||
|
msgid "if recipient spouse is declared disabled by law"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: help:hr.employee,disabled_children_bool:0
|
||||||
|
msgid "if recipient children is/are declared disabled by law"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,misc_onss_deduction:0
|
||||||
|
msgid "Miscellaneous exempt ONSS "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_employee
|
||||||
|
msgid "Employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.employee,disabled_spouse_bool:0
|
||||||
|
msgid "Disabled Spouse"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,retained_net_amount:0
|
||||||
|
msgid "Net retained "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.employee,resident_bool:0
|
||||||
|
msgid "Nonresident"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: help:hr.employee,resident_bool:0
|
||||||
|
msgid "if recipient lives in a foreign country"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: view:hr.employee:0
|
||||||
|
msgid "if spouse has professionnel income or not"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: view:hr.contract:0
|
||||||
|
msgid "Miscellaneous"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,insurance_employee_deduction:0
|
||||||
|
msgid "Insurance Group - by worker "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: selection:hr.employee,spouse_fiscal_status:0
|
||||||
|
msgid "With Income"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: selection:hr.employee,spouse_fiscal_status:0
|
||||||
|
msgid "Without Income"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.employee,disabled_children_number:0
|
||||||
|
msgid "Number of disabled children"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,additional_net_amount:0
|
||||||
|
msgid "Net supplements"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: constraint:hr.employee:0
|
||||||
|
msgid "Error ! You cannot create recursive Hierarchy of Employees."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,car_company_amount:0
|
||||||
|
msgid "Company car employer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,misc_advantage_amount:0
|
||||||
|
msgid "Benefits of various nature "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,car_employee_deduction:0
|
||||||
|
msgid "Company Car Deduction for Worker"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.employee,disabled_children_bool:0
|
||||||
|
msgid "Disabled Children"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_contract
|
||||||
|
msgid "Contract"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,meal_voucher_amount:0
|
||||||
|
msgid "Check Value Meal "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,travel_reimbursement_amount:0
|
||||||
|
msgid "Reimbursement of travel expenses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: constraint:hr.contract:0
|
||||||
|
msgid "Error! contract start-date must be lower then contract end-date."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.employee,spouse_fiscal_status:0
|
||||||
|
msgid "Tax status for spouse"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: view:hr.contract:0
|
||||||
|
msgid "by Worker"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: view:hr.employee:0
|
||||||
|
msgid "number of dependent children declared as disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_hr_payroll
|
||||||
|
#: field:hr.contract,meal_voucher_employee_deduction:0
|
||||||
|
msgid "Check Value Meal - by worker "
|
||||||
|
msgstr ""
|
|
@ -0,0 +1,141 @@
|
||||||
|
# Spanish 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-11-12 16:43+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish <es@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-11-13 05:17+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: sql_constraint:account.invoice:0
|
||||||
|
msgid "Invoice Number must be unique per Company!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: model:ir.model,name:l10n_be_invoice_bba.model_account_invoice
|
||||||
|
msgid "Invoice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: constraint:res.partner:0
|
||||||
|
msgid "Error ! You cannot create recursive associated members."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: constraint:account.invoice:0
|
||||||
|
msgid "Invalid BBA Structured Communication !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||||
|
msgid "Random"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: help:res.partner,out_inv_comm_type:0
|
||||||
|
msgid "Select Default Communication Type for Outgoing Invoices."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: help:res.partner,out_inv_comm_algorithm:0
|
||||||
|
msgid ""
|
||||||
|
"Select Algorithm to generate the Structured Communication on Outgoing "
|
||||||
|
"Invoices."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:114
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:140
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"The daily maximum of outgoing invoices with an automatically generated BBA "
|
||||||
|
"Structured Communications has been exceeded!\n"
|
||||||
|
"Please create manually a unique BBA Structured Communication."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:155
|
||||||
|
#, python-format
|
||||||
|
msgid "Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:126
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"The Partner should have a 3-7 digit Reference Number for the generation of "
|
||||||
|
"BBA Structured Communications!\n"
|
||||||
|
"Please correct the Partner record."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:113
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:125
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:139
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:167
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:177
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:202
|
||||||
|
#, python-format
|
||||||
|
msgid "Warning!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||||
|
msgid "Customer Reference"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: field:res.partner,out_inv_comm_type:0
|
||||||
|
msgid "Communication Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:178
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:203
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"The BBA Structured Communication has already been used!\n"
|
||||||
|
"Please create manually a unique BBA Structured Communication."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||||
|
msgid "Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: model:ir.model,name:l10n_be_invoice_bba.model_res_partner
|
||||||
|
msgid "Partner"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:156
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Unsupported Structured Communication Type Algorithm '%s' !\n"
|
||||||
|
"Please contact your OpenERP support channel."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: field:res.partner,out_inv_comm_algorithm:0
|
||||||
|
msgid "Communication Algorithm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_be_invoice_bba
|
||||||
|
#: code:addons/l10n_be_invoice_bba/invoice.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Empty BBA Structured Communication!\n"
|
||||||
|
"Please fill in a unique BBA Structured Communication."
|
||||||
|
msgstr ""
|
|
@ -52,21 +52,6 @@ class ResPartnerBank(osv.osv):
|
||||||
'my_bank': fields.boolean('Use my account to print BVR ?', help="Check to print BVR invoices"),
|
'my_bank': fields.boolean('Use my account to print BVR ?', help="Check to print BVR invoices"),
|
||||||
}
|
}
|
||||||
|
|
||||||
def name_get(self, cursor, uid, ids, context=None):
|
|
||||||
if not len(ids):
|
|
||||||
return []
|
|
||||||
bank_type_obj = self.pool.get('res.partner.bank.type')
|
|
||||||
|
|
||||||
type_ids = bank_type_obj.search(cursor, uid, [])
|
|
||||||
bank_type_names = {}
|
|
||||||
for bank_type in bank_type_obj.browse(cursor, uid, type_ids,
|
|
||||||
context=context):
|
|
||||||
bank_type_names[bank_type.code] = bank_type.name
|
|
||||||
res = []
|
|
||||||
for r in self.read(cursor, uid, ids, ['name','state'], context):
|
|
||||||
res.append((r['id'], r['name']+' : '+bank_type_names.get(r['state'], '')))
|
|
||||||
return res
|
|
||||||
|
|
||||||
def _prepare_name(self, bank):
|
def _prepare_name(self, bank):
|
||||||
"Hook to get bank number of bank account"
|
"Hook to get bank number of bank account"
|
||||||
res = u''
|
res = u''
|
||||||
|
|
|
@ -131,8 +131,8 @@
|
||||||
<field name="tax_code_id" ref="tax_acq_196"/>
|
<field name="tax_code_id" ref="tax_acq_196"/>
|
||||||
<field name="tax_sign" eval="-1"/>
|
<field name="tax_sign" eval="-1"/>
|
||||||
|
|
||||||
<field name="account_collected_id" ref="pcg_44566"/>
|
<field name="account_collected_id" ref="pcg_445662"/>
|
||||||
<field name="account_paid_id" ref="pcg_44566"/>
|
<field name="account_paid_id" ref="pcg_445662"/>
|
||||||
|
|
||||||
<field name="ref_base_code_id" ref="tax_acq_196_ht"/>
|
<field name="ref_base_code_id" ref="tax_acq_196_ht"/>
|
||||||
<field name="ref_base_sign" eval="1"/>
|
<field name="ref_base_sign" eval="1"/>
|
||||||
|
|
|
@ -3903,7 +3903,7 @@
|
||||||
<field name="name">Associés - Comptes courants</field>
|
<field name="name">Associés - Comptes courants</field>
|
||||||
<field name="code">455</field>
|
<field name="code">455</field>
|
||||||
<field name="type">view</field>
|
<field name="type">view</field>
|
||||||
<field name="user_type" ref="account.data_account_type_view"/>
|
<field name="user_type" ref="account.data_account_type_payable"/>
|
||||||
<field name="note">Pour frais avancés personnellement</field>
|
<field name="note">Pour frais avancés personnellement</field>
|
||||||
<field name="parent_id" ref="pcg_45"/>
|
<field name="parent_id" ref="pcg_45"/>
|
||||||
<field name="reconcile" eval="True"/>
|
<field name="reconcile" eval="True"/>
|
||||||
|
@ -3912,8 +3912,8 @@
|
||||||
<record id="pcg_4551" model="account.account.template">
|
<record id="pcg_4551" model="account.account.template">
|
||||||
<field name="name">Principal</field>
|
<field name="name">Principal</field>
|
||||||
<field name="code">4551</field>
|
<field name="code">4551</field>
|
||||||
<field name="type">receivable</field>
|
<field name="type">payable</field>
|
||||||
<field name="user_type" ref="account.data_account_type_receivable"/>
|
<field name="user_type" ref="account.data_account_type_payable"/>
|
||||||
<field name="parent_id" ref="pcg_455"/>
|
<field name="parent_id" ref="pcg_455"/>
|
||||||
<field name="reconcile" eval="True"/>
|
<field name="reconcile" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -3921,8 +3921,8 @@
|
||||||
<record id="pcg_4558" model="account.account.template">
|
<record id="pcg_4558" model="account.account.template">
|
||||||
<field name="name">Intérêts courus</field>
|
<field name="name">Intérêts courus</field>
|
||||||
<field name="code">4558</field>
|
<field name="code">4558</field>
|
||||||
<field name="type">receivable</field>
|
<field name="type">payable</field>
|
||||||
<field name="user_type" ref="account.data_account_type_receivable"/>
|
<field name="user_type" ref="account.data_account_type_payable"/>
|
||||||
<field name="parent_id" ref="pcg_455"/>
|
<field name="parent_id" ref="pcg_455"/>
|
||||||
<field name="reconcile" eval="True"/>
|
<field name="reconcile" eval="True"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
|
@ -0,0 +1,942 @@
|
||||||
|
# Spanish 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-08-17 06:46+0000\n"
|
||||||
|
"PO-Revision-Date: 2012-11-12 17:08+0000\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: Spanish <es@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-11-13 05:17+0000\n"
|
||||||
|
"X-Generator: Launchpad (build 16251)\n"
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "E-mail Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:payment.advice.report,employee_bank_no:0
|
||||||
|
msgid "Employee Bank Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Payment Advices which are in draft state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Title"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Payment Advice from"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_yearly_salary_detail
|
||||||
|
msgid "Hr Salary Employee By Category Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Employees Salary Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Allowances with Basic:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Department"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Deductions:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "A/C no."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.contract,driver_salay:0
|
||||||
|
msgid "Driver Salary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_yearly_salary_detail
|
||||||
|
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.yearly_salary
|
||||||
|
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_yearly_salary_detail
|
||||||
|
msgid "Yearly Salary by Employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.act_hr_emp_payslip_list
|
||||||
|
msgid "Payslips"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "March"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: field:hr.payroll.advice,company_id:0
|
||||||
|
#: field:hr.payroll.advice.line,company_id:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,company_id:0
|
||||||
|
msgid "Company"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "The Manager"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Letter Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid ","
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Set to Draft"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.employee,number_of_year:0
|
||||||
|
msgid "Total years of work experience"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "to"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Total :"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payslip.run,available_advice:0
|
||||||
|
msgid "Made Payment Advice?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Advices which are paid using NEFT transfer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.contract,tds:0
|
||||||
|
msgid "Amount for Tax Deduction at Source"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip
|
||||||
|
msgid "Pay Slip"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,day:0
|
||||||
|
msgid "Day"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Month of Payment Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: constraint:hr.payslip:0
|
||||||
|
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,batch_id:0
|
||||||
|
msgid "Batch"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Other Information"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:hr.payroll.advice,state:0
|
||||||
|
#: selection:payment.advice.report,state:0
|
||||||
|
msgid "Cancelled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "For"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Details by Salary Rule Category:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.contract,voluntary_provident_fund:0
|
||||||
|
msgid "VPF computed as percentage(%)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,number:0
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Reference"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Group By..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.contract,medical_insurance:0
|
||||||
|
msgid "Medical Insurance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Identification No"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:hr.payroll.advice,state:0
|
||||||
|
#: selection:payment.advice.report,state:0
|
||||||
|
msgid "Confirmed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
#: report:salary.employee.bymonth:0
|
||||||
|
msgid "From"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,bysal:0
|
||||||
|
#: field:payment.advice.report,bysal:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "By Salary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Confirm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,chaque_nos:0
|
||||||
|
#: field:payment.advice.report,cheque_nos:0
|
||||||
|
msgid "Cheque Numbers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: constraint:res.company:0
|
||||||
|
msgid "Error! You can not create recursive companies."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_salary_employee_month
|
||||||
|
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.hr_salary_employee_bymonth
|
||||||
|
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_salary_employee_month
|
||||||
|
msgid "Yearly Salary by Head"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||||
|
#, python-format
|
||||||
|
msgid "You can not confirm Payment advice without advice lines."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,state:0
|
||||||
|
#: field:payment.advice.report,state:0
|
||||||
|
msgid "State"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Yours Sincerely"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.contract,medical_insurance:0
|
||||||
|
msgid "Deduction towards company provided medical insurance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice_line
|
||||||
|
msgid "Bank Advice Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Email"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.payslip.run,available_advice:0
|
||||||
|
msgid ""
|
||||||
|
"If this box is checked which means that Payment Advice exists for current "
|
||||||
|
"batch"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:184
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||||
|
#, python-format
|
||||||
|
msgid "Error !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
msgid "Print"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payslip_run
|
||||||
|
msgid "Payslip Batches"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,debit_credit:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "C/D"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.employee.bymonth:0
|
||||||
|
msgid "Yearly Salary Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payroll_advice
|
||||||
|
msgid "Print Advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,line_ids:0
|
||||||
|
msgid "Employee Salary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "July"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:res.company:0
|
||||||
|
msgid "Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_view_hr_bank_advice_tree
|
||||||
|
#: model:ir.ui.menu,name:l10n_in_hr_payroll.hr_menu_payment_advice
|
||||||
|
msgid "Payment Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,name:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||||
|
#: model:ir.ui.menu,name:l10n_in_hr_payroll.menu_reporting_payment_advice
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Advices Analysis"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
msgid ""
|
||||||
|
"This wizard will print report which displays employees break-up of Net Head "
|
||||||
|
"for a specified dates."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,ifsc:0
|
||||||
|
msgid "IFSC"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Date To"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.contract,tds:0
|
||||||
|
msgid "TDS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.employee,join_date:0
|
||||||
|
msgid "Join Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Confirm Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: constraint:hr.contract:0
|
||||||
|
msgid "Error! Contract start-date must be less than contract end-date."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:res.company,dearness_allowance:0
|
||||||
|
msgid "Dearness Allowance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "August"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.contract:0
|
||||||
|
msgid "Deduction"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Search Payment advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "SI. No."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Payment Advices which are in confirm state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "December"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Confirm Sheet"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,month:0
|
||||||
|
msgid "Month"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Employee Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:hr.contract,city_type:0
|
||||||
|
msgid "Non Metro"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_salary_employee_month
|
||||||
|
msgid "Hr Salary Employee By Month Report"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.salary.employee.month,category_id:0
|
||||||
|
msgid "Category"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:240
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Payment advice already exists for %s, 'Set to Draft' to create a new advice."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payslip.run:0
|
||||||
|
msgid "To Advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.employee,number_of_year:0
|
||||||
|
msgid "No. of Years of Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Salary Rule Category"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: selection:hr.payroll.advice,state:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: selection:payment.advice.report,state:0
|
||||||
|
msgid "Draft"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Date From"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.contract,voluntary_provident_fund:0
|
||||||
|
msgid "Voluntary Provident Fund"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Employee Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_payment_advice_report
|
||||||
|
msgid "Payment Advice Analysis"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.contract,city_type:0
|
||||||
|
msgid "Type of City"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:res.company,dearness_allowance:0
|
||||||
|
msgid "Check this box if your company provide Dearness Allowance to employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,ifsc_code:0
|
||||||
|
#: field:payment.advice.report,ifsc_code:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "IFSC Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "June"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,nbr:0
|
||||||
|
msgid "# Payment Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.report.xml,name:l10n_in_hr_payroll.payslip_details_report
|
||||||
|
msgid "PaySlip Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Payment Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,date:0
|
||||||
|
#: field:payment.advice.report,date:0
|
||||||
|
msgid "Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "November"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Extended Filters..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.actions.act_window,help:l10n_in_hr_payroll.action_payment_advice_report_all
|
||||||
|
msgid "This report performs analysis on Payment Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "October"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Designation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "January"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
msgid "Pay Head Employee Breakup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_res_company
|
||||||
|
msgid "Companies"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Authorized Signature"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_contract
|
||||||
|
msgid "Contract"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice.line:0
|
||||||
|
msgid "Advice Lines"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "To,"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.contract,driver_salay:0
|
||||||
|
msgid "Check this box if you provide allowance for driver"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: field:hr.payroll.advice.line,advice_id:0
|
||||||
|
#: field:hr.payslip,advice_id:0
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_payroll_advice
|
||||||
|
msgid "Bank Advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Other No."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Draft Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.payroll.advice,neft:0
|
||||||
|
msgid "Check this box if your company use online transfer for salary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "To"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:payment.advice.report,number:0
|
||||||
|
msgid "Number"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "September"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Day of Payment Advices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: constraint:hr.employee:0
|
||||||
|
msgid "Error! You cannot create recursive hierarchy of Employee(s)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
msgid ""
|
||||||
|
"This wizard will print report which display a pay head employee breakup for "
|
||||||
|
"a specified dates."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payslip.run:0
|
||||||
|
msgid "Payslip Batches ready to be Adviced"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Pay Slip Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Total Salary"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,employee_id:0
|
||||||
|
#: model:ir.model,name:l10n_in_hr_payroll.model_hr_employee
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,employee_id:0
|
||||||
|
msgid "Employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
msgid "Compute Advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.employee,join_date:0
|
||||||
|
msgid "Joining date of employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Dear Sir/Madam,"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,note:0
|
||||||
|
msgid "Description"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid ")"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:res.company:0
|
||||||
|
msgid "Payroll"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "NEFT"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: field:hr.payroll.advice,bank_id:0
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,bank_id:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Bank"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.salary.employee.month,end_date:0
|
||||||
|
#: field:yearly.salary.detail,date_to:0
|
||||||
|
msgid "End Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "February"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: sql_constraint:res.company:0
|
||||||
|
msgid "The company name must be unique !"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payroll.advice:0
|
||||||
|
#: field:hr.payroll.advice,name:0
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
#: field:payment.advice.report,name:0
|
||||||
|
#: report:salary.employee.bymonth:0
|
||||||
|
msgid "Name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:hr.contract,city_type:0
|
||||||
|
msgid "Metro"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
#: field:hr.salary.employee.month,employee_ids:0
|
||||||
|
#: view:yearly.salary.detail:0
|
||||||
|
#: field:yearly.salary.detail,employee_ids:0
|
||||||
|
msgid "Employees"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Bank Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "April"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Name of the Employe"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:158
|
||||||
|
#: code:addons/l10n_in_hr_payroll/l10n_in_hr_payroll.py:257
|
||||||
|
#, python-format
|
||||||
|
msgid "Please define bank account for the %s employee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.salary.employee.month,start_date:0
|
||||||
|
#: field:yearly.salary.detail,date_from:0
|
||||||
|
msgid "Start Date"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.contract:0
|
||||||
|
msgid "Allowance"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.payroll.advice,bank_id:0
|
||||||
|
msgid "Select the Bank from which the salary is going to be paid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.salary.employee.month:0
|
||||||
|
msgid "Employee Pay Head Breakup"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
msgid "Phone No."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
msgid "Credit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice.line,name:0
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "Bank Account No."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: help:hr.payroll.advice,date:0
|
||||||
|
msgid "Advice Date is used to search Payslips"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: selection:payment.advice.report,month:0
|
||||||
|
msgid "May"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:hr.payslip.run:0
|
||||||
|
msgid "Create Advice"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
#: field:payment.advice.report,year:0
|
||||||
|
msgid "Year"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: field:hr.payroll.advice,neft:0
|
||||||
|
#: field:payment.advice.report,neft:0
|
||||||
|
msgid "NEFT Transaction"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:paylip.details.in:0
|
||||||
|
#: report:salary.detail.byyear:0
|
||||||
|
#: report:salary.employee.bymonth:0
|
||||||
|
msgid "Total"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: report:payroll.advice:0
|
||||||
|
msgid "form period"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: l10n_in_hr_payroll
|
||||||
|
#: view:payment.advice.report:0
|
||||||
|
msgid "Year of Payment Advices"
|
||||||
|
msgstr ""
|
|
@ -60,6 +60,3 @@ IVC21det40,template_ivacode_pagata_21det40,IVA a credito 21% detraibile 40%,temp
|
||||||
IVC21Idet40,template_impcode_pagata_21det40,IVA a credito 21% detraibile 40% (imponibile),template_impcode_pagata
|
IVC21Idet40,template_impcode_pagata_21det40,IVA a credito 21% detraibile 40% (imponibile),template_impcode_pagata
|
||||||
IVC21det50,template_ivacode_pagata_21det50,IVA a credito 21% detraibile 50%,template_ivacode_pagata
|
IVC21det50,template_ivacode_pagata_21det50,IVA a credito 21% detraibile 50%,template_ivacode_pagata
|
||||||
IVC21Idet50,template_impcode_pagata_21det50,IVA a credito 21% detraibile 50% (imponibile),template_impcode_pagata
|
IVC21Idet50,template_impcode_pagata_21det50,IVA a credito 21% detraibile 50% (imponibile),template_impcode_pagata
|
||||||
Rit,template_ra,Ritenute d'acconto,vat_code_chart_root
|
|
||||||
RitD20,template_ritcode_20,Ritenute a debito 20%,template_ra
|
|
||||||
RitD20I,template_ritimpcode_20,Ritenute a debito 20% (imponibile),template_ra
|
|
||||||
|
|
|
|
@ -62,4 +62,3 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
|
||||||
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
|
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1
|
||||||
21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),1,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
|
21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),1,0.5,21I5,False,percent,,,purchase,,,,,,,False,,
|
||||||
21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),2,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
|
21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),2,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,,
|
||||||
rit-20,rit-20,l10n_it_chart_template_generic,Ritenuta d'acconto al 20% (debito),,-0.2,,False,percent,2602,2602,purchase,template_ritimpcode_20,template_ritcode_20,template_ritimpcode_20,template_ritcode_20,-1,1,False,1,-1
|
|
||||||
|
|
|
|
@ -1424,7 +1424,7 @@
|
||||||
<field name="reconcile" eval="True"/>
|
<field name="reconcile" eval="True"/>
|
||||||
<field ref="a_15" name="parent_id"/>
|
<field ref="a_15" name="parent_id"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="vat_payable6" model="account.account.template">
|
<record id="vat_payable_low" model="account.account.template">
|
||||||
<field name="name">Btw af te dragen laag</field>
|
<field name="name">Btw af te dragen laag</field>
|
||||||
<field name="code">1601</field>
|
<field name="code">1601</field>
|
||||||
<field name="type">other</field>
|
<field name="type">other</field>
|
||||||
|
@ -1432,7 +1432,7 @@
|
||||||
<field name="reconcile" eval="False"/>
|
<field name="reconcile" eval="False"/>
|
||||||
<field ref="a_15" name="parent_id"/>
|
<field ref="a_15" name="parent_id"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="vat_payable19" model="account.account.template">
|
<record id="vat_payable_high" model="account.account.template">
|
||||||
<field name="name">Btw af te dragen hoog</field>
|
<field name="name">Btw af te dragen hoog</field>
|
||||||
<field name="code">1602</field>
|
<field name="code">1602</field>
|
||||||
<field name="type">other</field>
|
<field name="type">other</field>
|
||||||
|
@ -1448,7 +1448,7 @@
|
||||||
<field name="reconcile" eval="False"/>
|
<field name="reconcile" eval="False"/>
|
||||||
<field ref="a_15" name="parent_id"/>
|
<field ref="a_15" name="parent_id"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="vat_refund6" model="account.account.template">
|
<record id="vat_refund_low" model="account.account.template">
|
||||||
<field name="name">Btw te vorderen laag</field>
|
<field name="name">Btw te vorderen laag</field>
|
||||||
<field name="code">1611</field>
|
<field name="code">1611</field>
|
||||||
<field name="type">other</field>
|
<field name="type">other</field>
|
||||||
|
@ -1456,7 +1456,7 @@
|
||||||
<field name="reconcile" eval="False"/>
|
<field name="reconcile" eval="False"/>
|
||||||
<field ref="a_15" name="parent_id"/>
|
<field ref="a_15" name="parent_id"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="vat_refund19" model="account.account.template">
|
<record id="vat_refund_high" model="account.account.template">
|
||||||
<field name="name">Btw te vorderen hoog</field>
|
<field name="name">Btw te vorderen hoog</field>
|
||||||
<field name="code">1612</field>
|
<field name="code">1612</field>
|
||||||
<field name="type">other</field>
|
<field name="type">other</field>
|
||||||
|
@ -3909,7 +3909,7 @@
|
||||||
<record id="btw_code_1a" model="account.tax.code.template">
|
<record id="btw_code_1a" model="account.tax.code.template">
|
||||||
<field name="code">1a</field>
|
<field name="code">1a</field>
|
||||||
<field name="parent_id" ref="btw_code_binnenland"/>
|
<field name="parent_id" ref="btw_code_binnenland"/>
|
||||||
<field name="name">Leveringen/diensten belast met 19% (BTW)</field>
|
<field name="name">Leveringen/diensten belast met 21% (BTW)</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_code_1b" model="account.tax.code.template">
|
<record id="btw_code_1b" model="account.tax.code.template">
|
||||||
<field name="code">1b</field>
|
<field name="code">1b</field>
|
||||||
|
@ -4021,7 +4021,7 @@
|
||||||
<record id="omz_code_1a" model="account.tax.code.template">
|
<record id="omz_code_1a" model="account.tax.code.template">
|
||||||
<field name="code">1a</field>
|
<field name="code">1a</field>
|
||||||
<field name="parent_id" ref="omz_code_binnenland"/>
|
<field name="parent_id" ref="omz_code_binnenland"/>
|
||||||
<field name="name">Leveringen/diensten belast met 19% (omzet)</field>
|
<field name="name">Leveringen/diensten belast met 21% (omzet)</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="omz_code_1b" model="account.tax.code.template">
|
<record id="omz_code_1b" model="account.tax.code.template">
|
||||||
<field name="code">1b</field>
|
<field name="code">1b</field>
|
||||||
|
@ -4149,22 +4149,22 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="description">6% BTW</field>
|
<field name="description">6% BTW</field>
|
||||||
<field eval="0.06" name="amount"/>
|
<field eval="0.06" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_payable6"/>
|
<field name="account_collected_id" ref="vat_payable_low"/>
|
||||||
<field name="account_paid_id" ref="vat_refund6"/>
|
<field name="account_paid_id" ref="vat_refund_low"/>
|
||||||
<field name="base_code_id" ref="omz_code_1b"/>
|
<field name="base_code_id" ref="omz_code_1b"/>
|
||||||
<field name="tax_code_id" ref="btw_code_1b"/>
|
<field name="tax_code_id" ref="btw_code_1b"/>
|
||||||
<field name="ref_base_code_id" ref="omz_code_1b"/>
|
<field name="ref_base_code_id" ref="omz_code_1b"/>
|
||||||
<field name="ref_tax_code_id" ref="btw_code_1b"/>
|
<field name="ref_tax_code_id" ref="btw_code_1b"/>
|
||||||
<field name="type_tax_use">sale</field>
|
<field name="type_tax_use">sale</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_19" model="account.tax.template">
|
<record id="btw_21" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Verkopen/omzet hoog</field>
|
<field name="name">Verkopen/omzet hoog</field>
|
||||||
<field name="description">19% BTW</field>
|
<field name="description">21% BTW</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field name="base_code_id" ref="omz_code_1a"/>
|
<field name="base_code_id" ref="omz_code_1a"/>
|
||||||
<field name="tax_code_id" ref="btw_code_1a"/>
|
<field name="tax_code_id" ref="btw_code_1a"/>
|
||||||
<field name="ref_base_code_id" ref="omz_code_1a"/>
|
<field name="ref_base_code_id" ref="omz_code_1a"/>
|
||||||
|
@ -4176,10 +4176,10 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Verkopen/omzet overig</field>
|
<field name="name">Verkopen/omzet overig</field>
|
||||||
<field name="description">variabel BTW</field>
|
<field name="description">variabel BTW</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field name="base_code_id" ref="omz_code_1a"/>
|
<field name="base_code_id" ref="omz_code_1a"/>
|
||||||
<field name="tax_code_id" ref="btw_code_1a"/>
|
<field name="tax_code_id" ref="btw_code_1a"/>
|
||||||
<field name="ref_base_code_id" ref="omz_code_1c"/>
|
<field name="ref_base_code_id" ref="omz_code_1c"/>
|
||||||
|
@ -4194,20 +4194,20 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="description">6% BTW</field>
|
<field name="description">6% BTW</field>
|
||||||
<field eval="0.06" name="amount"/>
|
<field eval="0.06" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_refund6"/>
|
<field name="account_collected_id" ref="vat_refund_low"/>
|
||||||
<field name="account_paid_id" ref="vat_payable6"/>
|
<field name="account_paid_id" ref="vat_payable_low"/>
|
||||||
<field name="tax_code_id" ref="btw_code_5b"/>
|
<field name="tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_19_buy" model="account.tax.template">
|
<record id="btw_21_buy" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">BTW te vorderen hoog (inkopen)</field>
|
<field name="name">BTW te vorderen hoog (inkopen)</field>
|
||||||
<field name="description">19% BTW</field>
|
<field name="description">21% BTW</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field name="tax_code_id" ref="btw_code_5b"/>
|
<field name="tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4216,10 +4216,10 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">BTW te vorderen overig (inkopen)</field>
|
<field name="name">BTW te vorderen overig (inkopen)</field>
|
||||||
<field name="description">variabel BTW</field>
|
<field name="description">variabel BTW</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field name="tax_code_id" ref="btw_code_5b"/>
|
<field name="tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
<field name="ref_tax_code_id" ref="btw_code_5b"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4240,8 +4240,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<record id="btw_ink_0" model="account.tax.template">
|
<record id="btw_ink_0" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">BTW af te dragen verlegd (inkopen)</field>
|
<field name="name">BTW af te dragen verlegd (inkopen)</field>
|
||||||
<field name="description">19% BTW verlegd</field>
|
<field name="description">21% BTW verlegd</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_payable_verlegd"/>
|
<field name="account_collected_id" ref="vat_payable_verlegd"/>
|
||||||
<field name="account_paid_id" ref="vat_refund_verlegd"/>
|
<field name="account_paid_id" ref="vat_refund_verlegd"/>
|
||||||
|
@ -4277,8 +4277,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<record id="btw_ink2_0" model="account.tax.template">
|
<record id="btw_ink2_0" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">BTW te vorderen verlegd (inkopen)</field>
|
<field name="name">BTW te vorderen verlegd (inkopen)</field>
|
||||||
<field name="description">19% BTW verlegd</field>
|
<field name="description">21% BTW verlegd</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="account_collected_id" ref="vat_refund_verlegd"/>
|
<field name="account_collected_id" ref="vat_refund_verlegd"/>
|
||||||
<field name="account_paid_id" ref="vat_payable_verlegd"/>
|
<field name="account_paid_id" ref="vat_payable_verlegd"/>
|
||||||
|
@ -4330,8 +4330,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_6"/>
|
<field name="parent_id" ref="btw_I_6"/>
|
||||||
<field name="account_collected_id" ref="vat_payable6"/>
|
<field name="account_collected_id" ref="vat_payable_low"/>
|
||||||
<field name="account_paid_id" ref="vat_payable6"/>
|
<field name="account_paid_id" ref="vat_payable_low"/>
|
||||||
<field eval="btw_code_4b" name="tax_code_id"/>
|
<field eval="btw_code_4b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4342,43 +4342,43 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_6"/>
|
<field name="parent_id" ref="btw_I_6"/>
|
||||||
<field name="account_collected_id" ref="vat_refund6"/>
|
<field name="account_collected_id" ref="vat_refund_low"/>
|
||||||
<field name="account_paid_id" ref="vat_refund6"/>
|
<field name="account_paid_id" ref="vat_refund_low"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_I_19" model="account.tax.template">
|
<record id="btw_I_21" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Inkopen import binnen EU hoog</field>
|
<field name="name">Inkopen import binnen EU hoog</field>
|
||||||
<field name="description">19% BTW import binnen EU</field>
|
<field name="description">21% BTW import binnen EU</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field eval="True" name="child_depend"/>
|
<field eval="True" name="child_depend"/>
|
||||||
<field eval="omz_code_4b" name="base_code_id"/>
|
<field eval="omz_code_4b" name="base_code_id"/>
|
||||||
<field eval="omz_code_4b" name="ref_base_code_id"/>
|
<field eval="omz_code_4b" name="ref_base_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_I_19_1" model="account.tax.template">
|
<record id="btw_I_21_1" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Inkopen import binnen EU hoog(1)</field>
|
<field name="name">Inkopen import binnen EU hoog(1)</field>
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_19"/>
|
<field name="parent_id" ref="btw_I_21"/>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field eval="btw_code_4b" name="tax_code_id"/>
|
<field eval="btw_code_4b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="btw_I_19_2" model="account.tax.template">
|
<record id="btw_I_21_2" model="account.tax.template">
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Inkopen import binnen EU hoog(2)</field>
|
<field name="name">Inkopen import binnen EU hoog(2)</field>
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_19"/>
|
<field name="parent_id" ref="btw_I_21"/>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4400,8 +4400,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_overig"/>
|
<field name="parent_id" ref="btw_I_overig"/>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field eval="btw_code_4b" name="tax_code_id"/>
|
<field eval="btw_code_4b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
<field eval="btw_code_4b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4412,8 +4412,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_I_overig"/>
|
<field name="parent_id" ref="btw_I_overig"/>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4463,8 +4463,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E1"/>
|
<field name="parent_id" ref="btw_E1"/>
|
||||||
<field name="account_collected_id" ref="vat_payable6"/>
|
<field name="account_collected_id" ref="vat_payable_low"/>
|
||||||
<field name="account_paid_id" ref="vat_payable6"/>
|
<field name="account_paid_id" ref="vat_payable_low"/>
|
||||||
<field eval="btw_code_4a" name="tax_code_id"/>
|
<field eval="btw_code_4a" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4475,8 +4475,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E1"/>
|
<field name="parent_id" ref="btw_E1"/>
|
||||||
<field name="account_collected_id" ref="vat_refund6"/>
|
<field name="account_collected_id" ref="vat_refund_low"/>
|
||||||
<field name="account_paid_id" ref="vat_refund6"/>
|
<field name="account_paid_id" ref="vat_refund_low"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4485,7 +4485,7 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Inkopen import buiten EU hoog</field>
|
<field name="name">Inkopen import buiten EU hoog</field>
|
||||||
<field name="description">BTW import buiten EU</field>
|
<field name="description">BTW import buiten EU</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field eval="True" name="child_depend"/>
|
<field eval="True" name="child_depend"/>
|
||||||
<field eval="omz_code_4a" name="base_code_id"/>
|
<field eval="omz_code_4a" name="base_code_id"/>
|
||||||
|
@ -4498,8 +4498,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E2"/>
|
<field name="parent_id" ref="btw_E2"/>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field eval="btw_code_4a" name="tax_code_id"/>
|
<field eval="btw_code_4a" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4510,8 +4510,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E2"/>
|
<field name="parent_id" ref="btw_E2"/>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4520,7 +4520,7 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
<field name="chart_template_id" ref="l10nnl_chart_template"/>
|
||||||
<field name="name">Inkopen import buiten EU overig</field>
|
<field name="name">Inkopen import buiten EU overig</field>
|
||||||
<field name="description">BTW import buiten EU</field>
|
<field name="description">BTW import buiten EU</field>
|
||||||
<field eval="0.19" name="amount"/>
|
<field eval="0.21" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field eval="True" name="child_depend"/>
|
<field eval="True" name="child_depend"/>
|
||||||
<field eval="omz_code_4a" name="base_code_id"/>
|
<field eval="omz_code_4a" name="base_code_id"/>
|
||||||
|
@ -4533,8 +4533,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="-1.00" name="amount"/>
|
<field eval="-1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E_overig"/>
|
<field name="parent_id" ref="btw_E_overig"/>
|
||||||
<field name="account_collected_id" ref="vat_payable19"/>
|
<field name="account_collected_id" ref="vat_payable_high"/>
|
||||||
<field name="account_paid_id" ref="vat_payable19"/>
|
<field name="account_paid_id" ref="vat_payable_high"/>
|
||||||
<field eval="btw_code_4a" name="tax_code_id"/>
|
<field eval="btw_code_4a" name="tax_code_id"/>
|
||||||
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
<field eval="btw_code_4a" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
@ -4545,8 +4545,8 @@ TODO rubriek 1c en 1d moeten nog, zijn variabel, dus BTW percentage moet door ge
|
||||||
<field eval="1.00" name="amount"/>
|
<field eval="1.00" name="amount"/>
|
||||||
<field name="type">percent</field>
|
<field name="type">percent</field>
|
||||||
<field name="parent_id" ref="btw_E_overig"/>
|
<field name="parent_id" ref="btw_E_overig"/>
|
||||||
<field name="account_collected_id" ref="vat_refund19"/>
|
<field name="account_collected_id" ref="vat_refund_high"/>
|
||||||
<field name="account_paid_id" ref="vat_refund19"/>
|
<field name="account_paid_id" ref="vat_refund_high"/>
|
||||||
<field eval="btw_code_5b" name="tax_code_id"/>
|
<field eval="btw_code_5b" name="tax_code_id"/>
|
||||||
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
<field eval="btw_code_5b" name="ref_tax_code_id"/>
|
||||||
<field name="type_tax_use">purchase</field>
|
<field name="type_tax_use">purchase</field>
|
||||||
|
|
|
@ -2,6 +2,12 @@
|
||||||
<openerp>
|
<openerp>
|
||||||
<data noupdate="1">
|
<data noupdate="1">
|
||||||
|
|
||||||
|
<!-- Update demo user to avoid mail bombing -->
|
||||||
|
<record id="base.partner_demo" model="res.partner">
|
||||||
|
<field name="notification_email_send">none</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Pushed to all employees -->
|
||||||
<record id="message_blogpost0" model="mail.message">
|
<record id="message_blogpost0" model="mail.message">
|
||||||
<field name="model">mail.group</field>
|
<field name="model">mail.group</field>
|
||||||
<field name="res_id" ref="mail.group_all_employees"/>
|
<field name="res_id" ref="mail.group_all_employees"/>
|
||||||
|
@ -10,7 +16,6 @@
|
||||||
<field name="subtype_id" ref="mt_comment"/>
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
<field name="author_id" ref="base.partner_root"/>
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="message_blogpost0_comment0" model="mail.message">
|
<record id="message_blogpost0_comment0" model="mail.message">
|
||||||
<field name="model">mail.group</field>
|
<field name="model">mail.group</field>
|
||||||
<field name="res_id" ref="group_all_employees"/>
|
<field name="res_id" ref="group_all_employees"/>
|
||||||
|
@ -20,7 +25,6 @@
|
||||||
<field name="subtype_id" ref="mt_comment"/>
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
<field name="author_id" ref="base.partner_root"/>
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="message_blogpost0_comment1" model="mail.message">
|
<record id="message_blogpost0_comment1" model="mail.message">
|
||||||
<field name="model">mail.group</field>
|
<field name="model">mail.group</field>
|
||||||
<field name="res_id" ref="group_all_employees"/>
|
<field name="res_id" ref="group_all_employees"/>
|
||||||
|
@ -30,7 +34,7 @@
|
||||||
<field name="subtype_id" ref="mt_comment"/>
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
<field name="author_id" ref="base.partner_demo"/>
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
</record>
|
</record>
|
||||||
|
<!-- This one is starred for having mailboxes with demo data -->
|
||||||
<record id="message_blogpost0_comment2" model="mail.message">
|
<record id="message_blogpost0_comment2" model="mail.message">
|
||||||
<field name="model">mail.group</field>
|
<field name="model">mail.group</field>
|
||||||
<field name="res_id" ref="group_all_employees"/>
|
<field name="res_id" ref="group_all_employees"/>
|
||||||
|
@ -39,8 +43,8 @@
|
||||||
<field name="type">comment</field>
|
<field name="type">comment</field>
|
||||||
<field name="subtype_id" ref="mt_comment"/>
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
<field name="author_id" ref="base.partner_root"/>
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="favorite_user_ids" eval="[(6, 0, [ref('base.user_root'), ref('base.user_demo')])]"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="message_blogpost0_comment3" model="mail.message">
|
<record id="message_blogpost0_comment3" model="mail.message">
|
||||||
<field name="model">mail.group</field>
|
<field name="model">mail.group</field>
|
||||||
<field name="res_id" ref="group_all_employees"/>
|
<field name="res_id" ref="group_all_employees"/>
|
||||||
|
@ -51,5 +55,196 @@
|
||||||
<field name="author_id" ref="base.partner_demo"/>
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!-- Demo user and admin conversation -->
|
||||||
|
<record id="message_discussion" model="mail.message">
|
||||||
|
<field name="body">Hello Demo User! I was wondering whether you had some issues with our secret task about putting cats everywhere in OpenERP.</field>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_discussion_answer1" model="mail.message">
|
||||||
|
<field name="body">No specific issues, I think everything is clear.</field>
|
||||||
|
<field name="parent_id" ref="message_discussion"/>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_discussion_answer2" model="mail.message">
|
||||||
|
<field name="body">Ow, just to be sure... we were talking about lolcats, right ?</field>
|
||||||
|
<field name="parent_id" ref="message_discussion"/>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_discussion_answer3" model="mail.message">
|
||||||
|
<field name="body">Absolutely!</field>
|
||||||
|
<field name="parent_id" ref="message_discussion"/>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo')])]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- External mail + reply with attachment conversation -->
|
||||||
|
<record id="message_video2" model="mail.message">
|
||||||
|
<field name="subject">Plan to install OpenERP</field>
|
||||||
|
<field name="model">mail.message</field>
|
||||||
|
<field name="body">
|
||||||
|
<![CDATA[Email0 inquiry]]>
|
||||||
|
<div><font size="2">Hello,</font></div><div><font size="2"><br></font></div>
|
||||||
|
<div><font size="2">I am interested in your company's product and I plan to install OpenERP for my company and affordable price.</font></div><br/>
|
||||||
|
<div><font size="2">Can you please send me services catalogue?</font></div><br/>
|
||||||
|
Sophie
|
||||||
|
</field>
|
||||||
|
<field name="type">email</field>
|
||||||
|
<field name="author_id" ref="base.res_partner_2"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_video2_attachment1" model="ir.attachment">
|
||||||
|
<field name="model">ir.attachment</field>
|
||||||
|
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
||||||
|
<field name="datas_fname">catalogue 2012.pdf</field>
|
||||||
|
<field name="name">catalogue 2012.pdf</field>
|
||||||
|
</record>
|
||||||
|
<record id="message_video2_message1" model="mail.message">
|
||||||
|
<field name="subject">Re: Plan to install OpenERP</field>
|
||||||
|
<field name="body">
|
||||||
|
Dear Customer,<br/>
|
||||||
|
Thanks for showing interest in our products.<br/>
|
||||||
|
We have attached the catalogue,<br/>
|
||||||
|
We would like to know your interests, so let us know when we can call you for more details.<br/>
|
||||||
|
Regards
|
||||||
|
</field>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="parent_id" ref="message_video2"/>
|
||||||
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
|
<field name="attachment_ids" eval="[(6, 0, [ref('message_video2_attachment1')])]"/>
|
||||||
|
<field name="partner_ids" eval="[(6, 0, [ref('base.partner_demo'),ref('base.partner_root'),ref('base.res_partner_2')])]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Employee & other + attachments conversation -->
|
||||||
|
<record id="message_video1_attachment1" model="ir.attachment">
|
||||||
|
<field name="model">ir.attachment</field>
|
||||||
|
<field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
|
||||||
|
<field name="datas_fname">migration.doc</field>
|
||||||
|
<field name="name">migration.doc</field>
|
||||||
|
</record>
|
||||||
|
<record id="message_video1_attachment2" model="ir.attachment">
|
||||||
|
<field name="model">ir.attachment</field>
|
||||||
|
<field name="datas">
|
||||||
|
/9j/4AAQSkZJRgABAQEASABIAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz
|
||||||
|
ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj
|
||||||
|
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCABkAGQDAREA
|
||||||
|
AhEBAxEB/8QAGgAAAwEBAQEAAAAAAAAAAAAAAAQFAwIBBv/EAD0QAAEDAgMDCAcHAwUAAAAAAAEA
|
||||||
|
AgMEEQUSsiExchMzNDVBUXFzIjJhkbGzwRQVJGKBwtElg6FCUlPh8P/EABoBAQADAQEBAAAAAAAA
|
||||||
|
AAAAAAADBAUBAgb/xAAwEQACAQIDBgYBBAMBAAAAAAAAAQIDBBEyMwUSMUFx8BMhNFGx0cEUgZGh
|
||||||
|
I0LhNf/aAAwDAQACEQMRAD8A+55QFzgA4lpsbDttf6qqoN8D0e5z/sf7l3w5HMQz/kd7k8OQxOJX
|
||||||
|
SOheIgWyFpDXFtwDbYV1U5DETLcVFwySnDQLNuHOO/Zc227LBevDGJ1kxE2DpYiA6+xrgSMzT3dw
|
||||||
|
d7wm4xiZtZiwLS+andZrb+g4XdcZuzdbNb22TcGINbi4YbzU7nZTuY7a6+zs3Af5HtTwxidPbihe
|
||||||
|
MksDWAvuCxxJF/R7O7f4puDE8DcVLiXSwZc7TZrHXDRa43du33puDEoZ/wAjvcvHhyGIZ/yO9yeH
|
||||||
|
IYgx4e27d1yP1BsvLWDwZ0Uyh9VVB2W4y5Mx2XLf+h7lIm1FYHBSsldTcoMkBIaXNsHG/d2+Kb7X
|
||||||
|
mzkvJNoq0ji6khcd5YCfcplwBtddAXQBdAF0AXQBdAF0AXQCWI17qIR5YhIX3vd+WwFvYe9V69wq
|
||||||
|
LimscSalR8TF48DWm5t3mP1FcnmIkZfZYqmSflWkjlG7jbc0W+JUkEnHzB6cMpizKWOItl9Y7QvW
|
||||||
|
5FjFoajYIo2xsFmtAA8F7OHSANqANqAEBnJPFE9jJJGtc82aCdpXUmzjkk8GabVw6Iy4i3NPFGwi
|
||||||
|
WJjnAuHom2z4leazdKm5ik41Km4FNVzS4Uahwj5UZ9wOW4cQNl/YvNtN1YRk+Z6uEqTaXIm108lR
|
||||||
|
SU8kuXOTKDlFhscB9FS2kt2pBL3+ixYycqcm++JYpubd5j9RVipmKyPafnKjzBpapafAM3Uhwxkq
|
||||||
|
oo6hkD3ESP8AVGU2O/t/Qrqi2sTy5pPd5my4eidh1RPNV1LJZM7WhrmjKBluXbPbuClqRUUsCClN
|
||||||
|
ybxGMQLhRvLXFpuNrTY7wvNNYy8z3VbUHgGHlzqGEucXEt2lxuSuTzM7T84oUxLpsHFF8wKSGRkN
|
||||||
|
TUR1RVM8mKVEMkmaNoJa3KBb0rb1mW9adSrOL4I0qtOMacWuLFH9Nq/Kk1BXLz0z6FK19QM0PUTv
|
||||||
|
GTW5Q2GlAsXuaXfInz9X0/FNrVfaerDr9Emz9KXfuXKbm3eY/UVNUzECFKwuEU+V7mEzja02PqBW
|
||||||
|
bdJ8SGu2o+Q5RFz6Gnc5xLnRNJPebLsuLPccqEq3rel4h8HKWOmyGWqipb2lQlgk4SL11XwR/F6n
|
||||||
|
q8EVqHGXfuOYgPwb9p3t1BR08xJWyMlGWRn2BrJHtb6FwDsN32P+FnXVWcbqME/Jl22hF27bXeA3
|
||||||
|
iXTYOKP5gWpDIzOqaiOMP65quF2pY1prVOr+TVr6Ue+Ri/p1X5MmoLSvfTPoZ9r6jv3GaLqJ3jJr
|
||||||
|
cobDSgWL3NLvkT5+r6fim1qvtPVh1+iTZ+lLv3LlNzbvMfqKmqZiBClZzU3njQFatiC4yjdAB930
|
||||||
|
1/8Aib8AkuLJIZUJ1vW9LxD4OUsdNkMtVFOwUJYJWF2FbVlxsAyPb+r1NV4IrUMz79xyvymieQbg
|
||||||
|
lu2/5gvFLMiStkZIf61B/a+Ysq89bDv3L9r6Z98h3Eh+Ng4o/mBbEMjMypqI4w/rmq4XaljWmtU6
|
||||||
|
v5NWvpR75GL+m1fkyagtK99M+hn2vqO/cYoR/QneMmtyhsNKBYvc0u+QhP1fT8U2tV9p6sOv0SbP
|
||||||
|
0pd+5cpubd5j9RU1TMQIUrebm88aArVsQXGU8wOpfPA6ORrAIWta0gb9ltvuVW3ruvjJor2VxKvF
|
||||||
|
4rgc4g9kWJ0z3uDWBzSSdw2OV1zjCk3J4ElWUYVE5PBFCCop6jNyMjH5bXt2KCFSM8rxLji0k2uJ
|
||||||
|
EADm14IBBbFsPG5c2l5W779iPZ+s+/cdYAMBi2D1W6gu2eSPQ9XnGXUSf61B/a+YqF562HfuWrX0
|
||||||
|
z75DmJW+2wW3Zo/mBbEMjMypqI5w+33zU7rZTqWNaa1Tq/k1a+lHvkYv6bV93IyagtK99M+hn2vq
|
||||||
|
Biit9xO3XvJrKhsNKBYvc0u+QhP1fT8U2tV9p6sOv0SbP0pd+5cpubd5j9RU1TMQIUrObm88aArV
|
||||||
|
sQXGUTwGojhkkjeSHSloZs37CsmwqRWMHxZT2VSm6Mp4eWJ1j22UeDfqrd/6b9/wyLaeX+Pya4Hz
|
||||||
|
1Tws/cqmzOEv2PpLz/UnzSvZUPY02bKGhwtvsSR8VLtWtJYUuWGP9/8ADGs60o3saa4PH4ZVZ1DH
|
||||||
|
wt1BXrPJHoXLzjLqThKyR9GGkkxuja7Z28oFmXNSM7yO6+H/AEmsqkZ20t3liv6KGJdNg4o/mBbc
|
||||||
|
MjKFTURxh/XNTwnUsa01qnV/JrV9KPfIxf02r8mTUFpXvpn0M619QMUR/oTvGTWVDYaUCxe5pd8h
|
||||||
|
Cfq+n4ptar7T1Ydfok2fpS79y5T827zH6ipqmYgQpWc1N540BWrYguMpJw3ptN5v7Svn7TXQ2R6G
|
||||||
|
XV/gcx7nR4D6rVv/AE37/hmdtPL/AB+TXA+eqeFn7lU2Zll+x9Jef6k2p6W3/wB2lNraq6flmBa/
|
||||||
|
+jT6P4ZXZ1DHwt1Badllh0NK74y6/kkU/SGefHrCwo+qXUj2R6ap1fwijjZIeHNJa4NaQR2EOut2
|
||||||
|
vOVO3lKPH/qKd7Jwi5R4pfk4wRznVz3OJc4xXJPacyy9ntynJs2HJytqbfsvgyqZhDWz5gTyjXsF
|
||||||
|
u8uH8K/tCtGFHcfFozaFaNO6jF82O0PUTvGTW5LDSgXr3NLvkT5+r6fim1qvtPVh1+iTZ+lLv3Ll
|
||||||
|
PzbvMfqKmnmIBarhmeJGxxhwdIHg5gP9IH0U1GoocSOrBzWCEKTDquCoikdE0hj8xs8dxH1WZQtn
|
||||||
|
TqKbYsYO3t3Slxbx+DfEqWqrHgshDdg3vHt/lXbnCtS3F74lW8tpV1hF9+Zph0FTSPlc+EHOGgAP
|
||||||
|
HZf+VBaUvAT3nxNWvVVTDAUlw6sknDxE0AdheEvaX6ialF8sDNo0JU7qNdvyWPw/sdEdQMNZTch6
|
||||||
|
QAF847DdW7eapKKfItV/8jeHMRhw2sZK1xibYSNf647HA/RZytmqyqY+WOJ5sYu3ozhLi23/AChr
|
||||||
|
Eaeqqz6EAHogbXjvutCtJVKMqa4v7RXuqEqsWlz+znDqWqpJnSPhBuwNADx3qpa0fBbcnxL29/hh
|
||||||
|
T5pJfwjKqoKuecyNhaBmJ2vHaV7vYfqN3dfAofp5fqIVcfJPEbp4qmLDjTGAFxzbQ8drifqprZql
|
||||||
|
CMXyL1w/Fba5k/7srM7rxtyuJIHKbrlU61CdSrvuXljiQ2MZW7qObx3sMP7+y3A1zY/TFiXOda97
|
||||||
|
XcT9Vbk8XiSDKsnAQAgBACAEAIAQAgBACAEAIAQAgBACAEAIAQAgBACAEAIAQAgBACAEAIAQAgBA
|
||||||
|
CAEAIAQAgP/Z
|
||||||
|
</field>
|
||||||
|
<field name="datas_fname">activity graph 2012.jpg</field>
|
||||||
|
<field name="name">activity graph 2012</field>
|
||||||
|
</record>
|
||||||
|
<record id="message_video1" model="mail.message">
|
||||||
|
<field name="model">mail.group</field>
|
||||||
|
<field name="body">
|
||||||
|
Hi,<br/>
|
||||||
|
The beta OpenERP 7 is scheduled for November 12.<br/>
|
||||||
|
You will find attached the document for migration from version 6 to 7, and the activity graph for the current year. Good reading.<br/>
|
||||||
|
Sincerely
|
||||||
|
</field>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
|
<field name="attachment_ids" eval="[(6, 0, [ref('message_video1_attachment1'), ref('message_video1_attachment2')])]"/>
|
||||||
|
<field name="notified_partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_video1_message1" model="mail.message">
|
||||||
|
<field name="model">mail.group</field>
|
||||||
|
<field name="body">
|
||||||
|
Thank you,<br/>
|
||||||
|
Could you prepare and send us also the document for version 7.1 which will come soon?<br/>
|
||||||
|
Sincerely
|
||||||
|
</field>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="parent_id" ref="message_video1"/>
|
||||||
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="notified_partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Network admin & employee conversation -->
|
||||||
|
<record id="message_video0" model="mail.message">
|
||||||
|
<field name="model">mail.group</field>
|
||||||
|
<field name="body">I changed the infrastructure of networks, if there are still changes to be made please do not hesitate to contact me.</field>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="notified_partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_video0_message1" model="mail.message">
|
||||||
|
<field name="model">mail.group</field>
|
||||||
|
<field name="body">Thank you, the networks is perfect now ! Could you add a IP phone for Jhon ?</field>
|
||||||
|
<field name="parent_id" ref="message_video0"/>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_demo"/>
|
||||||
|
<field name="notified_partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
<record id="message_video0_message2" model="mail.message">
|
||||||
|
<field name="model">mail.group</field>
|
||||||
|
<field name="body">It's right, his internal phone number is 0093</field>
|
||||||
|
<field name="parent_id" ref="message_video0"/>
|
||||||
|
<field name="type">comment</field>
|
||||||
|
<field name="subtype_id" ref="mt_comment"/>
|
||||||
|
<field name="author_id" ref="base.partner_root"/>
|
||||||
|
<field name="notified_partner_ids" eval="[(6, 0, [ref('base.partner_demo'), ref('base.partner_root')])]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
</openerp>
|
</openerp>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<record model="mail.group" id="group_all_employees">
|
<record model="mail.group" id="group_all_employees">
|
||||||
<field name="name">Whole Company</field>
|
<field name="name">Whole Company</field>
|
||||||
<field name="group_ids" eval="[(4, ref('base.group_user'))]"/>
|
<field name="group_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
<field name="description">Discussion about best sales practices and deals.</field>
|
<field name="description">General announces for all employees.</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- notify all employees of module installation -->
|
<!-- notify all employees of module installation -->
|
||||||
|
|
|
@ -61,10 +61,10 @@ class mail_notification(osv.Model):
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'partner_id': fields.many2one('res.partner', string='Contact',
|
'partner_id': fields.many2one('res.partner', string='Contact',
|
||||||
ondelete='cascade', required=True),
|
ondelete='cascade', required=True, select=1),
|
||||||
'read': fields.boolean('Read'),
|
'read': fields.boolean('Read', select=1),
|
||||||
'message_id': fields.many2one('mail.message', string='Message',
|
'message_id': fields.many2one('mail.message', string='Message',
|
||||||
ondelete='cascade', required=True),
|
ondelete='cascade', required=True, select=1),
|
||||||
}
|
}
|
||||||
|
|
||||||
_defaults = {
|
_defaults = {
|
||||||
|
|
|
@ -32,17 +32,18 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="oe_group_details">
|
<div class="oe_group_details">
|
||||||
<h4><a type="open"><field name="name"/></a></h4>
|
<h4><a type="open"><field name="name"/></a></h4>
|
||||||
<ul>
|
<div class="oe_grey">
|
||||||
<li><t t-raw="record.message_summary.raw_value"/></li>
|
<field name="description"/>
|
||||||
<li t-if="! record.message_is_follower.raw_value"><a name="action_follow" string="Join" type="object" class="oe_group_join">Not following</a></li>
|
</div>
|
||||||
<li t-if="record.message_is_follower.raw_value"><a name="action_unfollow" string="Leave" type="object" class="oe_group_leave">Following</a></li>
|
<div class="oe_kanban_footer_left">
|
||||||
</ul>
|
<t t-raw="record.message_summary.raw_value"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_group_button">
|
||||||
|
<button t-if="record.message_is_follower.raw_value" name="action_unfollow" type="object" class="oe_group_join">Unfollow</button>
|
||||||
|
<button t-if="! record.message_is_follower.raw_value" name="action_follow" type="object">Join Group</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
|
||||||
$('.oe_group_join').mouseover(function () { $(this).html('Follow'); }).mouseleave(function () { $(this).html('Not following'); });
|
|
||||||
$('.oe_group_leave').mouseover(function () { $(this).html('Unfollow'); }).mouseleave(function () { $(this).html('Following'); });
|
|
||||||
</script>
|
|
||||||
</t>
|
</t>
|
||||||
</templates>
|
</templates>
|
||||||
</kanban>
|
</kanban>
|
||||||
|
|
|
@ -51,8 +51,9 @@ class mail_message(osv.Model):
|
||||||
_description = 'Message'
|
_description = 'Message'
|
||||||
_inherit = ['ir.needaction_mixin']
|
_inherit = ['ir.needaction_mixin']
|
||||||
_order = 'id desc'
|
_order = 'id desc'
|
||||||
|
_rec_name = 'record_name'
|
||||||
|
|
||||||
_message_read_limit = 10
|
_message_read_limit = 30
|
||||||
_message_read_fields = ['id', 'parent_id', 'model', 'res_id', 'body', 'subject', 'date', 'to_read', 'email_from',
|
_message_read_fields = ['id', 'parent_id', 'model', 'res_id', 'body', 'subject', 'date', 'to_read', 'email_from',
|
||||||
'type', 'vote_user_ids', 'attachment_ids', 'author_id', 'partner_ids', 'record_name', 'favorite_user_ids']
|
'type', 'vote_user_ids', 'attachment_ids', 'author_id', 'partner_ids', 'record_name', 'favorite_user_ids']
|
||||||
_message_record_name_length = 18
|
_message_record_name_length = 18
|
||||||
|
@ -121,21 +122,26 @@ class mail_message(osv.Model):
|
||||||
"message, comment for other messages such as user replies"),
|
"message, comment for other messages such as user replies"),
|
||||||
'email_from': fields.char('From',
|
'email_from': fields.char('From',
|
||||||
help="Email address of the sender. This field is set when no matching partner is found for incoming emails."),
|
help="Email address of the sender. This field is set when no matching partner is found for incoming emails."),
|
||||||
'author_id': fields.many2one('res.partner', 'Author',
|
'author_id': fields.many2one('res.partner', 'Author', select=1,
|
||||||
|
ondelete='set null',
|
||||||
help="Author of the message. If not set, email_from may hold an email address that did not match any partner."),
|
help="Author of the message. If not set, email_from may hold an email address that did not match any partner."),
|
||||||
'partner_ids': fields.many2many('res.partner', string='Recipients'),
|
'partner_ids': fields.many2many('res.partner', string='Recipients'),
|
||||||
'notified_partner_ids': fields.many2many('res.partner', 'mail_notification',
|
'notified_partner_ids': fields.many2many('res.partner', 'mail_notification',
|
||||||
'message_id', 'partner_id', 'Notified partners'),
|
'message_id', 'partner_id', 'Notified partners',
|
||||||
|
help='Partners that have a notification pushing this message in their mailboxes'),
|
||||||
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel',
|
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel',
|
||||||
'message_id', 'attachment_id', 'Attachments'),
|
'message_id', 'attachment_id', 'Attachments'),
|
||||||
'parent_id': fields.many2one('mail.message', 'Parent Message', select=True, ondelete='set null', help="Initial thread message."),
|
'parent_id': fields.many2one('mail.message', 'Parent Message', select=True,
|
||||||
|
ondelete='set null', help="Initial thread message."),
|
||||||
'child_ids': fields.one2many('mail.message', 'parent_id', 'Child Messages'),
|
'child_ids': fields.one2many('mail.message', 'parent_id', 'Child Messages'),
|
||||||
'model': fields.char('Related Document Model', size=128, select=1),
|
'model': fields.char('Related Document Model', size=128, select=1),
|
||||||
'res_id': fields.integer('Related Document ID', select=1),
|
'res_id': fields.integer('Related Document ID', select=1),
|
||||||
'record_name': fields.function(_get_record_name, type='char',
|
'record_name': fields.function(_get_record_name, type='char',
|
||||||
store=True, string='Message Record Name',
|
store=True, string='Message Record Name',
|
||||||
help="Name get of the related document."),
|
help="Name get of the related document."),
|
||||||
'notification_ids': fields.one2many('mail.notification', 'message_id', 'Notifications'),
|
'notification_ids': fields.one2many('mail.notification', 'message_id',
|
||||||
|
string='Notifications',
|
||||||
|
help='Technical field holding the message notifications. Use notified_partner_ids to access notified partners.'),
|
||||||
'subject': fields.char('Subject'),
|
'subject': fields.char('Subject'),
|
||||||
'date': fields.datetime('Date'),
|
'date': fields.datetime('Date'),
|
||||||
'message_id': fields.char('Message-Id', help='Message unique identifier', select=1, readonly=1),
|
'message_id': fields.char('Message-Id', help='Message unique identifier', select=1, readonly=1),
|
||||||
|
@ -143,7 +149,8 @@ class mail_message(osv.Model):
|
||||||
'to_read': fields.function(_get_to_read, fnct_search=_search_to_read,
|
'to_read': fields.function(_get_to_read, fnct_search=_search_to_read,
|
||||||
type='boolean', string='To read',
|
type='boolean', string='To read',
|
||||||
help='Functional field to search for messages the current user has to read'),
|
help='Functional field to search for messages the current user has to read'),
|
||||||
'subtype_id': fields.many2one('mail.message.subtype', 'Subtype'),
|
'subtype_id': fields.many2one('mail.message.subtype', 'Subtype',
|
||||||
|
ondelete='set null', select=1,),
|
||||||
'vote_user_ids': fields.many2many('res.users', 'mail_vote',
|
'vote_user_ids': fields.many2many('res.users', 'mail_vote',
|
||||||
'message_id', 'user_id', string='Votes',
|
'message_id', 'user_id', string='Votes',
|
||||||
help='Users that voted for this message'),
|
help='Users that voted for this message'),
|
||||||
|
@ -201,67 +208,99 @@ class mail_message(osv.Model):
|
||||||
# Message loading for web interface
|
# Message loading for web interface
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
|
|
||||||
def _message_get_dict(self, cr, uid, message, context=None):
|
def _message_read_dict_postprocess(self, cr, uid, messages, message_tree, context=None):
|
||||||
""" Return a dict representation of the message. This representation is
|
""" Post-processing on values given by message_read. This method will
|
||||||
used in the JS client code, to display the messages.
|
handle partners in batch to avoid doing numerous queries.
|
||||||
|
|
||||||
:param dict message: read result of a mail.message
|
:param list messages: list of message, as get_dict result
|
||||||
|
:param dict message_tree: {[msg.id]: msg browse record}
|
||||||
"""
|
"""
|
||||||
# TDE note: this method should be optimized, to lessen the number of queries, will be done ASAP
|
res_partner_obj = self.pool.get('res.partner')
|
||||||
is_author = False
|
ir_attachment_obj = self.pool.get('ir.attachment')
|
||||||
if message['author_id']:
|
pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=None)['partner_id'][0]
|
||||||
is_author = message['author_id'][0] == self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=None)['partner_id'][0]
|
|
||||||
author_id = message['author_id']
|
|
||||||
elif message['email_from']:
|
|
||||||
author_id = (0, message['email_from'])
|
|
||||||
|
|
||||||
has_voted = False
|
# 1. Aggregate partners (author_id and partner_ids) and attachments
|
||||||
if uid in message.get('vote_user_ids'):
|
partner_ids = set()
|
||||||
has_voted = True
|
attachment_ids = set()
|
||||||
|
for key, message in message_tree.iteritems():
|
||||||
|
if message.author_id:
|
||||||
|
partner_ids |= set([message.author_id.id])
|
||||||
|
if message.partner_ids:
|
||||||
|
partner_ids |= set([partner.id for partner in message.partner_ids])
|
||||||
|
if message.attachment_ids:
|
||||||
|
attachment_ids |= set([attachment.id for attachment in message.attachment_ids])
|
||||||
|
|
||||||
is_favorite = False
|
# Filter author_ids uid can see
|
||||||
if uid in message.get('favorite_user_ids'):
|
# partner_ids = self.pool.get('res.partner').search(cr, uid, [('id', 'in', partner_ids)], context=context)
|
||||||
is_favorite = True
|
partners = res_partner_obj.name_get(cr, uid, list(partner_ids), context=context)
|
||||||
|
partner_tree = dict((partner[0], partner) for partner in partners)
|
||||||
|
|
||||||
is_private = True
|
# 2. Attachments
|
||||||
if message.get('model') and message.get('res_id'):
|
attachments = ir_attachment_obj.read(cr, uid, list(attachment_ids), ['id', 'datas_fname'], context=context)
|
||||||
is_private = False
|
attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname']}) for attachment in attachments)
|
||||||
|
|
||||||
try:
|
# 3. Update message dictionaries
|
||||||
attachment_ids = [{'id': attach[0], 'name': attach[1]} for attach in self.pool.get('ir.attachment').name_get(cr, uid, message['attachment_ids'], context=context)]
|
for message_dict in messages:
|
||||||
except (orm.except_orm, osv.except_osv):
|
message_id = message_dict.get('id')
|
||||||
attachment_ids = []
|
message = message_tree[message_id]
|
||||||
|
if message.author_id:
|
||||||
# TDE note: should we send partner_ids ?
|
author = partner_tree[message.author_id.id]
|
||||||
# TDE note: shouldn't we separated followers and other partners ? costly to compute maybe ,
|
else:
|
||||||
try:
|
author = (0, message.email_from)
|
||||||
partner_ids = self.pool.get('res.partner').name_get(cr, uid, message['partner_ids'], context=context)
|
|
||||||
except (orm.except_orm, osv.except_osv):
|
|
||||||
partner_ids = []
|
partner_ids = []
|
||||||
|
for partner in message.partner_ids:
|
||||||
|
if partner.id in partner_tree:
|
||||||
|
partner_ids.append(partner_tree[partner.id])
|
||||||
|
attachment_ids = []
|
||||||
|
for attachment in message.attachment_ids:
|
||||||
|
if attachment.id in attachments_tree:
|
||||||
|
attachment_ids.append(attachments_tree[attachment.id])
|
||||||
|
message_dict.update({
|
||||||
|
'is_author': pid == author[0],
|
||||||
|
'author_id': author,
|
||||||
|
'partner_ids': partner_ids,
|
||||||
|
'attachment_ids': attachment_ids,
|
||||||
|
})
|
||||||
|
return True
|
||||||
|
|
||||||
return {
|
def _message_read_dict(self, cr, uid, message, parent_id=False, context=None):
|
||||||
'id': message['id'],
|
""" Return a dict representation of the message. This representation is
|
||||||
'type': message['type'],
|
used in the JS client code, to display the messages. Partners and
|
||||||
'attachment_ids': attachment_ids,
|
attachments related stuff will be done in post-processing in batch.
|
||||||
'body': html_email_clean(message['body']),
|
|
||||||
'model': message['model'],
|
|
||||||
'res_id': message['res_id'],
|
|
||||||
'record_name': message['record_name'],
|
|
||||||
'subject': message['subject'],
|
|
||||||
'date': message['date'],
|
|
||||||
'author_id': author_id,
|
|
||||||
'is_author': is_author,
|
|
||||||
'partner_ids': partner_ids,
|
|
||||||
'parent_id': False,
|
|
||||||
'vote_nb': len(message['vote_user_ids']),
|
|
||||||
'has_voted': has_voted,
|
|
||||||
'is_private': is_private,
|
|
||||||
'is_favorite': is_favorite,
|
|
||||||
'to_read': message['to_read'],
|
|
||||||
}
|
|
||||||
|
|
||||||
def _message_read_add_expandables(self, cr, uid, message_list, read_messages,
|
:param dict message: mail.message browse record
|
||||||
thread_level=0, message_loaded_ids=[], domain=[], parent_id=False, context=None, limit=None):
|
"""
|
||||||
|
# private message: no model, no res_id
|
||||||
|
is_private = False
|
||||||
|
if not message.model or not message.res_id:
|
||||||
|
is_private = True
|
||||||
|
# votes and favorites: res.users ids, no prefetching should be done
|
||||||
|
vote_nb = len(message.vote_user_ids)
|
||||||
|
has_voted = uid in [user.id for user in message.vote_user_ids]
|
||||||
|
is_favorite = uid in [user.id for user in message.favorite_user_ids]
|
||||||
|
|
||||||
|
return {'id': message.id,
|
||||||
|
'type': message.type,
|
||||||
|
'body': html_email_clean(message.body),
|
||||||
|
'model': message.model,
|
||||||
|
'res_id': message.res_id,
|
||||||
|
'record_name': message.record_name,
|
||||||
|
'subject': message.subject,
|
||||||
|
'date': message.date,
|
||||||
|
'to_read': message.to_read,
|
||||||
|
'parent_id': parent_id,
|
||||||
|
'is_private': is_private,
|
||||||
|
'author_id': False,
|
||||||
|
'is_author': False,
|
||||||
|
'partner_ids': [],
|
||||||
|
'vote_nb': vote_nb,
|
||||||
|
'has_voted': has_voted,
|
||||||
|
'is_favorite': is_favorite,
|
||||||
|
'attachment_ids': [],
|
||||||
|
}
|
||||||
|
|
||||||
|
def _message_read_add_expandables(self, cr, uid, messages, message_tree, parent_tree,
|
||||||
|
message_unload_ids=[], thread_level=0, domain=[], parent_id=False, context=None):
|
||||||
""" Create expandables for message_read, to load new messages.
|
""" Create expandables for message_read, to load new messages.
|
||||||
1. get the expandable for new threads
|
1. get the expandable for new threads
|
||||||
if display is flat (thread_level == 0):
|
if display is flat (thread_level == 0):
|
||||||
|
@ -276,96 +315,82 @@ class mail_message(osv.Model):
|
||||||
for each hole in the child list based on message displayed,
|
for each hole in the child list based on message displayed,
|
||||||
create an expandable
|
create an expandable
|
||||||
|
|
||||||
:param list message_list:list of message structure for the Chatter
|
:param list messages: list of message structure for the Chatter
|
||||||
widget to which expandables are added
|
widget to which expandables are added
|
||||||
:param dict read_messages: dict [id]: read result of the messages to
|
:param dict message_tree: dict [id]: browse record of this message
|
||||||
easily have access to their values, given their ID
|
:param dict parent_tree: dict [parent_id]: [child_ids]
|
||||||
|
:param list message_unload_ids: list of message_ids we do not want
|
||||||
|
to load
|
||||||
:return bool: True
|
:return bool: True
|
||||||
"""
|
"""
|
||||||
def _get_expandable(domain, message_nb, parent_id, id, model):
|
def _get_expandable(domain, message_nb, parent_id, max_limit):
|
||||||
return {
|
return {
|
||||||
'domain': domain,
|
'domain': domain,
|
||||||
'nb_messages': message_nb,
|
'nb_messages': message_nb,
|
||||||
'type': 'expandable',
|
'type': 'expandable',
|
||||||
'parent_id': parent_id,
|
'parent_id': parent_id,
|
||||||
'id': id,
|
'max_limit': max_limit,
|
||||||
# TDE note: why do we need model sometimes, and sometimes not ???
|
|
||||||
'model': model,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# all_not_loaded_ids = []
|
if not messages:
|
||||||
id_list = sorted(read_messages.keys())
|
return True
|
||||||
if not id_list:
|
message_ids = sorted(message_tree.keys())
|
||||||
return message_list
|
|
||||||
|
|
||||||
# 1. get the expandable for new threads
|
# 1. get the expandable for new threads
|
||||||
if thread_level == 0:
|
if thread_level == 0:
|
||||||
exp_domain = domain + [('id', '<', min(message_loaded_ids + id_list))]
|
exp_domain = domain + [('id', '<', min(message_unload_ids + message_ids))]
|
||||||
else:
|
else:
|
||||||
exp_domain = domain + ['!', ('id', 'child_of', message_loaded_ids + id_list)]
|
exp_domain = domain + ['!', ('id', 'child_of', message_unload_ids + parent_tree.keys())]
|
||||||
ids = self.search(cr, uid, exp_domain, context=context, limit=1)
|
ids = self.search(cr, uid, exp_domain, context=context, limit=1)
|
||||||
if ids:
|
if ids:
|
||||||
message_list.append(_get_expandable(exp_domain, -1, parent_id, -1, None))
|
# inside a thread: prepend
|
||||||
|
if parent_id:
|
||||||
|
messages.insert(0, _get_expandable(exp_domain, -1, parent_id, True))
|
||||||
|
# new threads: append
|
||||||
|
else:
|
||||||
|
messages.append(_get_expandable(exp_domain, -1, parent_id, True))
|
||||||
|
|
||||||
# 2. get the expandables for new messages inside threads if display is not flat
|
# 2. get the expandables for new messages inside threads if display is not flat
|
||||||
if thread_level == 0:
|
if thread_level == 0:
|
||||||
return True
|
return True
|
||||||
for message_id in id_list:
|
for message_id in message_ids:
|
||||||
message = read_messages[message_id]
|
message = message_tree[message_id]
|
||||||
|
|
||||||
# message is not a thread header (has a parent_id)
|
# generate only for thread header messages (TDE note: parent_id may be False is uid cannot see parent_id, seems ok)
|
||||||
# TDE note: parent_id is false is there is a parent we can not see -> ok
|
if message.parent_id:
|
||||||
if message.get('parent_id'):
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# TDE note: check search is correctly implemented in mail.message
|
# check there are message for expandable
|
||||||
not_loaded_ids = self.search(cr, uid, [
|
child_ids = set([child.id for child in message.child_ids]) - set(message_unload_ids)
|
||||||
('id', 'child_of', message['id']),
|
child_ids = sorted(list(child_ids), reverse=True)
|
||||||
('id', 'not in', message_loaded_ids),
|
if not child_ids:
|
||||||
], context=context, limit=self._message_read_more_limit)
|
|
||||||
if not not_loaded_ids:
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# all_not_loaded_ids += not_loaded_ids
|
# make groups of unread messages
|
||||||
# group childs not read
|
id_min, id_max, nb = max(child_ids), 0, 0
|
||||||
id_min, id_max, nb = max(not_loaded_ids), 0, 0
|
for child_id in child_ids:
|
||||||
for not_loaded_id in not_loaded_ids:
|
if not child_id in message_ids:
|
||||||
if not read_messages.get(not_loaded_id):
|
|
||||||
nb += 1
|
nb += 1
|
||||||
if id_min > not_loaded_id:
|
if id_min > child_id:
|
||||||
id_min = not_loaded_id
|
id_min = child_id
|
||||||
if id_max < not_loaded_id:
|
if id_max < child_id:
|
||||||
id_max = not_loaded_id
|
id_max = child_id
|
||||||
elif nb > 0:
|
elif nb > 0:
|
||||||
exp_domain = [('id', '>=', id_min), ('id', '<=', id_max), ('id', 'child_of', message_id)]
|
exp_domain = [('id', '>=', id_min), ('id', '<=', id_max), ('id', 'child_of', message_id)]
|
||||||
message_list.append(_get_expandable(exp_domain, nb, message_id, id_min, message.get('model')))
|
messages.append(_get_expandable(exp_domain, nb, message_id, False))
|
||||||
id_min, id_max, nb = max(not_loaded_ids), 0, 0
|
id_min, id_max, nb = max(child_ids), 0, 0
|
||||||
else:
|
else:
|
||||||
id_min, id_max, nb = max(not_loaded_ids), 0, 0
|
id_min, id_max, nb = max(child_ids), 0, 0
|
||||||
if nb > 0:
|
if nb > 0:
|
||||||
exp_domain = [('id', '>=', id_min), ('id', '<=', id_max), ('id', 'child_of', message_id)]
|
exp_domain = [('id', '>=', id_min), ('id', '<=', id_max), ('id', 'child_of', message_id)]
|
||||||
message_list.append(_get_expandable(exp_domain, nb, message_id, id_min, message.get('model')))
|
idx = [msg.get('id') for msg in messages].index(message_id) + 1
|
||||||
|
# messages.append(_get_expandable(exp_domain, nb, message_id, id_min))
|
||||||
# message_loaded_ids = list(set(message_loaded_ids + read_messages.keys() + all_not_loaded_ids))
|
messages.insert(idx, _get_expandable(exp_domain, nb, message_id, False))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _get_parent(self, cr, uid, message, context=None):
|
def message_read(self, cr, uid, ids=None, domain=None, message_unload_ids=None,
|
||||||
""" Tools method that tries to get the parent of a mail.message. If
|
thread_level=0, context=None, parent_id=False, limit=None):
|
||||||
no parent, or if uid has no access right on the parent, False
|
|
||||||
is returned.
|
|
||||||
|
|
||||||
:param dict message: read result of a mail.message
|
|
||||||
"""
|
|
||||||
if not message['parent_id']:
|
|
||||||
return False
|
|
||||||
parent_id = message['parent_id'][0]
|
|
||||||
try:
|
|
||||||
return self.read(cr, uid, parent_id, self._message_read_fields, context=context)
|
|
||||||
except (orm.except_orm, osv.except_osv):
|
|
||||||
return False
|
|
||||||
|
|
||||||
def message_read(self, cr, uid, ids=None, domain=None, message_unload_ids=None, thread_level=0, context=None, parent_id=False, limit=None):
|
|
||||||
""" Read messages from mail.message, and get back a list of structured
|
""" Read messages from mail.message, and get back a list of structured
|
||||||
messages to be displayed as discussion threads. If IDs is set,
|
messages to be displayed as discussion threads. If IDs is set,
|
||||||
fetch these records. Otherwise use the domain to fetch messages.
|
fetch these records. Otherwise use the domain to fetch messages.
|
||||||
|
@ -389,46 +414,56 @@ class mail_message(osv.Model):
|
||||||
ancestors and expandables
|
ancestors and expandables
|
||||||
:return list: list of message structure for the Chatter widget
|
:return list: list of message structure for the Chatter widget
|
||||||
"""
|
"""
|
||||||
# print 'message_read', ids, domain, message_unload_ids, thread_level, context, parent_id, limit
|
|
||||||
assert thread_level in [0, 1], 'message_read() thread_level should be 0 (flat) or 1 (1 level of thread); given %s.' % thread_level
|
assert thread_level in [0, 1], 'message_read() thread_level should be 0 (flat) or 1 (1 level of thread); given %s.' % thread_level
|
||||||
domain = domain if domain is not None else []
|
domain = domain if domain is not None else []
|
||||||
message_unload_ids = message_unload_ids if message_unload_ids is not None else []
|
message_unload_ids = message_unload_ids if message_unload_ids is not None else []
|
||||||
if message_unload_ids:
|
if message_unload_ids:
|
||||||
domain += [('id', 'not in', message_unload_ids)]
|
domain += [('id', 'not in', message_unload_ids)]
|
||||||
limit = limit or self._message_read_limit
|
limit = limit or self._message_read_limit
|
||||||
read_messages = {}
|
message_tree = {}
|
||||||
message_list = []
|
message_list = []
|
||||||
|
parent_tree = {}
|
||||||
|
|
||||||
# no specific IDS given: fetch messages according to the domain, add their parents if uid has access to
|
# no specific IDS given: fetch messages according to the domain, add their parents if uid has access to
|
||||||
if ids is None:
|
if ids is None:
|
||||||
ids = self.search(cr, uid, domain, context=context, limit=limit)
|
ids = self.search(cr, uid, domain, context=context, limit=limit)
|
||||||
for message in self.read(cr, uid, ids, self._message_read_fields, context=context):
|
|
||||||
message_id = message['id']
|
|
||||||
|
|
||||||
# if not in tree and not in message_loaded list
|
# fetch parent if threaded, sort messages
|
||||||
if not message_id in read_messages and not message_id in message_unload_ids:
|
for message in self.browse(cr, uid, ids, context=context):
|
||||||
read_messages[message_id] = message
|
message_id = message.id
|
||||||
message_list.append(self._message_get_dict(cr, uid, message, context=context))
|
if message_id in message_tree:
|
||||||
|
continue
|
||||||
|
message_tree[message_id] = message
|
||||||
|
|
||||||
# get the older ancestor the user can read, update its ancestor field
|
# find parent_id
|
||||||
if not thread_level:
|
if thread_level == 0:
|
||||||
message_list[-1]['parent_id'] = parent_id
|
tree_parent_id = parent_id
|
||||||
continue
|
else:
|
||||||
parent = self._get_parent(cr, uid, message, context=context)
|
tree_parent_id = message_id
|
||||||
while parent and parent.get('id') != parent_id:
|
parent = message
|
||||||
message_list[-1]['parent_id'] = parent.get('id')
|
while parent.parent_id and parent.parent_id.id != parent_id:
|
||||||
message = parent
|
parent = parent.parent_id
|
||||||
parent = self._get_parent(cr, uid, message, context=context)
|
tree_parent_id = parent.id
|
||||||
# if in thread: add its ancestor to the list of messages
|
if not parent.id in message_tree:
|
||||||
if not message['id'] in read_messages and not message['id'] in message_unload_ids:
|
message_tree[parent.id] = parent
|
||||||
read_messages[message['id']] = message
|
# newest messages first
|
||||||
message_list.append(self._message_get_dict(cr, uid, message, context=context))
|
parent_tree.setdefault(tree_parent_id, [])
|
||||||
|
if tree_parent_id != message_id:
|
||||||
|
parent_tree[tree_parent_id].append(self._message_read_dict(cr, uid, message_tree[message_id], parent_id=tree_parent_id, context=context))
|
||||||
|
|
||||||
|
if thread_level:
|
||||||
|
for key, message_id_list in parent_tree.iteritems():
|
||||||
|
message_id_list.sort(key=lambda item: item['id'])
|
||||||
|
message_id_list.insert(0, self._message_read_dict(cr, uid, message_tree[key], context=context))
|
||||||
|
|
||||||
|
parent_list = parent_tree.items()
|
||||||
|
parent_list = sorted(parent_list, key=lambda item: max([msg.get('id') for msg in item[1]]) if item[1] else item[0], reverse=True)
|
||||||
|
message_list = [message for (key, msg_list) in parent_list for message in msg_list]
|
||||||
|
|
||||||
# get the child expandable messages for the tree
|
# get the child expandable messages for the tree
|
||||||
message_list = sorted(message_list, key=lambda k: k['id'])
|
self._message_read_dict_postprocess(cr, uid, message_list, message_tree, context=context)
|
||||||
self._message_read_add_expandables(cr, uid, message_list, read_messages, thread_level=thread_level,
|
self._message_read_add_expandables(cr, uid, message_list, message_tree, parent_tree,
|
||||||
message_loaded_ids=message_unload_ids, domain=domain, parent_id=parent_id, context=context, limit=limit)
|
thread_level=thread_level, message_unload_ids=message_unload_ids, domain=domain, parent_id=parent_id, context=context)
|
||||||
|
|
||||||
return message_list
|
return message_list
|
||||||
|
|
||||||
# TDE Note: do we need this ?
|
# TDE Note: do we need this ?
|
||||||
|
@ -462,7 +497,6 @@ class mail_message(osv.Model):
|
||||||
- otherwise: remove the id
|
- otherwise: remove the id
|
||||||
"""
|
"""
|
||||||
# Rules do not apply to administrator
|
# Rules do not apply to administrator
|
||||||
# print '_search', uid, args
|
|
||||||
if uid == SUPERUSER_ID:
|
if uid == SUPERUSER_ID:
|
||||||
return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
|
return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
|
||||||
context=context, count=count, access_rights_uid=access_rights_uid)
|
context=context, count=count, access_rights_uid=access_rights_uid)
|
||||||
|
|
|
@ -59,21 +59,26 @@
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
<field name="author_id"/>
|
<field name="author_id"/>
|
||||||
<field name="partner_ids"/>
|
<field name="partner_ids"/>
|
||||||
|
<filter string="Read"
|
||||||
|
name="message_read" help="Show messages to read"
|
||||||
|
domain="[('to_read', '=', False)]"/>
|
||||||
<filter string="Unread"
|
<filter string="Unread"
|
||||||
name="message_unread" help="Show messages to read"
|
name="message_unread" help="Show messages to read"
|
||||||
domain="[('to_read', '=', True)]"/>
|
domain="[('to_read', '=', True)]"/>
|
||||||
|
<separator/>
|
||||||
<filter string="Comments"
|
<filter string="Comments"
|
||||||
name="comments" help="Comments"
|
name="comments" help="Comments"
|
||||||
domain="[('type', '=', 'comment')]"/>
|
domain="[('type', '=', 'comment')]"/>
|
||||||
<filter string="Has attachments"
|
|
||||||
name="attachments"
|
|
||||||
domain="[('attachment_ids', '!=', False)]"/>
|
|
||||||
<filter string="Notifications"
|
<filter string="Notifications"
|
||||||
name="notifications" help="Notifications"
|
name="notifications" help="Notifications"
|
||||||
domain="[('type', '=', 'notification')]"/>
|
domain="[('type', '=', 'notification')]"/>
|
||||||
<filter string="Emails"
|
<filter string="Emails"
|
||||||
name="emails" help="Emails"
|
name="emails" help="Emails"
|
||||||
domain="[('type', '=', 'email')]"/>
|
domain="[('type', '=', 'email')]"/>
|
||||||
|
<separator/>
|
||||||
|
<filter string="Has attachments"
|
||||||
|
name="attachments"
|
||||||
|
domain="[('attachment_ids', '!=', False)]"/>
|
||||||
</search>
|
</search>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
@ -84,7 +89,6 @@
|
||||||
<field name="view_type">form</field>
|
<field name="view_type">form</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
<field name="search_view_id" ref="view_message_search"/>
|
<field name="search_view_id" ref="view_message_search"/>
|
||||||
<field name="context">{'search_default_to_read_message':True}</field>
|
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- Add menu entry in Settings/Email -->
|
<!-- Add menu entry in Settings/Email -->
|
||||||
|
|
|
@ -74,17 +74,17 @@ class mail_thread(osv.AbstractModel):
|
||||||
- message_unread: has uid unread message for the document
|
- message_unread: has uid unread message for the document
|
||||||
- message_summary: html snippet summarizing the Chatter for kanban views """
|
- message_summary: html snippet summarizing the Chatter for kanban views """
|
||||||
res = dict((id, dict(message_unread=False, message_summary='')) for id in ids)
|
res = dict((id, dict(message_unread=False, message_summary='')) for id in ids)
|
||||||
|
user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0]
|
||||||
|
|
||||||
# search for unread messages, by reading directly mail.notification, as SUPERUSER
|
# search for unread messages, directly in SQL to improve performances
|
||||||
notif_obj = self.pool.get('mail.notification')
|
cr.execute(""" SELECT m.res_id FROM mail_message m
|
||||||
notif_ids = notif_obj.search(cr, SUPERUSER_ID, [
|
RIGHT JOIN mail_notification n
|
||||||
('partner_id.user_ids', 'in', [uid]),
|
ON (n.message_id = m.id AND n.partner_id = %s AND n.read = False)
|
||||||
('message_id.res_id', 'in', ids),
|
WHERE m.model = %s AND m.res_id in %s""",
|
||||||
('message_id.model', '=', self._name),
|
(user_pid, self._name, tuple(ids),))
|
||||||
('read', '=', False)
|
msg_ids = [result[0] for result in cr.fetchall()]
|
||||||
], context=context)
|
for msg_id in msg_ids:
|
||||||
for notif in notif_obj.browse(cr, SUPERUSER_ID, notif_ids, context=context):
|
res[msg_id]['message_unread'] = True
|
||||||
res[notif.message_id.res_id]['message_unread'] = True
|
|
||||||
|
|
||||||
for thread in self.browse(cr, uid, ids, context=context):
|
for thread in self.browse(cr, uid, ids, context=context):
|
||||||
cls = res[thread.id]['message_unread'] and ' class="oe_kanban_mail_new"' or ''
|
cls = res[thread.id]['message_unread'] and ' class="oe_kanban_mail_new"' or ''
|
||||||
|
|
|
@ -5,52 +5,125 @@
|
||||||
<field name="name">Inbox</field>
|
<field name="name">Inbox</field>
|
||||||
<field name="tag">mail.wall</field>
|
<field name="tag">mail.wall</field>
|
||||||
<field name="res_model">mail.message</field>
|
<field name="res_model">mail.message</field>
|
||||||
<field name="params" eval=""{'domain': [('notification_ids.partner_id.user_ids', 'in', [uid]), ('to_read', '=', True)],
|
<field name="context">{
|
||||||
'context': {'default_model': 'res.users', 'default_res_id': uid, 'typeof_thread': 'inbox'} }""/>
|
'default_model': 'res.users',
|
||||||
|
'default_res_id': uid
|
||||||
|
}</field>
|
||||||
|
<field name="params" eval=""{
|
||||||
|
'domain': [
|
||||||
|
('notification_ids.partner_id.user_ids', 'in', [uid]),
|
||||||
|
('to_read', '=', True),
|
||||||
|
('favorite_user_ids', 'not in', [uid])
|
||||||
|
],
|
||||||
|
'view_mailbox': True,
|
||||||
|
'view_inbox': True,
|
||||||
|
'read_action': 'read'
|
||||||
|
}""/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p>
|
||||||
|
<b>Good Job!</b> Your inbox is empty.
|
||||||
|
</p><p>
|
||||||
|
Your inbox contains private messages or emails sent to you
|
||||||
|
as well as information related to documents or people you
|
||||||
|
follow.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_mail_to_me_feeds" model="ir.actions.client">
|
<record id="action_mail_to_me_feeds" model="ir.actions.client">
|
||||||
<field name="name">To: me</field>
|
<field name="name">To: me</field>
|
||||||
<field name="tag">mail.wall</field>
|
<field name="tag">mail.wall</field>
|
||||||
<field name="res_model">mail.message</field>
|
<field name="res_model">mail.message</field>
|
||||||
<field name="params" eval=""{'domain': [('partner_ids.user_ids', 'in', [uid])],
|
<field name="context">{
|
||||||
'context': {'default_model': 'res.users', 'default_res_id': uid, 'typeof_thread': 'inbox'}, }""/>
|
'default_model': 'res.users',
|
||||||
|
'default_res_id': uid,
|
||||||
|
'search_default_message_unread': True
|
||||||
|
}</field>
|
||||||
|
<field name="params" eval=""{
|
||||||
|
'domain': [('partner_ids.user_ids', 'in', [uid])],
|
||||||
|
'view_mailbox': True,
|
||||||
|
'read_action': 'read', }""/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p>
|
||||||
|
<b>No private message.</b>
|
||||||
|
</p><p>
|
||||||
|
This list contains messages sent to you.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_mail_star_feeds" model="ir.actions.client">
|
<record id="action_mail_star_feeds" model="ir.actions.client">
|
||||||
<field name="name">Favorites</field>
|
<field name="name">Todo</field>
|
||||||
<field name="tag">mail.wall</field>
|
<field name="tag">mail.wall</field>
|
||||||
<field name="res_model">mail.message</field>
|
<field name="res_model">mail.message</field>
|
||||||
<field name="params" eval=""{'domain': [('favorite_user_ids.user_ids', 'in', [uid])],
|
<field name="context">{
|
||||||
'context': {'default_model': 'res.users', 'default_res_id': uid, 'typeof_thread': 'stared'}, }""/>
|
'default_model': 'res.users',
|
||||||
|
'default_res_id': uid,
|
||||||
|
'search_default_message_unread': True
|
||||||
|
}</field>
|
||||||
|
<field name="params" eval=""{
|
||||||
|
'domain': [('favorite_user_ids', 'in', [uid])],
|
||||||
|
'view_mailbox': True,
|
||||||
|
'read_action': 'read', }""/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p>
|
||||||
|
<b>No todo!</b>
|
||||||
|
</p><p>
|
||||||
|
When you process messages in your inbox, you can mark some
|
||||||
|
as <i>todo</i>. From this menu, you can process all your todo.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_mail_archives_feeds" model="ir.actions.client">
|
<record id="action_mail_archives_feeds" model="ir.actions.client">
|
||||||
<field name="name">Archives</field>
|
<field name="name">Archives</field>
|
||||||
<field name="tag">mail.wall</field>
|
<field name="tag">mail.wall</field>
|
||||||
<field name="res_model">mail.message</field>
|
<field name="context">{
|
||||||
<field name="params" eval=""{'domain': [('notification_ids.partner_id.user_ids', 'in', [uid]), ('to_read', '=', False)],
|
'default_model': 'res.users',
|
||||||
'context': {'default_model': 'res.users', 'default_res_id': uid, 'typeof_thread': 'archives'}, }""/>
|
'default_res_id': uid,
|
||||||
|
'search_default_message_read': True
|
||||||
|
}</field>
|
||||||
|
<field name="params" eval=""{
|
||||||
|
'domain': [('notification_ids.partner_id.user_ids', 'in', [uid])],
|
||||||
|
'view_mailbox': True,
|
||||||
|
'read_action': 'unread', }""/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p>
|
||||||
|
No message found.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="action_mail_sent_feeds" model="ir.actions.client">
|
<record id="action_mail_sent_feeds" model="ir.actions.client">
|
||||||
<field name="name">Sent</field>
|
<field name="name">Sent</field>
|
||||||
<field name="tag">mail.wall</field>
|
<field name="tag">mail.wall</field>
|
||||||
<field name="res_model">mail.message</field>
|
<field name="context">{
|
||||||
<field name="params" eval=""{'domain': [('author_id.user_ids', 'in', [uid])],
|
'default_model': 'res.users',
|
||||||
'context': {'default_model': 'res.users', 'default_res_id': uid, 'typeof_thread': 'send'}, }""/>
|
'default_res_id': uid
|
||||||
|
}</field>
|
||||||
|
<field name="params" eval=""{
|
||||||
|
'domain': [('author_id.user_ids', 'in', [uid])],
|
||||||
|
'view_mailbox': True, }""/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p>
|
||||||
|
<b>No message sent yet.</b>
|
||||||
|
</p><p>
|
||||||
|
Click on the top-right icon to compose a message. This
|
||||||
|
message will be sent by email if it's an internal contact.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<!-- MENU -->
|
<!-- MENU -->
|
||||||
|
|
||||||
<!-- Top menu item -->
|
<!-- Top menu item -->
|
||||||
<menuitem name="Emails"
|
<menuitem name="Messaging"
|
||||||
id="mail.mail_feeds_main"
|
id="mail.mail_feeds_main"
|
||||||
groups="base.group_user"
|
groups="base.group_user"
|
||||||
sequence="10"/>
|
sequence="10"/>
|
||||||
|
|
||||||
<!-- Left-side menu: Feeds -->
|
<!-- Left-side menu: Feeds -->
|
||||||
<menuitem id="mail.mail_feeds" name="Messages" parent="mail.mail_feeds_main" groups="base.group_user" sequence="10"/>
|
<menuitem id="mail.mail_feeds" name="Messaging" parent="mail.mail_feeds_main" groups="base.group_user" sequence="10"/>
|
||||||
<menuitem id="mail_my_stuff" name="Organizer" parent="mail.mail_feeds_main"/>
|
<menuitem id="mail_my_stuff" name="Organizer" parent="mail.mail_feeds_main"/>
|
||||||
|
|
||||||
<record id="mail_inboxfeeds" model="ir.ui.menu">
|
<record id="mail_inboxfeeds" model="ir.ui.menu">
|
||||||
|
@ -66,7 +139,7 @@
|
||||||
<field name="parent_id" ref="mail.mail_feeds"/>
|
<field name="parent_id" ref="mail.mail_feeds"/>
|
||||||
</record>
|
</record>
|
||||||
<record id="mail_starfeeds" model="ir.ui.menu">
|
<record id="mail_starfeeds" model="ir.ui.menu">
|
||||||
<field name="name">Favorites</field>
|
<field name="name">Todo</field>
|
||||||
<field name="sequence" eval="14"/>
|
<field name="sequence" eval="14"/>
|
||||||
<field name="action" ref="action_mail_star_feeds"/>
|
<field name="action" ref="action_mail_star_feeds"/>
|
||||||
<field name="parent_id" ref="mail.mail_feeds"/>
|
<field name="parent_id" ref="mail.mail_feeds"/>
|
||||||
|
|
|
@ -1,7 +1,36 @@
|
||||||
|
/* ------------ TOPBAR MAIL BUTTON --------------- */
|
||||||
|
|
||||||
|
/* FIXME this css is not very pretty because it uses a
|
||||||
|
* 'button' element wich comes with a lot of inappropriate
|
||||||
|
* styling. Entypo is also a headache to center properly
|
||||||
|
* */
|
||||||
|
|
||||||
|
.openerp .oe_topbar_item.oe_topbar_compose_full_email{
|
||||||
|
padding: 0px;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
.openerp .oe_topbar_item.oe_topbar_compose_full_email button{
|
||||||
|
position: relative;
|
||||||
|
top: -3px; /* centering entypo ... urgh */
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color: white;
|
||||||
|
background: none;
|
||||||
|
text-shadow: 0px 1px 2px black;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------ MAIL WIDGET --------------- */
|
/* ------------ MAIL WIDGET --------------- */
|
||||||
.openerp .oe_mail, .openerp .oe_mail *{
|
.openerp .oe_mail, .openerp .oe_mail *{
|
||||||
box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail {
|
.openerp .oe_mail {
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -42,9 +71,10 @@
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_footer{
|
.openerp .oe_mail .oe_msg .oe_msg_footer{
|
||||||
padding-left: 4px;
|
padding-left: 4px;
|
||||||
|
padding-top: 3px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
opacity:0.8;
|
margin-bottom: 4px;
|
||||||
-webkit-transition: opacity 0.2s linear;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_content{
|
.openerp .oe_mail .oe_msg .oe_msg_content{
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -84,18 +114,24 @@
|
||||||
.openerp .oe_mail .oe_msg.oe_msg_indented .oe_msg_content{
|
.openerp .oe_mail .oe_msg.oe_msg_indented .oe_msg_content{
|
||||||
padding-top:2px;
|
padding-top:2px;
|
||||||
}
|
}
|
||||||
|
.openerp .oe_mail .oe_msg.oe_msg_indented .oe_msg_footer{
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
/* b) Votes (likes) */
|
/* b) Votes (likes) */
|
||||||
|
|
||||||
.openerp .oe_mail .oe_mail_vote_count{
|
.openerp .oe_mail .oe_mail_vote_count{
|
||||||
display: inline;
|
display: inline;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: #7C7BAD;
|
background: white;
|
||||||
color: white;
|
box-shadow: 0px 0px 0px 1px rgba(124, 123, 173, 0.36) inset;
|
||||||
|
color: #7c7bad;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding-left: 3px;
|
padding-left: 3px;
|
||||||
padding-right: 18px;
|
padding-right: 15px;
|
||||||
margin-right: 3px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_mail_vote_count .oe_e{
|
.openerp .oe_mail .oe_mail_vote_count .oe_e{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -106,12 +142,6 @@
|
||||||
|
|
||||||
/* c) Message action icons */
|
/* c) Message action icons */
|
||||||
|
|
||||||
.openerp .oe_mail .oe_msg.oe_msg_unread .oe_unread{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg.oe_msg_read .oe_read{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_icons{
|
.openerp .oe_mail .oe_msg .oe_msg_icons{
|
||||||
float: right;
|
float: right;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
|
@ -119,6 +149,9 @@
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_icons span{
|
.openerp .oe_mail .oe_msg .oe_msg_icons span{
|
||||||
float:right;
|
float:right;
|
||||||
|
@ -132,10 +165,16 @@
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
text-shadow: 0px 1px #AAA,0px -1px #AAA, -1px 0px #AAA, 1px 0px #AAA, 0px 3px 3px rgba(0,0,0,0.1);
|
text-shadow: 0px 1px #AAA,0px -1px #AAA, -1px 0px #AAA, 1px 0px #AAA, 0px 3px 3px rgba(0,0,0,0.1);
|
||||||
-webkit-transition: all 0.2s linear;
|
-webkit-transition: all 0.2s linear;
|
||||||
|
-moz-transition: all 0.2s linear;
|
||||||
|
-o-transition: all 0.2s linear;
|
||||||
|
transition: all 0.2s linear;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg:hover .oe_msg_icons a{
|
.openerp .oe_mail .oe_msg:hover .oe_msg_icons a{
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
-webkit-transition: all 0.1s linear;
|
-webkit-transition: all 0.1s linear;
|
||||||
|
-moz-transition: all 0.1s linear;
|
||||||
|
-o-transition: all 0.1s linear;
|
||||||
|
transition: all 0.1s linear;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_icons .oe_star:hover a{
|
.openerp .oe_mail .oe_msg .oe_msg_icons .oe_star:hover a{
|
||||||
color: #FFF6C0;
|
color: #FFF6C0;
|
||||||
|
@ -159,7 +198,7 @@
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg .oe_msg_content textarea{
|
.openerp .oe_mail .oe_msg .oe_msg_content textarea{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 32px;
|
height: 64px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
|
@ -175,6 +214,150 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* --------------------- ATTACHMENTS --------------------- */
|
||||||
|
|
||||||
|
.openerp .oe_mail .oe_msg_attachment_list{
|
||||||
|
display: none;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_msg_composer .oe_msg_attachment_list{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment{
|
||||||
|
display: inline-block;
|
||||||
|
width: 100px;
|
||||||
|
margin: 2px;
|
||||||
|
min-height: 80px;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment .oe_name{
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 1px 3px;
|
||||||
|
margin-top: 50px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
background: rgba(124, 123, 173, 0.13);
|
||||||
|
overflow: hidden;
|
||||||
|
color: #4c4c4c;
|
||||||
|
text-shadow: none;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.openerp .oe_mail .oe_attachment.oe_preview{
|
||||||
|
background: url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVQYV2MsLS39z4AGLCws0IUYGIeCwrVr12J45sSJE5ieGQIKAbuZKf/EMCs7AAAAAElFTkSuQmCC );
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment .oe_progress_bar{
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 18px;
|
||||||
|
left: 16px;
|
||||||
|
right: 16px;
|
||||||
|
height: 17px;
|
||||||
|
line-height: 13px;
|
||||||
|
padding: 0px;
|
||||||
|
background: #4BBD00;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: solid 1px rgba(0,0,0,0.2);
|
||||||
|
box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.34);
|
||||||
|
-webkit-animation: oe_mail_attach_loading_anim 0.75s infinite linear;
|
||||||
|
-moz-animation: oe_mail_attach_loading_anim 0.75s infinite linear;
|
||||||
|
-o-animation: oe_mail_attach_loading_anim 0.75s infinite linear;
|
||||||
|
animation: oe_mail_attach_loading_anim 0.75s infinite linear;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment.oe_uploading .oe_progress_bar{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
@-webkit-keyframes oe_mail_attach_loading_anim{
|
||||||
|
0% { background: #4BBD00 }
|
||||||
|
50% { background: #009123 }
|
||||||
|
100% { background: #4BBD00 }
|
||||||
|
}
|
||||||
|
@-moz-keyframes oe_mail_attach_loading_anim{
|
||||||
|
0% { background: #4BBD00 }
|
||||||
|
50% { background: #009123 }
|
||||||
|
100% { background: #4BBD00 }
|
||||||
|
}
|
||||||
|
@-o-keyframes oe_mail_attach_loading_anim{
|
||||||
|
0% { background: #4BBD00 }
|
||||||
|
50% { background: #009123 }
|
||||||
|
100% { background: #4BBD00 }
|
||||||
|
}
|
||||||
|
@keyframes oe_mail_attach_loading_anim{
|
||||||
|
0% { background: #4BBD00 }
|
||||||
|
50% { background: #009123 }
|
||||||
|
100% { background: #4BBD00 }
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment.oe_preview .oe_name{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
max-height: 64px;
|
||||||
|
background: rgba(0,0,0,0.8);
|
||||||
|
color: white;
|
||||||
|
border-top-left-radius: 0px;
|
||||||
|
border-top-right-radius: 0px;
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment.oe_preview:hover .oe_name{
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment img{
|
||||||
|
position: absolute;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
top: 0px;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -24px;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment.oe_preview img{
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
margin:0px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
border-radius: 3px;
|
||||||
|
margin-left: -50px;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_attachment .oe_delete{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_msg_composer .oe_attachment .oe_delete{
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: -7px;
|
||||||
|
right: 0px;
|
||||||
|
color: black;
|
||||||
|
text-shadow: 1px 0px white, -1px 0px white, 0px 1px white, 0px -1px white;
|
||||||
|
cursor: pointer;
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear;
|
||||||
|
}
|
||||||
|
.openerp .oe_mail .oe_msg_composer .oe_attachment:hover .oe_delete{
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transition: opacity 0.2s linear;
|
||||||
|
-moz-transition: opacity 0.2s linear;
|
||||||
|
-o-transition: opacity 0.2s linear;
|
||||||
|
transition: opacity 0.2s linear;
|
||||||
|
}
|
||||||
/* ---------------- MESSAGE QUICK COMPOSER --------------- */
|
/* ---------------- MESSAGE QUICK COMPOSER --------------- */
|
||||||
|
|
||||||
.openerp .oe_mail .oe_msg_composer .oe_msg_footer{
|
.openerp .oe_mail .oe_msg_composer .oe_msg_footer{
|
||||||
|
@ -182,37 +365,6 @@
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
padding-bottom:6px;
|
padding-bottom:6px;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_attachments.oe_hidden,
|
|
||||||
.openerp .oe_mail .oe_msg_images.oe_hidden{
|
|
||||||
margin:0px;
|
|
||||||
border: none;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments{
|
|
||||||
margin-bottom: 4px;
|
|
||||||
margin-right: 0px;
|
|
||||||
font-size: 12px;
|
|
||||||
border-radius: 2px;
|
|
||||||
border: solid 1px rgba(124,123,173,0.14);
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments .oe_attachment{
|
|
||||||
padding: 2px;
|
|
||||||
padding-left: 4px;
|
|
||||||
padding-right: 4px;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments .oe_attachment .oe_e{
|
|
||||||
font-size: 23px;
|
|
||||||
margin-top: -5px;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments .oe_attachment .oe_e:hover{
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments .oe_attachment:nth-child(odd){
|
|
||||||
background:white;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_attachments .oe_attachment:nth-child(even){
|
|
||||||
background: #F4F5FA;
|
|
||||||
}
|
|
||||||
.openerp .oe_mail .oe_msg_images {
|
.openerp .oe_mail .oe_msg_images {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
@ -226,11 +378,13 @@
|
||||||
.openerp .oe_mail .oe_msg_footer button.oe_attach{
|
.openerp .oe_mail .oe_msg_footer button.oe_attach{
|
||||||
width: 24px;
|
width: 24px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
|
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -1px;
|
top: -1px;
|
||||||
left: -9px;
|
left: -9px;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_hidden_input_file, .openerp .oe_mail .oe_hidden_input_file form{
|
.openerp .oe_mail .oe_hidden_input_file, .openerp .oe_mail .oe_hidden_input_file form{
|
||||||
display:inline;
|
display:inline;
|
||||||
|
@ -239,11 +393,13 @@
|
||||||
width:24px;
|
width:24px;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
float: right;
|
float: right;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_footer button.oe_full .oe_e{
|
.openerp .oe_mail .oe_msg_footer button.oe_full .oe_e{
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -1px;
|
top: -1px;
|
||||||
left: -9px;
|
left: -9px;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail button.oe_attach, .openerp .oe_mail button.oe_full{
|
.openerp .oe_mail button.oe_attach, .openerp .oe_mail button.oe_full{
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
@ -251,6 +407,7 @@
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border: none;
|
border: none;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_attach_label{
|
.openerp .oe_mail .oe_attach_label{
|
||||||
color: #7C7BAD;
|
color: #7C7BAD;
|
||||||
|
@ -262,6 +419,7 @@
|
||||||
height: 28px;
|
height: 28px;
|
||||||
width: 52px;
|
width: 52px;
|
||||||
margin-top: -6px;
|
margin-top: -6px;
|
||||||
|
filter:none;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_mail_list_recipients{
|
.openerp .oe_mail .oe_mail_list_recipients{
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
@ -273,6 +431,7 @@
|
||||||
|
|
||||||
.openerp .oe_mail .oe_msg_content.oe_msg_more_message{
|
.openerp .oe_mail .oe_msg_content.oe_msg_more_message{
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_content.oe_msg_more_message .oe_separator{
|
.openerp .oe_mail .oe_msg_content.oe_msg_more_message .oe_separator{
|
||||||
height: 0;
|
height: 0;
|
||||||
|
@ -284,7 +443,7 @@
|
||||||
}
|
}
|
||||||
.openerp .oe_mail .oe_msg_more_message .oe_msg_fetch_more {
|
.openerp .oe_mail .oe_msg_more_message .oe_msg_fetch_more {
|
||||||
background: white;
|
background: white;
|
||||||
margin-right: 280px;
|
margin-right: 210px;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
@ -302,6 +461,7 @@
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
width: 160px;
|
width: 160px;
|
||||||
float: right;
|
float: right;
|
||||||
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* a) THE FOLLOW BUTTON */
|
/* a) THE FOLLOW BUTTON */
|
||||||
|
@ -312,9 +472,23 @@
|
||||||
width:100%;
|
width:100%;
|
||||||
}
|
}
|
||||||
.openerp .oe_followers button.oe_follower.oe_following{
|
.openerp .oe_followers button.oe_follower.oe_following{
|
||||||
|
color: white;
|
||||||
background-color: #3465A4;
|
background-color: #3465A4;
|
||||||
background-image: -webkit-linear-gradient(top, #729FCF, #3465A4);
|
background-image: -webkit-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -moz-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -ms-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -o-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: linear-gradient(to bottom, #729FCF, #3465A4);
|
||||||
|
}
|
||||||
|
.openerp .oe_followers button.oe_follower.oe_following:hover{
|
||||||
color: white;
|
color: white;
|
||||||
|
filter:none;
|
||||||
|
background-color: #A21A1A;
|
||||||
|
background-image: -webkit-linear-gradient(top, #DF3F3F, #A21A1A);
|
||||||
|
background-image: -moz-linear-gradient(top, #DF3F3F, #A21A1A);
|
||||||
|
background-image: -ms-linear-gradient(top, #DF3F3F, #A21A1A);
|
||||||
|
background-image: -o-linear-gradient(top, #DF3F3F, #A21A1A);
|
||||||
|
background-image: linear-gradient(to bottom, #DF3F3F, #A21A1A);
|
||||||
}
|
}
|
||||||
|
|
||||||
.openerp .oe_followers button.oe_follower .oe_follow,
|
.openerp .oe_followers button.oe_follower .oe_follow,
|
||||||
|
@ -375,12 +549,17 @@
|
||||||
|
|
||||||
.openerp .oe_record_thread{
|
.openerp .oe_record_thread{
|
||||||
display: block;
|
display: block;
|
||||||
margin-right: 180px;
|
margin-left: 16px;
|
||||||
|
margin-right: 212px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------- INBOX INTEGRATION ----------- */
|
/* ----------- INBOX INTEGRATION ----------- */
|
||||||
|
|
||||||
.openerp .oe_mail_wall .oe_mail{
|
.openerp .oe_mail_wall .oe_mail{
|
||||||
margin: 16px;
|
margin: 16px;
|
||||||
width: 720px;
|
width: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.openerp .oe_mail .oe_view_nocontent > p {
|
||||||
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,20 +44,23 @@
|
||||||
text-align: center;
|
text-align: center;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
|
border-collapse: separate;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
-o-border-radius: 3px;
|
-o-border-radius: 3px;
|
||||||
-ms-border-radius: 3px;
|
-ms-border-radius: 3px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
border-collapse: separate;
|
||||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
|
box-shadow: 0 1px 4px 3px rgba(0, 0, 0, 0.4);
|
||||||
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||||
-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_group_photo {
|
.oe_group_photo {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
clip: rect(0px, 100px, 100px, 0px);
|
clip: rect(0px, 100px, 100px, 0px);
|
||||||
|
border:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_group_details {
|
.oe_group_details {
|
||||||
|
@ -68,30 +71,31 @@
|
||||||
min-height: 120px;
|
min-height: 120px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_group_details a, .oe_group_details a:hover {
|
|
||||||
font-weight: bold;
|
|
||||||
color: #4c4c4c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.oe_group_details h4 {
|
.oe_group_details h4 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_group_details h4 a {
|
|
||||||
color: #4c4c4c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.oe_group_details h4 a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.oe_group_details ul {
|
.oe_group_details ul {
|
||||||
margin: 3px 0 5px;
|
margin: 3px 0 5px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.oe_group_details li {
|
.openerp .oe_group_details li {
|
||||||
margin: 2px 0;
|
margin: 2px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.openerp .oe_group_button {
|
||||||
|
padding-top: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.openerp .oe_group_button .oe_group_join {
|
||||||
|
color: white;
|
||||||
|
background-color: #3465A4;
|
||||||
|
background-image: -webkit-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -moz-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -ms-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: -o-linear-gradient(top, #729FCF, #3465A4);
|
||||||
|
background-image: linear-gradient(to bottom, #729FCF, #3465A4);
|
||||||
|
}
|
||||||
|
|
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 3.9 KiB |